Changeset 435


Ignore:
Timestamp:
09/13/2010 05:24:56 PM (8 years ago)
Author:
myl
Message:

An episode does not start with location change anymore. It is now started by calling StartEpisode? method in EpisodicMemory?.java or when the agent starts/reloads.

Location:
AgentMind/trunk/AgentMind
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/Agent.java

    r432 r435  
    121121                _emotionalState = new EmotionalState(); 
    122122                _memory = new Memory(); 
     123                // creating a new episode when the agent starts 13/09/10 
     124                _memory.getEpisodicMemory().StartEpisode(_memory); 
    123125                _motivationalState = new MotivationalState(); 
    124126                 
     
    221223                        } 
    222224                          
    223                         LoadAgentState(directory + fileName);                     
     225                        LoadAgentState(directory + fileName);            
     226                        // creating a new episode when the agent loads 13/09/10 
     227                        _memory.getEpisodicMemory().StartEpisode(_memory); 
    224228                         
    225229                } 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/Display/MemoryDetailPanel.java

    r328 r435  
    6969        JTextField _multimediaPath; 
    7070        JTextField _object; 
     71        JTextField _location; 
    7172         
    7273        public MemoryDetailPanel(ActionDetail detail) { 
     
    169170        this.add(_feeling); 
    170171                 
    171         /*_evaluation = new JTextField(detail.getEvaluation().toString()); 
     172        _evaluation = new JTextField(detail.getLocation().toString()); 
    172173        _evaluation.setMinimumSize(new Dimension(100,30)); 
    173174        _evaluation.setMaximumSize(new Dimension(100,30)); 
    174175        _evaluation.setBorder(BorderFactory.createLineBorder(new Color(0,0,0))); 
    175         this.add(_evaluation);*/ 
     176        this.add(_evaluation); 
    176177        } 
    177178 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/Display/MemoryEpisodeDisplay.java

    r328 r435  
    142142        lbl.setMinimumSize(d1); 
    143143        aux.add(lbl); 
    144         _location = new JTextArea(episode.getLocation()); 
     144        _location = new JTextArea(episode.getLocation().toString()); 
    145145        _location.setLineWrap(true); 
    146146        _location.setMaximumSize(d3); 
     
    268268        aux.add(lbl); 
    269269         
    270         /*lbl = new JLabel("Evaluation"); 
     270        lbl = new JLabel("Location"); 
    271271        lbl.setBorder(BorderFactory.createLineBorder(new Color(0,0,0))); 
    272272        lbl.setMinimumSize(new Dimension(100,30)); 
    273273        lbl.setMaximumSize(new Dimension(100,30)); 
    274         aux.add(lbl);*/ 
     274        aux.add(lbl); 
    275275         
    276276        _details.add(aux); 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/memory/episodicMemory/AutobiographicalMemory.java

    r278 r435  
    7171        { 
    7272                MemoryEpisode event; 
    73                 boolean found = false; 
     73                //boolean found = false; 
    7474                 
    7575                synchronized (this) { 
     
    9696                        event.AddActionDetail(action);*/                         
    9797                         
    98                         // add events from STM to the relevant episode 
    99                         for (int i = this._memoryEvents.size()-1; i >= 0 && !found; i--) 
     98                        // add events from STM to the relevant episode - commented on 13/09/10 
     99//                      for (int i = this._memoryEvents.size()-1; i >= 0 && !found; i--) 
     100//                      { 
     101//                              event = this._memoryEvents.get(i); 
     102//                              if (event.getLocation().equals(action.getLocation())) 
     103//                              { 
     104//                                      //if (event.getTime() == null) 
     105//                                      //      event.setTime(action.getTime()); 
     106//                                      event.AddActionDetail(action); 
     107//                                      found = true; 
     108//                              } 
     109//                      } 
     110                         
     111                        // Meiyii 13/09/10 
     112                        int i = this._memoryEvents.size()-1; 
     113                        if (i >= 0) 
    100114                        { 
    101115                                event = this._memoryEvents.get(i); 
    102                                 if (event.getLocation().equals(action.getLocation())) 
    103                                 { 
    104                                         //if (event.getTime() == null) 
    105                                         //      event.setTime(action.getTime()); 
    106                                         event.AddActionDetail(action); 
    107                                         found = true; 
    108                                 } 
    109                         } 
     116                                event.AddActionDetail(action);           
     117                                if (!event.getLocation().equals(action.getLocation())) 
     118                                { 
     119                                        event.AddLocation(action.getLocation()); 
     120                                } 
     121                        } 
     122                         
    110123                } 
    111124        } 
    112125         
    113126        /** 
    114          * Creates a new episode when location changes 
    115          * @param newLocation - the new location of the agent 
     127         * Creates a new episode  
     128         * @param location - the location of the agent 
    116129         */ 
    117         public void NewEpisode(String newLocation) 
     130        public void NewEpisode(String location) 
    118131        {        
    119132                MemoryEpisode event; 
    120                 String oldLocation; 
    121133                 
    122134                synchronized (this) { 
    123135                        if(this._memoryEvents.size() == 0) 
    124136                        { 
    125                                 event = new MemoryEpisode(newLocation, new Time()); 
    126                                 this._memoryEvents.add(event); 
     137                                event = new MemoryEpisode(location, new Time()); 
    127138                        } 
    128139                        else  
    129140                        { 
    130                                 event = (MemoryEpisode) this._memoryEvents.get(this._memoryEvents.size()-1); 
    131                                 oldLocation = event.getLocation(); 
    132                                 if(oldLocation == null) { 
    133                                         event.setLocation(newLocation); 
    134                                 } 
    135                                 else if(!event.getLocation().equals(newLocation)) 
    136                                 { 
    137                                         event = new MemoryEpisode(newLocation, new Time()); 
    138                                         this._memoryEvents.add(event); 
    139                                 } 
    140                         } 
     141                                event = (MemoryEpisode) this._memoryEvents.get(this._memoryEvents.size()-1);             
     142                        } 
     143                        this._memoryEvents.add(event); 
    141144                }                
    142145        } 
     146         
     147//      /** commented on 13/09/10 
     148//       * Creates a new episode when location changes 
     149//       * @param newLocation - the new location of the agent 
     150//       */ 
     151//      public void NewEpisode(String newLocation) 
     152//      {        
     153//              MemoryEpisode event; 
     154//              String oldLocation; 
     155//               
     156//              synchronized (this) { 
     157//                      if(this._memoryEvents.size() == 0) 
     158//                      { 
     159//                              event = new MemoryEpisode(newLocation, new Time()); 
     160//                              this._memoryEvents.add(event); 
     161//                      } 
     162//                      else  
     163//                      { 
     164//                              event = (MemoryEpisode) this._memoryEvents.get(this._memoryEvents.size()-1); 
     165//                              oldLocation = event.getLocation(); 
     166//                              if(oldLocation == null) { 
     167//                                      event.setLocation(newLocation); 
     168//                              } 
     169//                              else if(!event.getLocation().equals(newLocation)) 
     170//                              { 
     171//                                      event = new MemoryEpisode(newLocation, new Time()); 
     172//                                      this._memoryEvents.add(event); 
     173//                              } 
     174//                      } 
     175//              }                
     176//      } 
    143177         
    144178        public Object GetSyncRoot() 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/memory/episodicMemory/EpisodicMemory.java

    r375 r435  
    6161                return keys; 
    6262        } 
    63         private String _previousLocation; 
     63        private String _previousLocation;  
    6464        private ShortTermEpisodicMemory _stm; 
    6565        private AutobiographicalMemory _am; 
     
    222222        } 
    223223         
    224         public void StoreAction(Memory m, Event e) 
     224        /*  
     225         * Start a new episode depending on the requirements of the different scenarios 
     226         */ 
     227        public void StartEpisode(Memory m) 
    225228        { 
    226229                Name locationKey = Name.ParseName(Constants.SELF + "(location)"); 
     
    232235                } 
    233236                 
     237                // 13/09/2010 - Create a new episode  
     238                _am.NewEpisode(location); 
     239        } 
     240         
     241        public void StoreAction(Memory m, Event e) 
     242        { 
     243                Name locationKey = Name.ParseName(Constants.SELF + "(location)"); 
     244                String location = (String) m.getSemanticMemory().AskProperty(locationKey); 
     245                 
     246                if(location == null) 
     247                { 
     248                        location = Constants.EMPTY_LOCATION; 
     249                } 
     250                 
    234251                // 31/03/2009 - Create a new episode if the location changes to allow goals reset 
    235252                // If this if block is commented, goals decay over time and reset automatically 
    236                 if (!location.equals(_previousLocation)) 
    237                 { 
    238                         _am.NewEpisode(location); 
    239                         //_stm.ResetEventID(); 06/01/10 not resetting the eventID to support CC matching that returns the ID as results 
    240                 } 
     253                // commented 13/09/10 
     254//              if (!location.equals(_previousLocation)) 
     255//              { 
     256//                      _am.NewEpisode(location); 
     257//                      //_stm.ResetEventID(); 06/01/10 not resetting the eventID to support CC matching that returns the ID as results 
     258//              } 
    241259 
    242260                synchronized (this) { 
     
    264282                        _stm.AddActionDetail(m, e, location); 
    265283                        _newRecords.add(_stm.GetNewestRecord()); 
    266                         _previousLocation = location; 
     284                        //_previousLocation = location; Meiyii 13/09/10 
    267285                         
    268286                        this._newData = true; 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/memory/episodicMemory/MemoryEpisode.java

    r278 r435  
    5959        private Time _time; 
    6060        private ArrayList<String> _people; 
    61         private String _location; 
     61        private ArrayList<String> _location; // changed from String to arraylist - Meiyii 13/09/10 
    6262        private ArrayList<String> _objects; 
    6363        //private HashMap _detailsByKey; 
     
    6969        public MemoryEpisode(String location, Time time) 
    7070        { 
    71                 this._location = location; 
     71                this._location = new ArrayList<String>(); 
     72                this._location.add(location); 
    7273                this._time = time; 
    7374                this._people = new ArrayList<String>(); 
     
    112113        } 
    113114         
    114         public String getLocation() 
     115        public ArrayList<String> getLocation() 
    115116        { 
    116117                return this._location; 
    117         } 
    118          
    119         public void setLocation(String location) 
    120         { 
    121                 this._location = location; 
    122118        } 
    123119         
     
    444440                        return (float) Math.sqrt(quadraticError / (numberOfEmotionalEvents - 1)); 
    445441                }        
     442        } 
     443         
     444        // Meiyii 13/09/10 
     445        public void AddLocation(String location) 
     446        { 
     447                if(location != null) 
     448                { 
     449                        if(!this._location.contains(location)) 
     450                        { 
     451                                this._location.add(location); 
     452                        } 
     453                } 
    446454        } 
    447455         
  • AgentMind/trunk/AgentMind/data/characters/minds/language/agent/en/language-set-1/templates.tdl

    r381 r435  
    33# global variables 
    44 
    5 Type(value:replyLocation) it(value:$O) it2(value:$T) 
    6 -> Utterance(value: ($O," is at ",$T,".")) 
     5#pre1: $T=Type() not(bully()) 
     6#-> $T bully(value:Luke) 
    77 
     8#pre2: $T=Type() not(victim()) 
     9#-> $T victim(value:John) 
     10 
     11Type(value:greeting) 
     12-> Utterance(value: "Hi, how are you?") 
     13 
     14Type(value:welcome) 
     15-> Utterance(value: "Nice to see you.") 
     16 
     17Type(value:welcome) 
     18-> Utterance(value: "Good to have you here.") 
     19 
     20Type(value:apple) 
     21-> Utterance(value: "Would you like an apple?") 
     22 
     23Type(value:orange) 
     24-> Utterance(value: "Do you want to have an orange?") 
     25 
     26Type(value:banana) 
     27-> Utterance(value: "Fancy a banana?") 
     28 
     29Type(value:cake) 
     30-> Utterance(value: "Do you want to have a piece of cake?") 
     31 
     32Type(value:askPreference) 
     33-> Utterance(value: "Which other fruit do you prefer?") 
     34 
     35Type(value:acknowledge) 
     36-> Utterance(value: "OK. I will remember that for next time.") 
     37 
     38Type(value:swearSecrecy) it(value:$O) 
     39-> Utterance(value: ("OK. I will keep that secret from ",$O,".")) 
     40 
     41Type(value:swearSecrecy) it(value:$O) 
     42-> Utterance(value: ("I won't tell ",$O," about that. Thanks for sharing it with me!")) 
     43 
     44Type(value:party) it(value:$O) 
     45-> Utterance(value: ($O," was drunk at the party last night.")) 
     46 
     47Type(value:newJob) it(value:$O) 
     48-> Utterance(value: ("Oh... yes, ",$O," is going to get a new job.")) 
     49 
     50Type(value:hideInfo) 
     51-> Utterance(value: "I am afraid I don't know anything about that.") 
     52 
     53Type(value:dontTell) 
     54-> Utterance(value: "I suggest you ask him later.") 
     55 
     56Type(value:goodbye) it(value:$O) 
     57-> Utterance(value: ("Talk to you again soon. Enjoy your ",$O,".")) 
     58 
     59Type(value:goodbye) it(value:$O) 
     60-> Utterance(value: ("Hope you enjoy the ",$O,". Bye for now!")) 
Note: See TracChangeset for help on using the changeset viewer.