Changeset 742


Ignore:
Timestamp:
11/24/2010 11:27:41 PM (10 years ago)
Author:
joao.dias
Message:
 
Location:
AgentMind/branches/FAtiMA-Modular
Files:
15 edited

Legend:

Unmodified
Added
Removed
  • AgentMind/branches/FAtiMA-Modular/AgentLauncher/.classpath

    r730 r742  
    66        <classpathentry combineaccessrules="false" kind="src" path="/FAtiMA.MotivationalSystem"/> 
    77        <classpathentry combineaccessrules="false" kind="src" path="/FAtiMA.SocialRelations"/> 
     8        <classpathentry combineaccessrules="false" kind="src" path="/FAtiMA.culture"/> 
    89        <classpathentry kind="output" path="bin"/> 
    910</classpath> 
  • AgentMind/branches/FAtiMA-Modular/AgentLauncher/src/AgentLauncher.java

    r734 r742  
    11import java.io.IOException; 
     2import java.util.ArrayList; 
    23 
    34import javax.xml.parsers.ParserConfigurationException; 
     
    910import FAtiMA.Core.exceptions.GoalLibParsingException; 
    1011import FAtiMA.Core.exceptions.UnknownGoalException; 
     12import FAtiMA.Core.util.ConfigurationManager; 
     13import FAtiMA.Core.util.enumerables.CulturalDimensionType; 
     14import FAtiMA.culture.CulturalDimensionsComponent; 
    1115import FAtiMA.motivationalSystem.MotivationalComponent; 
    1216import FAtiMA.socialRelations.SocialRelationsComponent; 
     
    2731                 
    2832                AgentCore aG = initializeAgentCore(args); 
    29                 aG.addComponent(new SocialRelationsComponent()); 
    30                 aG.addComponent(new MotivationalComponent()); 
     33                ArrayList<String> extraFiles = new ArrayList<String>(); 
     34                String cultureFile = ConfigurationManager.getMindPath() + ConfigurationManager.getAgentProperties().get("cultureName") + ".xml";  
     35                 
     36                extraFiles.add(cultureFile); 
     37                aG.addComponent(new CulturalDimensionsComponent(cultureFile)); 
     38                aG.addComponent(new SocialRelationsComponent(extraFiles)); 
     39                aG.addComponent(new MotivationalComponent(extraFiles)); 
     40                 
    3141                 
    3242                aG.StartAgent(); 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA.AdvancedMemory/src/main/java/FAtiMA/advancedMemoryComponent/AdvancedMemoryComponent.java

    r734 r742  
    3939import javax.xml.parsers.SAXParserFactory; 
    4040 
    41 import FAtiMA.Core.AgentCore; 
    4241import FAtiMA.Core.AgentModel; 
    4342import FAtiMA.Core.IComponent; 
     43import FAtiMA.Core.IProcessExternalRequestComponent; 
    4444import FAtiMA.Core.Display.AgentDisplayPanel; 
    45 import FAtiMA.Core.emotionalState.ActiveEmotion; 
    4645import FAtiMA.Core.emotionalState.AppraisalStructure; 
    4746import FAtiMA.Core.memory.episodicMemory.ActionDetail; 
     
    5049import FAtiMA.Core.util.AgentLogger; 
    5150import FAtiMA.Core.util.ConfigurationManager; 
    52 import FAtiMA.Core.wellFormedNames.Name; 
    53  
    54  
    55 public class AdvancedMemoryComponent implements Serializable, IComponent { 
     51 
     52 
     53public class AdvancedMemoryComponent implements Serializable, IComponent, IProcessExternalRequestComponent { 
    5654 
    5755        private static final long serialVersionUID = 1L; 
     
    181179 
    182180        @Override 
    183         public void decay(long time) { 
    184         } 
    185  
    186         @Override 
    187         public void update(AgentModel am) { 
     181        public void updateCycle(AgentModel am, long time) { 
    188182                // TODO Auto-generated method stub 
    189                  
    190         } 
    191  
    192         @Override 
    193         public void update(Event e, AgentModel am) { 
     183        } 
     184 
     185        @Override 
     186        public void perceiveEvent(AgentModel am, Event e) { 
    194187                // TODO Auto-generated method stub 
    195188        } 
    196189 
    197190        @Override 
    198         public IComponent createModelOfOther() { 
    199                 return null; 
    200         } 
    201  
    202         @Override 
    203         public void appraisal(Event e, AppraisalStructure as, AgentModel am) { 
     191        public void appraisal(AgentModel am, Event e, AppraisalStructure as) { 
    204192                 
    205193                //appraisal from memory 
     
    224212 
    225213        @Override 
    226         public void emotionActivation(Event e, ActiveEmotion em, AgentModel am) { 
    227                 // TODO Auto-generated method stub 
    228                  
    229         } 
    230  
    231         @Override 
    232         public void coping(AgentModel am) { 
    233                 // TODO Auto-generated method stub 
    234                  
    235         } 
    236  
    237         @Override 
    238         public void propertyChangedPerception(String ToM, Name propertyName, 
    239                         String value) { 
    240                 // TODO Auto-generated method stub 
    241                  
    242         } 
    243  
    244         @Override 
    245         public void lookAtPerception(AgentCore ag, String subject, String target) { 
    246                 // TODO Auto-generated method stub 
    247                  
    248         } 
    249  
    250         @Override 
    251         public void entityRemovedPerception(String entity) { 
    252                 // TODO Auto-generated method stub 
    253                  
    254         } 
    255  
    256         @Override 
    257         public AgentDisplayPanel createComponentDisplayPanel(AgentModel am) { 
     214        public AgentDisplayPanel createDisplayPanel(AgentModel am) { 
    258215                return new GeneralMemoryPanel(this); 
    259216        } 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA.MotivationalSystem/src/FAtiMA/motivationalSystem/MotivationalComponent.java

    r734 r742  
    1414import javax.xml.parsers.SAXParserFactory; 
    1515 
    16 import FAtiMA.Core.AgentCore; 
    1716import FAtiMA.Core.AgentModel; 
    1817import FAtiMA.Core.AgentSimulationTime; 
    1918import FAtiMA.Core.IComponent; 
     19import FAtiMA.Core.IModelOfOtherComponent; 
    2020import FAtiMA.Core.Display.AgentDisplayPanel; 
    2121import FAtiMA.Core.deliberativeLayer.IActionFailureStrategy; 
     
    2727import FAtiMA.Core.deliberativeLayer.goals.ActivePursuitGoal; 
    2828import FAtiMA.Core.deliberativeLayer.plan.Step; 
    29 import FAtiMA.Core.emotionalState.ActiveEmotion; 
    3029import FAtiMA.Core.emotionalState.AppraisalStructure; 
    3130import FAtiMA.Core.sensorEffector.Event; 
     
    4544 */ 
    4645 
    47 public class MotivationalComponent implements Serializable, Cloneable, IComponent, IExpectedUtilityStrategy, IProbabilityStrategy, IUtilityStrategy, IGoalSuccessStrategy, IGoalFailureStrategy, IActionFailureStrategy { 
     46public class MotivationalComponent implements Serializable, Cloneable, IComponent, IModelOfOtherComponent, IExpectedUtilityStrategy, IProbabilityStrategy, IUtilityStrategy, IGoalSuccessStrategy, IGoalFailureStrategy, IActionFailureStrategy { 
    4847         
    4948        private static final long serialVersionUID = 1L; 
     
    6463        protected HashMap<String,ExpectedGoalEffectsOnDrives> _goalEffectsOnDrives; 
    6564        protected HashMap<String,ActionEffectsOnDrives> _actionEffectsOnDrives; 
     65         
     66        private ArrayList<String> _parsingFiles; 
    6667 
    6768        public static double determineQuadraticNeedVariation(float currentLevel, float deviation){ 
     
    8687         * Creates an empty MotivationalState 
    8788         */ 
    88         public MotivationalComponent() { 
     89        public MotivationalComponent(ArrayList<String> extraFiles) { 
    8990                _motivators = new Motivator[MotivatorType.numberOfTypes()]; 
    9091                _goalTried = 0; 
     
    9495                _goalEffectsOnDrives = new HashMap<String,ExpectedGoalEffectsOnDrives>(); 
    9596                _actionEffectsOnDrives = new HashMap<String,ActionEffectsOnDrives>(); 
     97                 
     98                _parsingFiles = new ArrayList<String>(); 
     99                _parsingFiles.add(ConfigurationManager.getGoalsFile()); 
     100                _parsingFiles.add(ConfigurationManager.getPersonalityFile()); 
     101                _parsingFiles.add(ConfigurationManager.getActionsFile()); 
     102                _parsingFiles.addAll(extraFiles); 
    96103        } 
    97104         
     
    433440        } 
    434441         
    435         public void update(Event e, AgentModel am) 
     442        @Override 
     443        public void perceiveEvent(AgentModel am, Event e) 
    436444        { 
    437445                float result =  UpdateMotivators(am, e); 
     
    440448 
    441449        @Override 
    442         public void appraisal(Event e, AppraisalStructure as, AgentModel am) { 
     450        public void appraisal(AgentModel am, Event e, AppraisalStructure as) { 
    443451                Float desirability = _appraisals.get(e.toString()); 
    444452                if(desirability != null) 
     
    446454                        as.SetAppraisalVariable(NAME, (short) 8, AppraisalStructure.DESIRABILITY, desirability.floatValue()); 
    447455                } 
    448         } 
    449  
    450  
    451         @Override 
    452         public void propertyChangedPerception(String ToM, Name propertyName, 
    453                         String value) { 
    454                  
    455         } 
    456  
    457  
    458         @Override 
    459         public void lookAtPerception(AgentCore ag, String subject, String target) { 
    460456        } 
    461457 
     
    480476                        SAXParserFactory factory = SAXParserFactory.newInstance(); 
    481477                        SAXParser parser = factory.newSAXParser(); 
    482                         parser.parse(new File(ConfigurationManager.getActionsFile()), needsLoader); 
    483                         parser.parse(new File(ConfigurationManager.getGoalsFile()), needsLoader); 
    484                         parser.parse(new File(ConfigurationManager.getPersonalityFile()), needsLoader); 
    485478                         
     479                        for(String file : _parsingFiles) 
     480                        { 
     481                                parser.parse(new File(file), needsLoader); 
     482                        }        
    486483 
    487484                }catch(Exception e){ 
     
    492489 
    493490        @Override 
    494         public void update(AgentModel am) { 
     491        public void updateCycle(AgentModel am, long time) { 
    495492                _appraisals.clear(); 
    496493        } 
     
    498495 
    499496        @Override 
    500         public void coping(AgentModel am) { 
    501         } 
    502  
    503  
    504         @Override 
    505         public void emotionActivation(Event e, ActiveEmotion em, AgentModel am) { 
    506         } 
    507  
    508  
    509         @Override 
    510         public void entityRemovedPerception(String entity) {     
    511         } 
    512  
    513  
    514         @Override 
    515497        public IComponent createModelOfOther() { 
    516                 MotivationalComponent ms = new MotivationalComponent(); 
     498                MotivationalComponent ms = new MotivationalComponent(null); 
    517499                Motivator m2; 
    518500                 
     
    529511 
    530512        @Override 
    531         public AgentDisplayPanel createComponentDisplayPanel(AgentModel am) { 
     513        public AgentDisplayPanel createDisplayPanel(AgentModel am) { 
    532514                return new NeedsPanel(this); 
    533515        } 
     
    575557                UpdateCertainty(-a.getProbability(am)); 
    576558        } 
    577  
    578  
    579         @Override 
    580         public void processExternalRequest(String requestMsg) { 
    581                 // TODO Auto-generated method stub 
    582                  
    583         } 
    584559} 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA.SocialRelations/src/FAtiMA/socialRelations/SocialRelationsComponent.java

    r734 r742  
    22 
    33import java.io.File; 
     4import java.util.ArrayList; 
    45 
    56import javax.xml.parsers.SAXParser; 
    67import javax.xml.parsers.SAXParserFactory; 
    78 
    8 import FAtiMA.Core.AgentCore; 
    99import FAtiMA.Core.AgentModel; 
    1010import FAtiMA.Core.IComponent; 
     11import FAtiMA.Core.IModelOfOtherComponent; 
     12import FAtiMA.Core.IProccessEmotionComponent; 
    1113import FAtiMA.Core.Display.AgentDisplayPanel; 
    1214import FAtiMA.Core.emotionalState.ActiveEmotion; 
     
    1820import FAtiMA.Core.util.Constants; 
    1921import FAtiMA.Core.util.enumerables.EmotionType; 
    20 import FAtiMA.Core.wellFormedNames.Name; 
    2122 
    2223 
    23 public class SocialRelationsComponent implements IComponent { 
     24public class SocialRelationsComponent implements IComponent, IModelOfOtherComponent, IProccessEmotionComponent { 
    2425         
    2526        public static final String NAME = "SocialRelations"; 
     27        private ArrayList<String> _parsingFiles; 
    2628         
    27         public SocialRelationsComponent() 
    28         {        
     29        public SocialRelationsComponent(ArrayList<String> extraParsingFiles) 
     30        { 
     31                _parsingFiles = new ArrayList<String>(); 
     32                _parsingFiles.add(ConfigurationManager.getGoalsFile()); 
     33                _parsingFiles.add(ConfigurationManager.getPersonalityFile()); 
     34                _parsingFiles.add(ConfigurationManager.getActionsFile()); 
     35                _parsingFiles.addAll(extraParsingFiles); 
    2936        } 
    3037         
     
    3744                        SAXParserFactory factory = SAXParserFactory.newInstance(); 
    3845                        SAXParser parser = factory.newSAXParser(); 
    39                         parser.parse(new File(ConfigurationManager.getActionsFile()),relationsLoader); 
    40                         parser.parse(new File(ConfigurationManager.getGoalsFile()),relationsLoader); 
    41                         parser.parse(new File(ConfigurationManager.getPersonalityFile()),relationsLoader); 
    4246                         
     47                        for(String file : _parsingFiles) 
     48                        { 
     49                                parser.parse(new File(file), relationsLoader); 
     50                        }                        
    4351 
    4452                }catch(Exception e){ 
     
    6270 
    6371        @Override 
    64         public void decay(long time) {   
    65         } 
    66  
    67         @Override 
    68         public void update(AgentModel am) { 
     72        public void updateCycle(AgentModel am, long time) { 
    6973        } 
    7074         
    7175        @Override 
    72         public void update(Event e, AgentModel am) 
     76        public void perceiveEvent(AgentModel am, Event e) 
    7377        { 
    7478        } 
    7579 
    7680        @Override 
    77         public void appraisal(Event e, AppraisalStructure as, AgentModel am) { 
     81        public void appraisal(AgentModel am, Event e, AppraisalStructure as) { 
    7882                if(e.GetSubject().equals(Constants.SELF) && e.GetAction().equals("look-at")) 
    7983                { 
     
    8791 
    8892        @Override 
    89         public void emotionActivation(Event e, ActiveEmotion em, AgentModel am) { 
     93        public void emotionActivation(AgentModel am, Event e, ActiveEmotion em) { 
    9094                Memory m = am.getMemory(); 
    9195                switch(em.GetType()) 
     
    160164        } 
    161165         
    162          
    163166 
    164167        @Override 
    165         public void coping(AgentModel am) { 
    166                 // TODO Auto-generated method stub 
    167                  
     168        public IComponent createModelOfOther() { 
     169                return new SocialRelationsComponent(null); 
    168170        } 
    169171 
    170172        @Override 
    171         public void propertyChangedPerception(String ToM, Name propertyName, 
    172                         String value) { 
    173                 // TODO Auto-generated method stub 
    174                  
    175         } 
    176  
    177         @Override 
    178         public void lookAtPerception(AgentCore ag, String subject, String target) { 
    179                 // TODO Auto-generated method stub 
    180                  
    181         } 
    182  
    183         @Override 
    184         public void entityRemovedPerception(String entity) { 
    185                 // TODO Auto-generated method stub 
    186                  
    187         } 
    188  
    189         @Override 
    190         public IComponent createModelOfOther() { 
    191                 return new SocialRelationsComponent(); 
    192         } 
    193  
    194         @Override 
    195         public AgentDisplayPanel createComponentDisplayPanel(AgentModel am) { 
     173        public AgentDisplayPanel createDisplayPanel(AgentModel am) { 
    196174                return new SocialRelationsPanel(); 
    197175        } 
    198  
    199         @Override 
    200         public void processExternalRequest(String requestMsg) {          
    201         } 
    202  
    203176} 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA.ToM/src/FAtiMA/ToM/ModelOfOther.java

    r734 r742  
    1010import FAtiMA.Core.IComponent; 
    1111import FAtiMA.Core.IGetModelStrategy; 
     12import FAtiMA.Core.IProccessEmotionComponent; 
    1213import FAtiMA.Core.deliberativeLayer.DeliberativeProcess; 
    1314import FAtiMA.Core.emotionalState.ActiveEmotion; 
     
    3334        private Memory _mem; 
    3435        private HashMap<String,IComponent> _components; 
     36        private ArrayList<IProccessEmotionComponent> _processEmotionComponents; 
    3537        private ReactiveProcess _reactiveProcess; 
    3638        private DeliberativeProcess _deliberativeProcess; 
     
    4244                _mem = new Memory(); 
    4345                _components = new HashMap<String,IComponent>(); 
     46                _processEmotionComponents = new ArrayList<IProccessEmotionComponent>(); 
    4447                 
    4548                for(EmotionDisposition ed : ag.getEmotionalState().getEmotionDispositions()) 
     
    7275        } 
    7376         
    74         public void decay(long time) 
     77        public void updateCycle(long time) 
    7578        { 
    76                 _es.Decay(); 
    77                  
    7879                for(IComponent c : _components.values()) 
    7980                { 
    80                         c.decay(time); 
     81                        c.updateCycle(this,time); 
    8182                } 
    8283        } 
    8384         
    84         public void update() 
     85        public void perceiveEvent(Event e) 
    8586        { 
    8687                for(IComponent c : _components.values()) 
    8788                { 
    88                         c.update(this); 
    89                 } 
    90         } 
    91          
    92         public void update(Event e) 
    93         { 
    94                 for(IComponent c : _components.values()) 
    95                 { 
    96                         c.update(e,this); 
     89                        c.perceiveEvent(this,e); 
    9790                } 
    9891        } 
     
    10598                for(IComponent c : this._components.values()) 
    10699                { 
    107                         c.appraisal(e,as,this); 
     100                        c.appraisal(this,e,as); 
    108101                } 
    109102 
     
    115108                        if(activeEmotion != null) 
    116109                        { 
    117                                 for(IComponent c : this._components.values()) 
     110                                for(IProccessEmotionComponent c : this._processEmotionComponents) 
    118111                                { 
    119                                         c.emotionActivation(e,activeEmotion,this); 
     112                                        c.emotionActivation(this,e,activeEmotion); 
    120113                                } 
    121114                        } 
     
    135128                        _deliberativeProcess = (DeliberativeProcess) c; 
    136129                        return; 
     130                } 
     131                 
     132                if(c instanceof IProccessEmotionComponent) 
     133                { 
     134                        _processEmotionComponents.add((IProccessEmotionComponent)c); 
    137135                } 
    138136                 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA.ToM/src/FAtiMA/ToM/ModelOfOtherPanel.java

    r700 r742  
    4242             for(IComponent c: m.getComponents()) 
    4343             { 
    44                  panel = c.createComponentDisplayPanel(m); 
     44                 panel = c.createDisplayPanel(m); 
    4545                 if(panel != null) 
    4646                 { 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA.ToM/src/FAtiMA/ToM/ToMComponent.java

    r734 r742  
    88import FAtiMA.Core.IComponent; 
    99import FAtiMA.Core.IGetModelStrategy; 
     10import FAtiMA.Core.IModelOfOtherComponent; 
     11import FAtiMA.Core.IProcessPerceptionsComponent; 
    1012import FAtiMA.Core.Display.AgentDisplayPanel; 
    1113import FAtiMA.Core.deliberativeLayer.IGetUtilityForOthers; 
    1214import FAtiMA.Core.deliberativeLayer.goals.ActivePursuitGoal; 
    13 import FAtiMA.Core.emotionalState.ActiveEmotion; 
    1415import FAtiMA.Core.emotionalState.AppraisalStructure; 
    1516import FAtiMA.Core.memory.semanticMemory.KnowledgeSlot; 
     
    1920import FAtiMA.Core.wellFormedNames.Symbol; 
    2021 
    21 public class ToMComponent implements IComponent, IGetModelStrategy, IGetUtilityForOthers { 
     22public class ToMComponent implements IComponent, IProcessPerceptionsComponent, IGetModelStrategy, IGetUtilityForOthers { 
    2223         
    2324        public static final String NAME = "ToM"; 
     
    7475                        for(IComponent c : ag.getComponents()) 
    7576                        { 
    76                                 IComponent componentOfOther = c.createModelOfOther(); 
    77                                 if(componentOfOther != null) 
     77                                if(c instanceof IModelOfOtherComponent) 
    7878                                { 
    79                                         model.addComponent(componentOfOther); 
     79                                        IComponent componentOfOther = ((IModelOfOtherComponent)c).createModelOfOther(); 
     80                                        if(componentOfOther != null) 
     81                                        { 
     82                                                model.addComponent(componentOfOther); 
     83                                        } 
    8084                                } 
    8185                        } 
     
    96100 
    97101        @Override 
    98         public void decay(long time) { 
     102        public void updateCycle(AgentModel am,long time) { 
     103                _appraisalsOfOthers.clear(); 
    99104                 
    100105                for(String s : _nearbyAgents) 
    101106                { 
    102107                        ModelOfOther m = _ToM.get(s); 
    103                         m.decay(time); 
    104                 } 
    105         } 
    106  
    107         @Override 
    108         public void update(AgentModel am) { 
    109                 _appraisalsOfOthers.clear(); 
    110                  
     108                        m.updateCycle(time); 
     109                }                
     110        } 
     111         
     112        @Override 
     113        public void perceiveEvent(AgentModel am, Event e) 
     114        { 
    111115                for(String s : _nearbyAgents) 
    112116                { 
    113117                        ModelOfOther m = _ToM.get(s); 
    114                         m.update(); 
    115                 }                
    116         } 
    117          
    118         @Override 
    119         public void update(Event e, AgentModel am) 
    120         { 
    121                 for(String s : _nearbyAgents) 
    122                 { 
    123                         ModelOfOther m = _ToM.get(s); 
    124                         m.update(e); 
     118                        m.perceiveEvent(e); 
    125119                }        
    126120        } 
    127121 
    128122        @Override 
    129         public void appraisal(Event e, AppraisalStructure as, AgentModel am) { 
     123        public void appraisal(AgentModel am, Event e, AppraisalStructure as) { 
    130124                 
    131125                Event e2 = e.RemovePerspective(_name); 
     
    149143                        as.SetAppraisalOfOther(s, otherAS); 
    150144                } 
    151         } 
    152  
    153         @Override 
    154         public void emotionActivation(Event e, ActiveEmotion em, AgentModel am) { 
    155                 //don't forget to removePerspective if u want to do something here. 
    156         } 
    157  
    158         @Override 
    159         public void coping(AgentModel am) { 
    160145        } 
    161146         
     
    241226 
    242227        @Override 
    243         public IComponent createModelOfOther() { 
    244                 return null; 
    245         } 
    246  
    247         @Override 
    248         public AgentDisplayPanel createComponentDisplayPanel(AgentModel am) { 
     228        public AgentDisplayPanel createDisplayPanel(AgentModel am) { 
    249229                return new ToMPanel(this); 
    250230        } 
     
    262242                return utility; 
    263243        } 
    264  
    265         @Override 
    266         public void processExternalRequest(String requestMsg) {          
    267         } 
    268244} 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA.culture/src/FAtiMA/culture/CulturalDimensionsComponent.java

    r717 r742  
    1010import javax.xml.parsers.SAXParserFactory; 
    1111 
    12 import FAtiMA.Core.AgentCore; 
    1312import FAtiMA.Core.AgentModel; 
    1413import FAtiMA.Core.IComponent; 
     
    2019import FAtiMA.Core.deliberativeLayer.IUtilityStrategy; 
    2120import FAtiMA.Core.deliberativeLayer.goals.ActivePursuitGoal; 
    22 import FAtiMA.Core.emotionalState.ActiveEmotion; 
    2321import FAtiMA.Core.emotionalState.AppraisalStructure; 
    2422import FAtiMA.Core.sensorEffector.Event; 
    2523import FAtiMA.Core.util.AgentLogger; 
    2624import FAtiMA.Core.util.Constants; 
    27 import FAtiMA.Core.util.VersionChecker; 
    2825import FAtiMA.Core.util.enumerables.CulturalDimensionType; 
    2926import FAtiMA.Core.wellFormedNames.Name; 
     
    3835        final float POWER_DISTANCE_K = 1.2f; 
    3936         
    40         private String cultureName; 
     37        private String cultureFile; 
    4138        private int[] _dimensionalValues;        
    4239        private ArrayList<Ritual> _rituals; 
     
    4441         
    4542 
    46         public CulturalDimensionsComponent(String cultureName){ 
    47                 this.cultureName = cultureName; 
     43        public CulturalDimensionsComponent(String cultureFile){ 
     44                this.cultureFile = cultureFile; 
    4845                _rituals = new ArrayList<Ritual>(); 
    4946                _ritualOptions = new HashMap<String,Ritual>(); 
     
    6461        } 
    6562         
    66         public void update(Event e, AgentModel am) 
     63        public void perceiveEvent(AgentModel am, Event e) 
    6764        { 
    6865                this.addRitualOptions(e,am); 
     
    7067         
    7168        @Override 
    72         public void appraisal(Event e, AppraisalStructure as, AgentModel am) 
     69        public void appraisal(AgentModel am, Event e, AppraisalStructure as) 
    7370        { 
    7471                float desirabilityForOther = 0; 
     
    142139        private void loadCulture(AgentModel aM){ 
    143140 
    144                 AgentLogger.GetInstance().log("LOADING Culture: " + this.cultureName); 
     141                AgentLogger.GetInstance().log("LOADING Culture: " + this.cultureFile); 
    145142                CultureLoaderHandler cultureLoader = new CultureLoaderHandler(aM,this); 
    146143                 
     
    148145                        SAXParserFactory factory = SAXParserFactory.newInstance(); 
    149146                        SAXParser parser = factory.newSAXParser(); 
    150                         if (VersionChecker.runningOnAndroid()) 
    151                                 parser.parse(new File(AgentCore.MIND_PATH_ANDROID + cultureName + ".xml"), cultureLoader);               
    152                         else     
    153                                 parser.parse(new File(AgentCore.MIND_PATH + cultureName + ".xml"), cultureLoader); 
     147                                 
     148                                parser.parse(new File(this.cultureFile), cultureLoader); 
    154149 
    155150                        for(Ritual r : cultureLoader.GetRituals(aM)){ 
     
    255250        public void reset(){} 
    256251         
    257         @Override 
    258         public void decay(long time){}   
    259         @Override 
    260         public void lookAtPerception(AgentCore ag, String subject, String target) {}     
    261         @Override 
    262         public void propertyChangedPerception(String ToM, Name propertyName,String value) {} 
    263252 
    264253        @Override 
     
    307296 
    308297        @Override 
    309         public void update(AgentModel am) { 
     298        public void updateCycle(AgentModel am,long time) { 
    310299                // TODO Auto-generated method stub 
    311300                 
     
    313302 
    314303        @Override 
    315         public void coping(AgentModel am) { 
    316         } 
    317  
    318         @Override 
    319         public void emotionActivation(Event e, ActiveEmotion em, AgentModel am) { 
    320                 // TODO Auto-generated method stub 
    321                  
    322         } 
    323  
    324         @Override 
    325         public void entityRemovedPerception(String entity) { 
    326                 // TODO Auto-generated method stub 
    327                  
    328         } 
    329  
    330         @Override 
    331         public IComponent createModelOfOther() { 
     304        public AgentDisplayPanel createDisplayPanel(AgentModel am) { 
    332305                return null; 
    333         } 
    334  
    335         @Override 
    336         public AgentDisplayPanel createComponentDisplayPanel(AgentModel am) { 
    337                 return null; 
    338         } 
    339  
    340         @Override 
    341         public void processExternalRequest(String requestMsg) { 
    342306        }        
    343307} 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA/src/FAtiMA/Core/AgentCore.java

    r734 r742  
    6363        private static final Name ACTION_CONTEXT = Name.ParseName("ActionContext()"); 
    6464 
    65         protected HashMap<String, IComponent> _components; 
     65        protected HashMap<String, IComponent> _generalComponents; 
     66        protected ArrayList<IProccessEmotionComponent> _processEmotionComponents; 
     67        protected ArrayList<IBehaviourComponent> _behaviourComponents; 
     68        protected ArrayList<IModelOfOtherComponent> _modelOfOtherComponents; 
     69        protected ArrayList<IProcessExternalRequestComponent> _processExternalRequestComponents; 
     70        protected ArrayList<IProcessPerceptionsComponent> _processPerceptionsComponents; 
     71         
    6672        protected EmotionalState _emotionalState; 
    6773        protected Memory _memory; 
     
    104110                _memory.getEpisodicMemory().StartEpisode(_memory); 
    105111                _strat = this; 
    106                 _components = new HashMap<String,IComponent>(); 
     112                 
     113                _generalComponents = new HashMap<String,IComponent>(); 
     114                _processEmotionComponents = new ArrayList<IProccessEmotionComponent>(); 
     115                _behaviourComponents = new ArrayList<IBehaviourComponent>(); 
     116                _modelOfOtherComponents = new ArrayList<IModelOfOtherComponent>(); 
     117                _processExternalRequestComponents = new ArrayList<IProcessExternalRequestComponent>(); 
     118                _processPerceptionsComponents = new ArrayList<IProcessPerceptionsComponent>(); 
     119                 
    107120                AgentSimulationTime.GetInstance(); //This call will initialize the timer for the agent's simulation time 
    108121        } 
     
    233246        public void addComponent(IComponent c) 
    234247        { 
    235                 this._components.put(c.name(), c); 
     248                this._generalComponents.put(c.name(), c); 
     249                if(c instanceof IProccessEmotionComponent) 
     250                { 
     251                        _processEmotionComponents.add((IProccessEmotionComponent) c); 
     252                } 
     253                if(c instanceof IBehaviourComponent) 
     254                { 
     255                        _behaviourComponents.add((IBehaviourComponent) c); 
     256                } 
     257                if(c instanceof IModelOfOtherComponent) 
     258                { 
     259                        _modelOfOtherComponents.add((IModelOfOtherComponent) c); 
     260                } 
     261                if(c instanceof IProcessExternalRequestComponent) 
     262                { 
     263                        _processExternalRequestComponents.add((IProcessExternalRequestComponent) c); 
     264                } 
     265                if(c instanceof IProcessPerceptionsComponent) 
     266                { 
     267                        _processPerceptionsComponents.add((IProcessPerceptionsComponent) c); 
     268                } 
     269                 
    236270                c.initialize(this); 
    237                 AgentDisplayPanel panel = c.createComponentDisplayPanel(this); 
     271                AgentDisplayPanel panel = c.createDisplayPanel(this); 
    238272                if(panel != null) 
    239273                { 
     
    249283        public IComponent getComponent(String name) 
    250284        { 
    251                 return this._components.get(name); 
     285                return this._generalComponents.get(name); 
    252286        } 
    253287 
    254288        public Collection<IComponent> getComponents() 
    255289        { 
    256                 return this._components.values(); 
    257         } 
    258  
    259         public void RemoveComponent(IComponent c) 
     290                return this._generalComponents.values(); 
     291        } 
     292         
     293        public Collection<IProcessExternalRequestComponent> getProcessExternalRequestComponents() 
     294        { 
     295                return this._processExternalRequestComponents; 
     296        } 
     297 
     298        /*public void RemoveComponent(IComponent c) 
    260299        { 
    261300                this._components.remove(c.name()); 
    262         } 
     301        }*/ 
    263302 
    264303 
     
    352391                 
    353392                this._strat = (IGetModelStrategy) s.readObject(); 
    354                 this._components = (HashMap<String,IComponent>) s.readObject(); 
     393                this._generalComponents = (HashMap<String,IComponent>) s.readObject(); 
     394                this._processEmotionComponents = (ArrayList<IProccessEmotionComponent>) s.readObject(); 
     395                this._behaviourComponents = (ArrayList<IBehaviourComponent>) s.readObject(); 
     396                this._modelOfOtherComponents = (ArrayList<IModelOfOtherComponent>) s.readObject(); 
     397                this._processExternalRequestComponents = (ArrayList<IProcessExternalRequestComponent>) s.readObject(); 
     398                this._processPerceptionsComponents = (ArrayList<IProcessPerceptionsComponent>) s.readObject(); 
    355399                 
    356400                s.close(); 
     
    424468                } 
    425469 
    426                 for(IComponent c : this._components.values()) 
     470                for(IProcessPerceptionsComponent c : this._processPerceptionsComponents) 
    427471                { 
    428472                        c.lookAtPerception(this, subject, auxTarget); 
     
    436480                _memory.getSemanticMemory().Tell(applyPerspective(propertyName, _name), value); 
    437481                 
    438                 for(IComponent c : this._components.values()) 
     482                for(IProcessPerceptionsComponent c : this._processPerceptionsComponents) 
    439483                { 
    440484                        c.propertyChangedPerception(ToM, applyPerspective(propertyName, _name), value); 
     
    475519        public void PerceiveEntityRemoved(String entity) 
    476520        { 
    477                 for(IComponent c : this._components.values()) 
     521                for(IProcessPerceptionsComponent c : this._processPerceptionsComponents) 
    478522                { 
    479523                        c.entityRemovedPerception(entity); 
     
    486530         */ 
    487531        public void Reset() { 
    488                 for(IComponent c : this._components.values()) 
     532                for(IComponent c : this._generalComponents.values()) 
    489533                { 
    490534                        c.reset(); 
     
    533577                                        _emotionalState.Decay(); 
    534578 
    535                                         for(IComponent c : this._components.values()) 
     579                                        for(IComponent c : this._generalComponents.values()) 
    536580                                        { 
    537                                                 c.decay(time); 
    538                                                 c.update(this); 
     581                                                c.updateCycle(this, time); 
    539582                                        } 
    540583 
     
    551594                                                         
    552595                                                         
    553                                                         for(IComponent c : this._components.values()) 
     596                                                        for(IComponent c : this._generalComponents.values()) 
    554597                                                        { 
    555                                                                 c.update(e2,this); 
     598                                                                c.perceiveEvent(this,e2); 
    556599                                                        } 
    557600 
     
    560603                                                        while(appraisal.hasChanged()) 
    561604                                                        { 
    562                                                                 for(IComponent c : this._components.values()) 
     605                                                                for(IComponent c : this._generalComponents.values()) 
    563606                                                                { 
    564                                                                         c.appraisal(e2,appraisal,this); 
     607                                                                        c.appraisal(this,e2,appraisal); 
    565608 
    566609                                                                } 
     
    574617                                                                if(activeEmotion != null) 
    575618                                                                { 
    576                                                                         for(IComponent c : this._components.values()) 
     619                                                                        for(IProccessEmotionComponent c : this._processEmotionComponents) 
    577620                                                                        { 
    578                                                                                 c.emotionActivation(e2,activeEmotion,this); 
     621                                                                                c.emotionActivation(this,e2,activeEmotion); 
    579622                                                                        } 
    580623                                                                } 
     
    612655 
    613656 
    614                                         for(IComponent c : this._components.values()) 
     657                                        for(IBehaviourComponent c : this._behaviourComponents) 
    615658                                        { 
    616659                                                c.coping(this); 
     
    730773                         
    731774                        s.writeObject(_strat); 
    732                         s.writeObject(_components); 
     775                        s.writeObject(_generalComponents); 
     776                        s.writeObject(_processEmotionComponents); 
     777                        s.writeObject(_behaviourComponents); 
     778                        s.writeObject(_modelOfOtherComponents); 
     779                        s.writeObject(_processExternalRequestComponents); 
     780                        s.writeObject(_processPerceptionsComponents); 
    733781                         
    734782                        s.flush(); 
     
    826874                         
    827875                        s.writeObject(_strat); 
    828                         s.writeObject(_components); 
     876                        s.writeObject(_generalComponents); 
     877                        s.writeObject(_processEmotionComponents); 
     878                        s.writeObject(_behaviourComponents); 
     879                        s.writeObject(_modelOfOtherComponents); 
     880                        s.writeObject(_processExternalRequestComponents); 
     881                        s.writeObject(_processPerceptionsComponents); 
    829882                         
    830883                        //s.writeObject(_saveDirectory); 
     
    879932                         
    880933                        this._strat = (IGetModelStrategy) s.readObject(); 
    881                         this._components = (HashMap<String,IComponent>) s.readObject(); 
     934                        this._generalComponents = (HashMap<String,IComponent>) s.readObject(); 
     935                        this._processEmotionComponents = (ArrayList<IProccessEmotionComponent>) s.readObject(); 
     936                        this._behaviourComponents = (ArrayList<IBehaviourComponent>) s.readObject(); 
     937                        this._modelOfOtherComponents = (ArrayList<IModelOfOtherComponent>) s.readObject(); 
     938                        this._processExternalRequestComponents = (ArrayList<IProcessExternalRequestComponent>) s.readObject(); 
     939                        this._processPerceptionsComponents = (ArrayList<IProcessPerceptionsComponent>) s.readObject(); 
    882940                         
    883941                        AgentSimulationTime.LoadState(s); 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA/src/FAtiMA/Core/IComponent.java

    r717 r742  
    22 
    33import FAtiMA.Core.Display.AgentDisplayPanel; 
    4 import FAtiMA.Core.emotionalState.ActiveEmotion; 
    54import FAtiMA.Core.emotionalState.AppraisalStructure; 
    65import FAtiMA.Core.sensorEffector.Event; 
    7 import FAtiMA.Core.wellFormedNames.Name; 
    86 
    97public interface IComponent { 
     
    1513        public void reset(); 
    1614         
    17         public void decay(long time); 
     15        public void updateCycle(AgentModel am, long time); 
    1816         
    19         public void update(AgentModel am); 
     17        public void perceiveEvent(AgentModel am, Event e); 
    2018         
    21         public void update(Event e, AgentModel am); 
     19        public void appraisal(AgentModel am, Event e, AppraisalStructure as); 
    2220         
    23         public IComponent createModelOfOther(); 
    24          
    25         public void appraisal(Event e, AppraisalStructure as, AgentModel am); 
    26          
    27         public void emotionActivation(Event e, ActiveEmotion em, AgentModel am); 
    28          
    29         public void coping(AgentModel am); 
    30          
    31         public void propertyChangedPerception(String ToM, Name propertyName, String value); 
    32          
    33         public void lookAtPerception(AgentCore ag, String subject, String target); 
    34          
    35         public void entityRemovedPerception(String entity); 
    36          
    37         public AgentDisplayPanel createComponentDisplayPanel(AgentModel am); 
    38          
    39         public void processExternalRequest(String requestMsg); 
     21        public AgentDisplayPanel createDisplayPanel(AgentModel am); 
    4022         
    4123} 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA/src/FAtiMA/Core/deliberativeLayer/DeliberativeProcess.java

    r734 r742  
    124124import java.util.Set; 
    125125 
    126 import FAtiMA.Core.AgentCore; 
    127126import FAtiMA.Core.AgentModel; 
     127import FAtiMA.Core.IBehaviourComponent; 
    128128import FAtiMA.Core.IComponent; 
     129import FAtiMA.Core.IModelOfOtherComponent; 
    129130import FAtiMA.Core.ValuedAction; 
    130131import FAtiMA.Core.Display.AgentDisplayPanel; 
    131132import FAtiMA.Core.conditions.Condition; 
    132 import FAtiMA.Core.deliberativeLayer.ActionMonitor; 
    133 import FAtiMA.Core.deliberativeLayer.DefaultDetectThreatStrategy; 
    134 import FAtiMA.Core.deliberativeLayer.DefaultStrategy; 
    135 import FAtiMA.Core.deliberativeLayer.EmotionalPlanner; 
    136 import FAtiMA.Core.deliberativeLayer.ExpirableActionMonitor; 
    137 import FAtiMA.Core.deliberativeLayer.IActionFailureStrategy; 
    138 import FAtiMA.Core.deliberativeLayer.IActionSuccessStrategy; 
    139 import FAtiMA.Core.deliberativeLayer.IDetectThreatStrategy; 
    140 import FAtiMA.Core.deliberativeLayer.IExpectedUtilityStrategy; 
    141 import FAtiMA.Core.deliberativeLayer.IGoalFailureStrategy; 
    142 import FAtiMA.Core.deliberativeLayer.IGoalSuccessStrategy; 
    143 import FAtiMA.Core.deliberativeLayer.IOptionsStrategy; 
    144 import FAtiMA.Core.deliberativeLayer.IProbabilityStrategy; 
    145 import FAtiMA.Core.deliberativeLayer.Intention; 
    146133import FAtiMA.Core.deliberativeLayer.goals.ActivePursuitGoal; 
    147134import FAtiMA.Core.deliberativeLayer.goals.Goal; 
     
    172159 * @author João Dias 
    173160 */ 
    174 public class DeliberativeProcess implements IComponent, IOptionsStrategy, IExpectedUtilityStrategy { 
     161public class DeliberativeProcess implements IComponent, IBehaviourComponent, IModelOfOtherComponent, IOptionsStrategy, IExpectedUtilityStrategy { 
    175162         
    176163        /** 
     
    694681        */ 
    695682         
    696          
    697         public void update(Event event, AgentModel am) { 
     683        @Override 
     684        public void perceiveEvent(AgentModel am, Event event) { 
    698685                 
    699686                CheckLinks(am); 
     
    895882         * execution. 
    896883         */ 
     884        @Override 
    897885        public void coping(AgentModel am) { 
    898886                Intention i = null; 
     
    11811169         * the current intentions and actions. 
    11821170         */ 
     1171        @Override 
    11831172        public void reset() { 
     1173                //TODO incomplete 
    11841174                _options.clear(); 
    11851175                _intentions.clear(); 
     
    12191209                } 
    12201210        } 
    1221          
    1222         /** 
    1223          * Prepares the deliberative layer for a shutdown 
    1224          */ 
    12251211 
    12261212 
     
    12371223        public void initialize(AgentModel ag) {  
    12381224        } 
    1239  
     1225         
    12401226        @Override 
    1241         public void decay(long time) { 
    1242                 // TODO Auto-generated method stub 
    1243                  
    1244         } 
    1245          
    1246         public void update(AgentModel am) 
     1227        public void updateCycle(AgentModel am, long time) 
    12471228        { 
    12481229                if(_actionMonitor != null && _actionMonitor.Expired()) { 
     
    12651246        } 
    12661247 
    1267         @Override 
    1268         public void propertyChangedPerception(String ToM, Name propertyName, 
    1269                         String value) { 
    1270         } 
    1271  
    1272         @Override 
    1273         public void lookAtPerception(AgentCore ag, String subject, String target) { 
    1274         } 
    1275  
    1276         @Override 
    1277         public void emotionActivation(Event e, ActiveEmotion em, AgentModel am) { 
    1278                 // TODO Auto-generated method stub 
    1279                  
    1280         } 
    1281  
    1282         @Override 
    1283         public void entityRemovedPerception(String entity) { 
    1284                 // TODO Auto-generated method stub 
    1285                  
    1286         } 
    12871248 
    12881249        @Override 
     
    12921253 
    12931254        @Override 
    1294         public void appraisal(Event e, AppraisalStructure as, AgentModel am) { 
     1255        public void appraisal(AgentModel am, Event e, AppraisalStructure as) { 
    12951256        } 
    12961257 
    12971258        @Override 
    1298         public AgentDisplayPanel createComponentDisplayPanel(AgentModel am) { 
     1259        public AgentDisplayPanel createDisplayPanel(AgentModel am) { 
    12991260                return null; 
    13001261        } 
    1301  
    1302         @Override 
    1303         public void processExternalRequest(String requestMsg) { 
    1304         } 
    13051262} 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA/src/FAtiMA/Core/reactiveLayer/ReactiveProcess.java

    r734 r742  
    6262 
    6363 
    64 import FAtiMA.Core.AgentCore; 
    6564import FAtiMA.Core.AgentModel; 
     65import FAtiMA.Core.IBehaviourComponent; 
    6666import FAtiMA.Core.IComponent; 
     67import FAtiMA.Core.IModelOfOtherComponent; 
    6768import FAtiMA.Core.ValuedAction; 
    6869import FAtiMA.Core.Display.AgentDisplayPanel; 
    69 import FAtiMA.Core.emotionalState.ActiveEmotion; 
    70  
    7170import FAtiMA.Core.emotionalState.AppraisalStructure; 
    7271import FAtiMA.Core.sensorEffector.Event; 
    73 import FAtiMA.Core.wellFormedNames.Name; 
    7472 
    7573 
     
    7876 * @author João Dias 
    7977 */ 
    80 public class ReactiveProcess implements IComponent { 
     78public class ReactiveProcess implements IComponent, IBehaviourComponent, IModelOfOtherComponent { 
    8179         
    8280    /** 
     
    159157         * reaction rules 
    160158         */ 
    161         public void appraisal(Event event, AppraisalStructure as, AgentModel ag) { 
     159        @Override 
     160        public void appraisal(AgentModel ag, Event event, AppraisalStructure as) { 
    162161                Reaction selfEvaluation;         
    163162                         
     
    190189         * according to the emotional state. 
    191190         */ 
     191        @Override 
    192192        public void coping(AgentModel am) { 
    193193                ValuedAction action; 
     
    267267 
    268268        @Override 
    269         public void decay(long time) { 
    270         } 
    271  
    272         @Override 
    273         public void update(AgentModel am) { 
    274         } 
    275          
    276         @Override 
    277         public void update(Event e, AgentModel am) 
    278         { 
    279         } 
    280  
    281         @Override 
    282         public void propertyChangedPerception(String ToM, Name propertyName, 
    283                         String value) { 
    284         } 
    285  
    286         @Override 
    287         public void lookAtPerception(AgentCore ag, String subject, String target) { 
    288         } 
    289  
    290         @Override 
    291         public void emotionActivation(Event e, ActiveEmotion em, AgentModel am) { 
    292                 // TODO Auto-generated method stub 
    293                  
    294         } 
    295  
    296         @Override 
    297         public void entityRemovedPerception(String entity) { 
    298                 // TODO Auto-generated method stub 
    299                  
    300         } 
    301  
     269        public void updateCycle(AgentModel am,long time) { 
     270        } 
     271         
     272        @Override 
     273        public void perceiveEvent(AgentModel am, Event e) 
     274        { 
     275        } 
     276 
     277         
    302278        @Override 
    303279        public IComponent createModelOfOther() { 
     
    312288 
    313289        @Override 
    314         public AgentDisplayPanel createComponentDisplayPanel(AgentModel am) { 
     290        public AgentDisplayPanel createDisplayPanel(AgentModel am) { 
    315291                return null; 
    316292        } 
    317  
    318         @Override 
    319         public void processExternalRequest(String requestMsg) {          
    320         } 
    321293} 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA/src/FAtiMA/Core/sensorEffector/RemoteAgent.java

    r731 r742  
    9090import FAtiMA.Core.AgentSimulationTime; 
    9191import FAtiMA.Core.IComponent; 
     92import FAtiMA.Core.IProcessExternalRequestComponent; 
    9293import FAtiMA.Core.ValuedAction; 
    9394import FAtiMA.Core.emotionalState.EmotionalState; 
     
    324325                        else 
    325326                        { 
    326                                 for(IComponent c : _agent.getComponents()) 
     327                                for(IProcessExternalRequestComponent c : _agent.getProcessExternalRequestComponents()) 
    327328                                { 
    328                                         if(msgType.equals(c.name())) 
     329                                        if(msgType.equals(((IComponent)c).name())) 
    329330                                        { 
    330331                                                c.processExternalRequest(perception); 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA/src/FAtiMA/Core/util/ConfigurationManager.java

    r731 r742  
    110110        } 
    111111         
     112        public static String getMindPath() 
     113        { 
     114                if(VersionChecker.runningOnAndroid()) 
     115                { 
     116                        return AgentCore.MIND_PATH_ANDROID; 
     117                } 
     118                else 
     119                { 
     120                        return AgentCore.MIND_PATH_ANDROID; 
     121                } 
     122        } 
     123         
    112124        public static String getName(){  
    113125                return getInstance().getConfigurationValue(NAME);        
Note: See TracChangeset for help on using the changeset viewer.