Changeset 762


Ignore:
Timestamp:
12/10/2010 01:25:43 PM (10 years ago)
Author:
joao.dias
Message:
 
Location:
AgentMind/branches/FAtiMA-Modular/FAtiMA.ToM/src/FAtiMA/ToM
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • AgentMind/branches/FAtiMA-Modular/FAtiMA.ToM/src/FAtiMA/ToM/ModelOfOther.java

    r744 r762  
    88import FAtiMA.Core.AgentCore; 
    99import FAtiMA.Core.AgentModel; 
     10import FAtiMA.Core.IAffectDerivationComponent; 
     11import FAtiMA.Core.IAppraisalComponent; 
    1012import FAtiMA.Core.IComponent; 
    1113import FAtiMA.Core.IGetModelStrategy; 
     
    1315import FAtiMA.Core.deliberativeLayer.DeliberativeProcess; 
    1416import FAtiMA.Core.emotionalState.ActiveEmotion; 
    15 import FAtiMA.Core.emotionalState.Appraisal; 
    16 import FAtiMA.Core.emotionalState.AppraisalStructure; 
     17import FAtiMA.Core.emotionalState.AppraisalFrame; 
    1718import FAtiMA.Core.emotionalState.BaseEmotion; 
    1819import FAtiMA.Core.emotionalState.EmotionDisposition; 
     
    3536        private HashMap<String,IComponent> _components; 
    3637        private ArrayList<IProcessEmotionComponent> _processEmotionComponents; 
     38        private ArrayList<IAppraisalComponent> _appraisalComponents; 
     39        private ArrayList<IAffectDerivationComponent> _affectDerivationComponents; 
    3740        private ReactiveProcess _reactiveProcess; 
    3841        private DeliberativeProcess _deliberativeProcess; 
     
    4548                _components = new HashMap<String,IComponent>(); 
    4649                _processEmotionComponents = new ArrayList<IProcessEmotionComponent>(); 
     50                _appraisalComponents = new ArrayList<IAppraisalComponent>(); 
     51                _affectDerivationComponents = new ArrayList<IAffectDerivationComponent>(); 
    4752                 
    4853                for(EmotionDisposition ed : ag.getEmotionalState().getEmotionDispositions()) 
     
    9095                _mem.getSemanticMemory().Tell(AgentCore.ACTION_CONTEXT, e.toName().toString()); 
    9196                 
    92                 for(IComponent c : _components.values()) 
     97                for(IAppraisalComponent c : _appraisalComponents) 
    9398                { 
    9499                        c.perceiveEvent(this,e); 
     
    96101        } 
    97102         
    98         public void appraisal(Event e, AppraisalStructure as)  
    99         { 
    100                 ArrayList<BaseEmotion> emotions; 
    101                 ActiveEmotion activeEmotion; 
    102                  
    103                 for(IComponent c : this._components.values()) 
     103        public void appraisal(Event e, AppraisalFrame as)  
     104        {        
     105                for(IAppraisalComponent ac : _appraisalComponents) 
    104106                { 
    105                         c.appraisal(this,e,as); 
    106                 } 
    107  
    108                 emotions = Appraisal.GenerateEmotions(this, e, as); 
    109  
    110                 for(BaseEmotion em : emotions) 
    111                 { 
    112                         activeEmotion = _es.AddEmotion(em, this); 
    113                         if(activeEmotion != null) 
    114                         { 
    115                                 for(IProcessEmotionComponent c : this._processEmotionComponents) 
    116                                 { 
    117                                         c.emotionActivation(this,e,activeEmotion); 
    118                                 } 
    119                         } 
     107                        ac.startAppraisal(this,e,as); 
    120108                } 
    121109        } 
     
    137125                { 
    138126                        _processEmotionComponents.add((IProcessEmotionComponent)c); 
     127                } 
     128                 
     129                if(c instanceof IAppraisalComponent) 
     130                { 
     131                        _appraisalComponents.add((IAppraisalComponent) c); 
     132                } 
     133                if(c instanceof IAffectDerivationComponent) 
     134                { 
     135                        _affectDerivationComponents.add((IAffectDerivationComponent) c); 
    139136                } 
    140137                 
     
    172169        } 
    173170 
     171        @Override 
     172        public void updateEmotions(String appraisalVariable, AppraisalFrame af) { 
     173                ArrayList<BaseEmotion> emotions; 
     174                ActiveEmotion activeEmotion; 
     175                 
     176                for(IAffectDerivationComponent ac : this._affectDerivationComponents) 
     177                { 
     178                        emotions = ac.deriveEmotions(this, appraisalVariable, af); 
     179                        for(BaseEmotion em : emotions) 
     180                        { 
     181                                activeEmotion =  _es.AddEmotion(em, this); 
     182                                if(activeEmotion != null) 
     183                                { 
     184                                        for(IProcessEmotionComponent pec : this._processEmotionComponents) 
     185                                        { 
     186                                                pec.emotionActivation(this,activeEmotion); 
     187                                        } 
     188                                } 
     189                        } 
     190                } 
     191        } 
     192 
    174193} 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA.ToM/src/FAtiMA/ToM/ToMComponent.java

    r744 r762  
    66import FAtiMA.Core.AgentCore; 
    77import FAtiMA.Core.AgentModel; 
     8import FAtiMA.Core.IAppraisalComponent; 
    89import FAtiMA.Core.IComponent; 
    910import FAtiMA.Core.IGetModelStrategy; 
     
    1112import FAtiMA.Core.IProcessPerceptionsComponent; 
    1213import FAtiMA.Core.Display.AgentDisplayPanel; 
     14import FAtiMA.Core.OCCAffectDerivation.OCCComponent; 
    1315import FAtiMA.Core.deliberativeLayer.IGetUtilityForOthers; 
    1416import FAtiMA.Core.deliberativeLayer.goals.ActivePursuitGoal; 
    15 import FAtiMA.Core.emotionalState.AppraisalStructure; 
     17import FAtiMA.Core.emotionalState.AppraisalFrame; 
    1618import FAtiMA.Core.memory.semanticMemory.KnowledgeSlot; 
    1719import FAtiMA.Core.sensorEffector.Event; 
     
    2022import FAtiMA.Core.wellFormedNames.Symbol; 
    2123 
    22 public class ToMComponent implements IComponent, IProcessPerceptionsComponent, IGetModelStrategy, IGetUtilityForOthers { 
     24public class ToMComponent implements IAppraisalComponent, IProcessPerceptionsComponent, IGetModelStrategy, IGetUtilityForOthers { 
    2325         
    2426        public static final String NAME = "ToM"; 
     
    2729        protected HashMap<String,ModelOfOther> _ToM; 
    2830        protected ArrayList<String> _nearbyAgents; 
    29         protected HashMap<String,AppraisalStructure> _appraisalsOfOthers; 
    3031         
    3132         
     
    3435                this._name = agentName; 
    3536                this._nearbyAgents = new ArrayList<String>(); 
    36                 this._appraisalsOfOthers = new HashMap<String,AppraisalStructure>(); 
    3737                this._ToM = new HashMap<String,ModelOfOther>(); 
    3838        } 
     
    101101        @Override 
    102102        public void updateCycle(AgentModel am,long time) { 
    103                 _appraisalsOfOthers.clear(); 
    104103                 
    105104                for(String s : _nearbyAgents) 
     
    124123 
    125124        @Override 
    126         public void appraisal(AgentModel am, Event e, AppraisalStructure as) { 
     125        public void startAppraisal(AgentModel am, Event e, AppraisalFrame as) { 
    127126                 
    128127                Event e2 = e.RemovePerspective(_name); 
    129128                Event e3; 
    130                  
    131                 //one time appraisal for each event, so if the event was already appraised this cycle, just return 
    132                 if(_appraisalsOfOthers.containsKey(e2.toString())) 
    133                 { 
    134                         return; 
    135                 } 
    136                  
    137                 AppraisalStructure otherAS; 
     129                float desirability; 
     130                 
     131                AppraisalFrame otherAF; 
    138132                 
    139133                for(String s : _nearbyAgents) 
    140134                { 
    141                         otherAS = new AppraisalStructure(); 
    142135                        ModelOfOther m = _ToM.get(s); 
    143136                        e3 = e2.ApplyPerspective(s); 
    144                         m.appraisal(e3, otherAS); 
     137                        otherAF = new AppraisalFrame(m,e3); 
     138                        m.appraisal(e3, otherAF); 
    145139                         
    146                         as.SetAppraisalOfOther(s, otherAS); 
    147                 } 
    148                  
    149                 _appraisalsOfOthers.put(e2.toString(), as); 
     140                        desirability = otherAF.getAppraisalVariable(OCCComponent.DESIRABILITY); 
     141                        if(desirability != 0) 
     142                        { 
     143                                as.SetAppraisalVariable(NAME,  
     144                                                (short)7, 
     145                                                OCCComponent.DESFOROTHER+s, 
     146                                                otherAF.getAppraisalVariable(OCCComponent.DESIRABILITY)); 
     147                        }  
     148                } 
    150149        } 
    151150         
     
    247246                return utility; 
    248247        } 
     248 
     249        @Override 
     250        public void continueAppraisal(AgentModel am) { 
     251        } 
    249252} 
Note: See TracChangeset for help on using the changeset viewer.