Changeset 734


Ignore:
Timestamp:
11/23/2010 02:24:45 PM (10 years ago)
Author:
joao.dias
Message:
 
Location:
AgentMind/branches/FAtiMA-Modular
Files:
14 edited

Legend:

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

    r730 r734  
    99import FAtiMA.Core.exceptions.GoalLibParsingException; 
    1010import FAtiMA.Core.exceptions.UnknownGoalException; 
     11import FAtiMA.motivationalSystem.MotivationalComponent; 
    1112import FAtiMA.socialRelations.SocialRelationsComponent; 
    1213 
     
    2728                AgentCore aG = initializeAgentCore(args); 
    2829                aG.addComponent(new SocialRelationsComponent()); 
     30                aG.addComponent(new MotivationalComponent()); 
    2931                 
    3032                aG.StartAgent(); 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA.AdvancedMemory/src/main/java/FAtiMA/advancedMemoryComponent/AdvancedMemoryComponent.java

    r730 r734  
    203203        public void appraisal(Event e, AppraisalStructure as, AgentModel am) { 
    204204                 
    205                 Event event2; 
    206                                  
    207                 //self evaluation 
    208                 event2 = e.ApplyPerspective(am.getName()); 
    209                  
    210205                //appraisal from memory 
    211                 ActionDetail ad = new ActionDetail(0,event2.GetSubject(), 
    212                                         event2.GetAction(),  
    213                                         event2.GetTarget(), 
    214                                         event2.GetParameters(),null,null,null,null); 
     206                ActionDetail ad = new ActionDetail(0,e.GetSubject(), 
     207                                        e.GetAction(),  
     208                                        e.GetTarget(), 
     209                                        e.GetParameters(),null,null,null,null); 
    215210                         
    216211                _compoundCue.Match(ad,am.getMemory().getEpisodicMemory()); 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA.MotivationalSystem/src/FAtiMA/motivationalSystem/MotivationalComponent.java

    r725 r734  
    66 
    77 
     8import java.io.File; 
    89import java.io.Serializable; 
    910import java.util.ArrayList; 
    1011import java.util.HashMap; 
     12 
     13import javax.xml.parsers.SAXParser; 
     14import javax.xml.parsers.SAXParserFactory; 
    1115 
    1216import FAtiMA.Core.AgentCore; 
     
    2731import FAtiMA.Core.sensorEffector.Event; 
    2832import FAtiMA.Core.util.AgentLogger; 
     33import FAtiMA.Core.util.ConfigurationManager; 
     34import FAtiMA.Core.util.Constants; 
    2935import FAtiMA.Core.wellFormedNames.Name; 
    3036import FAtiMA.Core.wellFormedNames.Substitution; 
     
    8793                _appraisals = new HashMap<String,Float>(); 
    8894                _goalEffectsOnDrives = new HashMap<String,ExpectedGoalEffectsOnDrives>(); 
     95                _actionEffectsOnDrives = new HashMap<String,ActionEffectsOnDrives>(); 
    8996        } 
    9097         
     
    166173                                        target = (Symbol) eff.getTarget().clone(); 
    167174                                        target.MakeGround(substitutions); 
    168                                         if(target.toString().equals(am.getName())) 
     175                                        if(target.toString().equals(Constants.SELF)) 
    169176                                        { 
    170177                                                AgentLogger.GetInstance().log("Updating motivator " + eff.getDriveName()); 
     
    194201                float currentIntensity = 0; 
    195202                float auxMultiplier = 1;  
     203                boolean test; 
    196204                 
    197205                try {            
     
    199207                         
    200208                        ExpectedGoalEffectsOnDrives effects = _goalEffectsOnDrives.get(g.getKey()); 
     209                        if(effects == null) return 0; 
    201210                        for(EffectOnDrive e : effects.getEffects()) 
    202211                        { 
    203                                 Symbol target = (Symbol) e.getTarget().clone(); 
    204                                 target.MakeGround(g.getAppliedSubstitutions()); 
    205                                 if(target.toString().equals(am.getName())) 
     212                                if(am.isSelf()) 
     213                                { 
     214                                        test = e.getTarget().toString().equals(Constants.SELF); 
     215                                } 
     216                                else 
     217                                { 
     218                                        Symbol target = (Symbol) e.getTarget().clone(); 
     219                                        target.MakeGround(g.getAppliedSubstitutions()); 
     220                                        test = target.toString().equals(am.getName()); 
     221                                } 
     222                                 
     223                                if(test) 
    206224                                { 
    207225                                        expectedContribution = e.getValue(); 
     
    417435        public void update(Event e, AgentModel am) 
    418436        { 
    419                 Event event2 = e.ApplyPerspective(am.getName()); 
    420                 float result =  UpdateMotivators(am, event2); 
     437                float result =  UpdateMotivators(am, e); 
    421438                _appraisals.put(e.toString(), new Float(result)); 
    422439        } 
     
    452469                am.getDeliberativeLayer().addGoalFailureStrategy(this); 
    453470                am.getDeliberativeLayer().addGoalSuccessStrategy(this); 
     471                LoadNeeds(am); 
     472        } 
     473         
     474        private void LoadNeeds(AgentModel am) 
     475        { 
     476                AgentLogger.GetInstance().log("LOADING Social Relations: "); 
     477                NeedsLoaderHandler needsLoader = new NeedsLoaderHandler(am,this); 
     478                 
     479                try{ 
     480                        SAXParserFactory factory = SAXParserFactory.newInstance(); 
     481                        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); 
     485                         
     486 
     487                }catch(Exception e){ 
     488                        throw new RuntimeException("Error on Loading Needs from XML Files:" + e); 
     489                } 
    454490        } 
    455491 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA.MotivationalSystem/src/FAtiMA/motivationalSystem/NeedsLoaderHandler.java

    r720 r734  
    33import org.xml.sax.Attributes; 
    44 
    5 import FAtiMA.Core.AgentCore; 
     5import FAtiMA.Core.AgentModel; 
    66import FAtiMA.Core.util.AgentLogger; 
     7import FAtiMA.Core.util.Constants; 
    78import FAtiMA.Core.util.parsers.ReflectXMLHandler; 
     9import FAtiMA.Core.wellFormedNames.Substitution; 
    810import FAtiMA.Core.wellFormedNames.Symbol; 
    911 
    1012public class NeedsLoaderHandler  extends ReflectXMLHandler { 
    1113         
    12         AgentCore _agent; 
     14        AgentModel _agent; 
    1315        String _currentGoalKey; 
    1416        String _currentStepKey; 
    1517                 
    1618 
    17         public NeedsLoaderHandler(AgentCore agent, MotivationalComponent motivationalState){ 
     19        public NeedsLoaderHandler(AgentModel agent, MotivationalComponent motivationalState){ 
    1820                this._agent = agent; 
    1921        } 
     
    4042    } 
    4143         
     44        public void ActivePursuitGoal(Attributes attributes) { 
     45        _currentGoalKey = attributes.getValue("name"); 
     46    } 
     47        public void InterestGoal(Attributes attributes) 
     48        { 
     49                _currentGoalKey = attributes.getValue("name"); 
     50        } 
     51         
    4252        public void Action(Attributes attributes){ 
    4353                _currentStepKey = attributes.getValue("name");   
     
    5262                String target = attributes.getValue("target"); 
    5363 
    54                 if(driveName != null && _currentGoalKey != null){ 
     64                if(driveName != null && _currentStepKey != null){ 
    5565                        motivComp.addActionEffectsOnDrive(_currentStepKey, driveName, new Symbol(target), Float.parseFloat(value)); 
    5666                } 
     
    7383                String value = attributes.getValue("value"); 
    7484                String target = attributes.getValue("target"); 
     85                Symbol t = new Symbol(target); 
     86                Substitution self = new Substitution(new Symbol("[SELF]"), new Symbol(Constants.SELF)); 
     87                t.MakeGround(self); 
    7588 
    7689                if(driveName != null && _currentGoalKey != null){ 
    77                         ms.addExpectedGoalEffectOnDrive(_currentGoalKey, effectType, driveName, new Symbol(target), Float.parseFloat(value)); 
     90                        ms.addExpectedGoalEffectOnDrive(_currentGoalKey, effectType, driveName, t, Float.parseFloat(value)); 
    7891                } 
    7992        } 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA.SocialRelations/src/FAtiMA/socialRelations/SocialRelationsComponent.java

    r717 r734  
    11package FAtiMA.socialRelations; 
     2 
     3import java.io.File; 
     4 
     5import javax.xml.parsers.SAXParser; 
     6import javax.xml.parsers.SAXParserFactory; 
    27 
    38import FAtiMA.Core.AgentCore; 
     
    914import FAtiMA.Core.memory.Memory; 
    1015import FAtiMA.Core.sensorEffector.Event; 
     16import FAtiMA.Core.util.AgentLogger; 
     17import FAtiMA.Core.util.ConfigurationManager; 
    1118import FAtiMA.Core.util.Constants; 
    1219import FAtiMA.Core.util.enumerables.EmotionType; 
    1320import FAtiMA.Core.wellFormedNames.Name; 
    1421 
     22 
    1523public class SocialRelationsComponent implements IComponent { 
    1624         
     
    2028        {        
    2129        } 
     30         
     31        private void loadRelations(AgentModel aM){ 
     32 
     33                AgentLogger.GetInstance().log("LOADING Social Relations: "); 
     34                RelationsLoaderHandler relationsLoader = new RelationsLoaderHandler(aM); 
     35                 
     36                try{ 
     37                        SAXParserFactory factory = SAXParserFactory.newInstance(); 
     38                        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); 
     42                         
     43 
     44                }catch(Exception e){ 
     45                        throw new RuntimeException("Error on Loading the Social Relations XML Files:" + e); 
     46                } 
     47        } 
    2248 
    2349        @Override 
     
    2753 
    2854        @Override 
    29         public void initialize(AgentModel am) {                  
     55        public void initialize(AgentModel am) { 
     56                this.loadRelations(am); 
    3057        } 
    3158 
     
    5279                { 
    5380                        int relationShip = Math.round(LikeRelation.getRelation(Constants.SELF, e.GetTarget()).getValue(am.getMemory())); 
    54                         as.SetAppraisalVariable(NAME, (short)7, AppraisalStructure.LIKE, relationShip); 
     81                        if(relationShip != 0) 
     82                        { 
     83                                as.SetAppraisalVariable(NAME, (short)7, AppraisalStructure.LIKE, relationShip); 
     84                        }        
    5585                } 
    5686        } 
     
    129159                } 
    130160        } 
     161         
     162         
    131163 
    132164        @Override 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA.ToM/src/FAtiMA/ToM/ModelOfOther.java

    r700 r734  
    4747                        _es.AddEmotionDisposition(ed); 
    4848                }                
     49        } 
     50         
     51        public boolean isSelf() 
     52        { 
     53                return false; 
    4954        } 
    5055         
  • AgentMind/branches/FAtiMA-Modular/FAtiMA.ToM/src/FAtiMA/ToM/ToMComponent.java

    r717 r734  
    2929         
    3030         
    31         public ToMComponent(String name) 
    32         { 
    33                 this._name = name; 
     31        public ToMComponent(String agentName) 
     32        { 
     33                this._name = agentName; 
    3434                this._nearbyAgents = new ArrayList<String>(); 
    3535                this._appraisalsOfOthers = new HashMap<Event,AppraisalStructure>(); 
     
    129129        public void appraisal(Event e, AppraisalStructure as, AgentModel am) { 
    130130                 
     131                Event e2 = e.RemovePerspective(_name); 
     132                Event e3; 
     133                 
    131134                //one time appraisal for each event, so if the event was already appraised this cycle, just return 
    132                 if(_appraisalsOfOthers.containsKey(e)) 
     135                if(_appraisalsOfOthers.containsKey(e2)) 
    133136                { 
    134137                        return; 
     
    141144                        otherAS = new AppraisalStructure(); 
    142145                        ModelOfOther m = _ToM.get(s); 
    143                         m.appraisal(e, otherAS); 
     146                        e3 = e2.ApplyPerspective(s); 
     147                        m.appraisal(e3, otherAS); 
    144148                         
    145149                        as.SetAppraisalOfOther(s, otherAS); 
     
    149153        @Override 
    150154        public void emotionActivation(Event e, ActiveEmotion em, AgentModel am) { 
    151  
     155                //don't forget to removePerspective if u want to do something here. 
    152156        } 
    153157 
     
    171175        public void propertyChangedPerception(String ToM, Name propertyName, String value)  
    172176        { 
     177                Name propertyName2 = AgentCore.removePerspective(propertyName, _name); 
     178                 
     179                 
    173180                if(ToM.equals(Constants.UNIVERSAL.toString())) 
    174181                { 
     
    176183                        { 
    177184                                ModelOfOther m = _ToM.get(other); 
    178                                 m.getMemory().getSemanticMemory().Tell(AgentCore.applyPerspective(propertyName,other), value); 
     185                                m.getMemory().getSemanticMemory().Tell(AgentCore.applyPerspective(propertyName2,other), value); 
    179186                        } 
    180187                } 
     
    184191                        if(m != null) 
    185192                        { 
    186                                 m.getMemory().getSemanticMemory().Tell(AgentCore.applyPerspective(propertyName,ToM), value); 
     193                                m.getMemory().getSemanticMemory().Tell(AgentCore.applyPerspective(propertyName2,ToM), value); 
    187194                        } 
    188195                } 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA/src/FAtiMA/Core/AgentCore.java

    r730 r734  
    193193        } 
    194194 
    195  
    196  
    197  
    198195        public static Name applyPerspective(Name n, String agentName) 
    199196        { 
     
    210207 
    211208                return newName; 
     209        } 
     210         
     211        public static Name removePerspective(Name n, String agentName) 
     212        { 
     213                Name newName = (Name) n.clone(); 
     214                ArrayList<Symbol> symbols = newName.GetLiteralList(); 
     215 
     216                for(int i = 0; i < symbols.size(); i++) 
     217                { 
     218                        if(symbols.get(i).getName().equals(Constants.SELF)) 
     219                        { 
     220                                symbols.set(i, new Symbol(agentName)); 
     221                        } 
     222                } 
     223 
     224                return newName; 
     225        } 
     226         
     227        public boolean isSelf() 
     228        { 
     229                return true; 
    212230        } 
    213231 
     
    535553                                                        for(IComponent c : this._components.values()) 
    536554                                                        { 
    537                                                                 c.update(e,this); 
     555                                                                c.update(e2,this); 
    538556                                                        } 
    539557 
     
    544562                                                                for(IComponent c : this._components.values()) 
    545563                                                                { 
    546                                                                         c.appraisal(e,appraisal,this); 
     564                                                                        c.appraisal(e2,appraisal,this); 
    547565 
    548566                                                                } 
    549567                                                        } 
    550568 
    551                                                         emotions = Appraisal.GenerateEmotions(this, e, appraisal); 
     569                                                        emotions = Appraisal.GenerateEmotions(this, e2, appraisal); 
    552570 
    553571                                                        for(BaseEmotion em : emotions) 
     
    558576                                                                        for(IComponent c : this._components.values()) 
    559577                                                                        { 
    560                                                                                 c.emotionActivation(e,activeEmotion,this); 
     578                                                                                c.emotionActivation(e2,activeEmotion,this); 
    561579                                                                        } 
    562580                                                                } 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA/src/FAtiMA/Core/AgentModel.java

    r717 r734  
    2828        public IComponent getComponent(String name); 
    2929         
     30        public boolean isSelf(); 
     31         
    3032} 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA/src/FAtiMA/Core/deliberativeLayer/DeliberativeProcess.java

    r717 r734  
    694694        */ 
    695695         
    696         /** 
    697          * Deliberative appraisal process. Checks goal activation and  
    698          * inserts intentions to achieve recently activated goals. Generates 
    699          * initial Hope/Fear emotions for each activated goal. 
    700          * @throws InvalidMotivatorTypeException  
    701          */ 
    702          
    703         /*public void AppraiseForOthers(Event event, AgentModel am) 
    704         { 
    705                 Event event2 = event.ApplyPerspective(am.getName()); 
    706                 am.getMotivationalState().UpdateMotivators(am, event2, _planner.GetOperators()); 
    707         }*/ 
    708696         
    709697        public void update(Event event, AgentModel am) { 
    710698                 
    711699                CheckLinks(am); 
    712                  
    713                 //updating selfMotivators 
    714                 Event event2 = event.ApplyPerspective(am.getName()); 
    715                  
    716                 if(_actionMonitor != null && _actionMonitor.MatchEvent(event2)) { 
     700         
     701                 
     702                if(_actionMonitor != null && _actionMonitor.MatchEvent(event)) { 
    717703                    if(_actionMonitor.GetStep().getAgent().isGrounded() &&   
    718704                                !_actionMonitor.GetStep().getAgent().toString().equals("SELF")) 
     
    721707                        //since the step of another agent may contain unbound variables, 
    722708                        //we cannot just compare the names, we need to try to unify them 
    723                         if(Unifier.Unify(event2.toStepName(),  
     709                        if(Unifier.Unify(event.toStepName(),  
    724710                                        _actionMonitor.GetStep().getName()) != null) 
    725711                        { 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA/src/FAtiMA/Core/deliberativeLayer/goals/ActivePursuitGoal.java

    r732 r734  
    557557                g._goalID = this._goalID; 
    558558                g._id = this._id; 
     559                g._key = this._key; 
    559560                g._active = this._active; 
    560561                g._name = (Name) this._name.clone(); 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA/src/FAtiMA/Core/emotionalState/AppraisalStructure.java

    r730 r734  
    7070        } 
    7171         
    72         public boolean SetAppraisalVariable(String component, short weight, short appraisalVariable, float value) 
     72        public void SetAppraisalVariable(String component, short weight, short appraisalVariable, float value) 
    7373        { 
    7474                HashMap<String,Pair> a = _appraisal.get(appraisalVariable); 
     
    8585                                //nothing else needs to be done in this case 
    8686                        } 
    87                         return _changed; 
    8887                } 
    89                 //setting up a new value 
    90                 Pair p = new Pair(weight, value); 
    91                 _weights[appraisalVariable] += weight; 
    92                 a.put(component,p); 
    93                 _empty = false; 
    94                 _changed = true; 
    95                 return _changed; 
     88                else 
     89                { 
     90                        //setting up a new value 
     91                        Pair p = new Pair(weight, value); 
     92                        _weights[appraisalVariable] += weight; 
     93                        a.put(component,p); 
     94                        _empty = false; 
     95                        _changed = true;         
     96                } 
    9697        } 
    9798         
     
    110111                 
    111112                _empty = false; 
    112                 _changed = as.SetAppraisalVariable(component, weight, appraisalVariable, value); 
     113                _changed = as.hasChanged();  
    113114        } 
    114115         
     
    165166                boolean aux = _changed; 
    166167                _changed = false; 
    167                 for(AppraisalStructure as : _appraisalOfOthers.values()) 
    168                 { 
    169                         as.hasChanged(); 
    170                 } 
     168                 
    171169                return aux; 
    172170        } 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA/src/FAtiMA/Core/reactiveLayer/ReactiveProcess.java

    r730 r734  
    160160         */ 
    161161        public void appraisal(Event event, AppraisalStructure as, AgentModel ag) { 
    162                 Event event2; 
    163162                Reaction selfEvaluation;         
    164163                         
    165                 //self evaluation 
    166                 event2 = event.ApplyPerspective(ag.getName()); 
    167                 selfEvaluation = Evaluate(ag, event2); 
     164                 
     165                selfEvaluation = Evaluate(ag, event); 
    168166                 
    169167                if(selfEvaluation != null) 
  • AgentMind/branches/FAtiMA-Modular/LIRECOptionsAmy.txt

    r300 r734  
    1919Amy Hug Jonas 
    2020Amy Massage Jonas 
     21Amy Slap Greta 
Note: See TracChangeset for help on using the changeset viewer.