Changeset 392


Ignore:
Timestamp:
04/26/2010 05:56:08 PM (10 years ago)
Author:
myl
Message:

Some bugs in SA?

Location:
AgentMind/trunk/AgentMind
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • AgentMind/trunk/AgentMind/Amy.txt

    r381 r392  
    22isPresent True 
    33has none 
    4 location StudyRoom 
     4possibleLocation,Afternoon unknown 
     5knowPossibleLocation,Afternoon False 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/conditions/SACondition.java

    r381 r392  
    110110                System.out.println("Result " + result); 
    111111                sset = new SubstitutionSet(); 
    112                 sset.AddSubstitution(new Substitution(this._value,new Symbol(result))); 
     112                sset.AddSubstitution(new Substitution(this._value, new Symbol(result))); 
    113113                subs.add(sset); 
    114114                 
     
    121121                sac._query = this._query; 
    122122                sac._value = (Symbol) this._value.clone(); 
    123                 sac._knownVariables = (Hashtable<String, Symbol>) this._knownVariables.clone(); 
     123                 
     124                sac._knownVariables = new Hashtable<String, Symbol>(); 
     125                Iterator<String> it = this._knownVariables.keySet().iterator(); 
     126                while (it.hasNext()) 
     127                { 
     128                        String key = it.next(); 
     129                        sac._knownVariables.put(key, (Symbol) this._knownVariables.get(key).clone()); 
     130                } 
     131                 
    124132                return sac; 
    125133        } 
     
    146154        public void MakeGround(ArrayList<Substitution> bindings) { 
    147155                this._value.MakeGround(bindings); 
    148                 Iterator<String> it = this._knownVariables.keySet().iterator(); 
     156                Iterator<Symbol> it = this._knownVariables.values().iterator(); 
    149157                while (it.hasNext()) 
    150158                { 
    151                         String key = it.next(); 
    152                         this._knownVariables.get(key).MakeGround(bindings); 
     159                        it.next().MakeGround(bindings); 
    153160                } 
    154161        } 
     
    157164        public void MakeGround(Substitution subst) { 
    158165                this._value.MakeGround(subst); 
    159                 Iterator<String> it = this._knownVariables.keySet().iterator(); 
     166                Iterator<Symbol> it = this._knownVariables.values().iterator(); 
    160167                while (it.hasNext()) 
    161168                { 
    162                         String key = it.next(); 
    163                         this._knownVariables.get(key).MakeGround(subst); 
     169                        it.next().MakeGround(subst); 
    164170                } 
    165171        } 
     
    168174        public void ReplaceUnboundVariables(int variableID) { 
    169175                this._value.ReplaceUnboundVariables(variableID); 
    170                 Iterator<String> it = this._knownVariables.keySet().iterator(); 
     176                Iterator<Symbol> it = this._knownVariables.values().iterator(); 
    171177                while (it.hasNext()) 
    172178                { 
    173                         String key = it.next(); 
    174                         this._knownVariables.get(key).ReplaceUnboundVariables(variableID); 
     179                        it.next().ReplaceUnboundVariables(variableID); 
    175180                } 
    176181        } 
     
    179184        public boolean isGrounded() { 
    180185                if(!this._value.isGrounded()) return false; 
    181                 Iterator<String> it = this._knownVariables.keySet().iterator(); 
     186                Iterator<Symbol> it = this._knownVariables.values().iterator(); 
    182187                while (it.hasNext()) 
    183188                { 
    184                         String key = it.next(); 
    185                         if(!this._knownVariables.get(key).isGrounded()) return false; 
     189                        if(!it.next().isGrounded()) return false; 
    186190                } 
    187191                return true; 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/deliberativeLayer/DeliberativeProcess.java

    r381 r392  
    133133import FAtiMA.deliberativeLayer.goals.GoalLibrary; 
    134134import FAtiMA.deliberativeLayer.goals.InterestGoal; 
     135import FAtiMA.deliberativeLayer.plan.Effect; 
    135136import FAtiMA.deliberativeLayer.plan.IPlanningOperator; 
    136137import FAtiMA.deliberativeLayer.plan.Plan; 
     
    991992                                        AddSubIntention(am, _currentIntention, (ActivePursuitGoal) copingAction);        
    992993                                } 
    993                                  else if(!actionName.startsWith("Inference") && !actionName.endsWith("Appraisal") && !actionName.startsWith("SA")) 
     994                                else if(!actionName.startsWith("Inference") && !actionName.endsWith("Appraisal") && !actionName.startsWith("SA")) 
    994995                                { 
    995996                                        fear = i.GetFear(am.getEmotionalState()); 
     
    10191020                                                 
    10201021                                        _selectedAction = (Step) copingAction; 
     1022                                } 
     1023                                else if(actionName.startsWith("SA")) 
     1024                                { 
     1025                                        Effect eff; 
     1026                                 
     1027                                    for(ListIterator<Effect> li =  copingAction.getEffects().listIterator(); li.hasNext();) 
     1028                                    { 
     1029                                      eff = (Effect) li.next(); 
     1030                                      if(eff.isGrounded()) 
     1031                                          am.getMemory().getSemanticMemory().Tell(eff.GetEffect().getName(), eff.GetEffect().GetValue().toString()); 
     1032                                    } 
    10211033                                } 
    10221034                                else 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/memory/episodicMemory/ActionDetail.java

    r381 r392  
    306306                        updated = true; 
    307307                } 
    308                  
     308         
    309309                switch(em.GetType()) 
    310310                { 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/memory/episodicMemory/Time.java

    r381 r392  
    5050        private long _narrativeTime; 
    5151        private long _realTime; 
     52        private String _strRealTime; 
    5253        private int _eventSequence; 
    5354         
     
    5758                GregorianCalendar gcal = new GregorianCalendar(); 
    5859                this._realTime = gcal.get(Calendar.HOUR_OF_DAY); 
     60                if(this._realTime >= 0 && this._realTime < 12) 
     61                        this._strRealTime = "Morning"; 
     62                else 
     63                        this._strRealTime = "Afternoon"; 
    5964                this._eventSequence = _eventCounter; 
    6065                _eventCounter++; 
     
    6974        { 
    7075                return this._realTime; 
     76        } 
     77         
     78        public String getStrRealTime() 
     79        { 
     80                return this._strRealTime; 
    7181        } 
    7282         
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/util/parsers/StripsOperatorsLoaderHandler.java

    r381 r392  
    258258                _sac = SACondition.ParseSA(attributes); 
    259259                _sac.MakeGround(_self); 
    260         } 
    261         catch(Exception e) 
    262         { 
    263                 e.printStackTrace(); 
    264         } 
    265         } 
    266          
    267         public void SAKnown(Attributes attributes) { 
    268                 String name; 
    269                 Symbol value; 
    270  
    271                 try 
    272         { 
    273                 name = attributes.getValue("name");              
    274                 value = new Symbol(attributes.getValue("value")); 
    275                 System.out.println("known " + name + " " + value); 
    276                 _sac.AddKnownVariables(name, value); 
    277                 _sac.MakeGround(_self); 
    278260                if(_precondition)  
    279261                        _currentOperator.AddPrecondition(_sac); 
     
    286268        { 
    287269                e.printStackTrace(); 
     270        } 
     271        } 
     272         
     273        public void SAKnown(Attributes attributes) { 
     274                String name; 
     275                Symbol value; 
     276 
     277                try 
     278        { 
     279                name = attributes.getValue("name");              
     280                value = new Symbol(attributes.getValue("value")); 
     281                System.out.println("known " + name + " " + value); 
     282                _sac.AddKnownVariables(name, value); 
     283        } 
     284        catch(Exception e) 
     285        { 
     286                e.printStackTrace(); 
    288287        }                
    289288        } 
  • AgentMind/trunk/AgentMind/MemoryProcesses/src/main/java/MemoryProcesses/SAQuery.java

    r381 r392  
    5050        private String _intention; 
    5151        private String _status; 
     52        private String _time; 
    5253        private String _speechActMeaning; 
    5354        private String _multimediaPath; 
     
    7475                this._intention = ""; 
    7576                this._status = ""; 
     77                this._time = ""; 
    7678                this._speechActMeaning = ""; 
    7779                this._multimediaPath = ""; 
     
    155157                                this._numKnownVar++; 
    156158                        } 
     159                        if (queryType.equals("time")) 
     160                        { 
     161                                while(query.hasMoreTokens()) 
     162                                { 
     163                                        this._time = query.nextToken(); 
     164                                } 
     165                                this._numKnownVar++; 
     166                        } 
    157167                        if (queryType.equals("speeachActMeaning")) 
    158168                        { 
     
    198208                System.out.println("ID" + this._id + "subject " + this._subject + " target " + this._target  
    199209                                + " action " + this._action + " location " + this._location  
    200                                 + "intention " + this._intention + "status " + this._status      
     210                                + "intention " + this._intention + "status " + this._status     + "time " + this._time   
    201211                                + "speechActMeaning " + this._speechActMeaning + "multimediaPath "  
    202212                                + this._multimediaPath + "object " + this._object + "desirability " + this._desirability 
     
    215225                this._intention = ""; 
    216226                this._status = ""; 
     227                this._time = ""; 
    217228                this._speechActMeaning = ""; 
    218229                this._multimediaPath = ""; 
     
    259270    public String getStatus(){ 
    260271        return this._status; 
     272    } 
     273     
     274    public String getTime(){ 
     275        return this._time; 
    261276    } 
    262277     
     
    340355    } 
    341356     
     357    public void setTime(String time){ 
     358        this._time = time; 
     359    } 
     360     
    342361    public void setSpeechActMeaning(String speechActMeaning){ 
    343362        this._speechActMeaning = speechActMeaning; 
     
    367386    public void setResults(String result) 
    368387        { 
     388        Integer val = new Integer(1);  
     389         
    369390        if (result != null) 
    370391        { 
    371392                        if (this._results == null || !this._results.containsKey(result)) 
    372393                        { 
    373                                 this._results.put(result, new Integer(1)); 
     394                                this._results.put(result, val); 
    374395                        } 
    375396                        else 
    376397                        { 
    377                                 Integer val = (Integer) _results.get(result); 
     398                                val = (Integer) _results.get(result); 
    378399                                this._results.put(result, ++val); 
    379                                 if (this._maxFrequency < val) 
    380                                         this._maxFrequency = val; 
    381400                        } 
     401                        if (this._maxFrequency < val) 
     402                                this._maxFrequency = val; 
    382403        } 
    383404        } 
     
    385406    public void setResultIDs(int result) 
    386407        { 
     408        Integer val = new Integer(1); 
     409         
    387410        if (result != -1) 
    388411        { 
     
    393416                        else 
    394417                        { 
    395                                 Integer val = (Integer) _results.get(Integer.toString(result)); 
     418                                val = (Integer) _results.get(Integer.toString(result)); 
    396419                                this._results.put(Integer.toString(result), ++val); 
    397                                 if (this._maxFrequency < val) 
    398                                         this._maxFrequency = val; 
     420                                 
    399421                        } 
     422                        if (this._maxFrequency < val) 
     423                                this._maxFrequency = val; 
    400424        } 
    401425        } 
  • AgentMind/trunk/AgentMind/MemoryProcesses/src/main/rules/SpreadActivate.drl

    r328 r392  
    77 
    88import FAtiMA.memory.episodicMemory.ActionDetail; 
     9import FAtiMA.memory.episodicMemory.Time; 
    910 
    1011 
     
    112113                System.out.println("Status " + $st1); 
    113114                System.out.println("status-status " + $ad.getID()); 
     115end 
     116 
     117rule "time-time phase1" 
     118        no-loop true 
     119        salience 50 
     120        when 
     121                $q: SAQuery($t1: time) 
     122                $ad: ActionDetail(time.strRealTime == $t1)       
     123        then 
     124                insert (new CandidateEvent($ad, "time", 1.0f)); 
     125                retract ($ad); 
     126                System.out.println("Time " + $t1); 
     127                System.out.println("time-time " + $ad.getID()); 
    114128end 
    115129 
     
    244258end 
    245259 
     260rule "time-time" 
     261        no-loop true 
     262        when 
     263                $q: SAQuery($t1: time) 
     264                $cad: CandidateEvent(extension not contains "time") 
     265                $ad: ActionDetail(time.strRealTime == $t1) from $cad.actionDetail        
     266        then 
     267                modify ($cad) { 
     268                        increasePhase(),  
     269                        setExtension("time") 
     270                } 
     271                System.out.println("Time " + $t1); 
     272                System.out.println("time-time " + $ad.getID()); 
     273end 
     274 
    246275rule "speechAct-speechAct" 
    247276        no-loop true 
     
    426455end 
    427456 
     457rule "time" 
     458        no-loop true 
     459        when 
     460                $q: SAQuery(question == "time") 
     461                $cad: CandidateEvent( phase == $q.numKnownVar ) 
     462                $ad: ActionDetail() from $cad.actionDetail               
     463                Time($t: strRealTime) from $ad   
     464        then                     
     465                modify ($q) { 
     466                        setResults($t) 
     467                } 
     468                System.out.println("Time " + $t); 
     469                System.out.println("Retracted " +$ad.getID()); 
     470                retract ($cad);                  
     471end 
     472 
    428473rule "speechActMeaning" 
    429474        no-loop true 
  • AgentMind/trunk/AgentMind/WorldTest/src/UserInterface.java

    r381 r392  
    201201        _infoOptions.addItem("target SELF"); 
    202202        _infoOptions.addItem("target Amy"); 
     203        _infoOptions.addItem("time 17"); 
    203204        _infoOptions.addItem("location LivingRoom"); 
    204205        _infoOptions.addItem("action Greet"); 
  • AgentMind/trunk/AgentMind/data/characters/minds/LIRECScenarios.xml

    r381 r392  
    141141                         
    142142                        <Properties> 
    143                                 <Property name="time" value="Morning"/> 
     143                                <Property name="time" value="Afternoon"/> 
    144144                                <Property name="isPerson" value="True"/> 
    145145                                <Property name="location" value="LivingRoom"/>   
Note: See TracChangeset for help on using the changeset viewer.