Changeset 326


Ignore:
Timestamp:
03/26/2010 10:29:36 AM (10 years ago)
Author:
joao.dias
Message:

revamped the socialcondition class.

Partially solved the lookat issue. Solved a problem with the display of the KnowledgeBase?.

Location:
AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/Display/KnowledgeBasePanel.java

    r278 r326  
    7878    public boolean Update(AgentModel am) { 
    7979         
    80         ListIterator<KnowledgeSlot> li = am.getMemory().getSemanticMemory().GetFactList(); 
     80        ListIterator<KnowledgeSlot> li = am.getMemory().getSemanticMemory().GetKnowledgeBaseFacts(); 
    8181         
    8282        KnowledgeSlot slot; 
     
    9797            else { 
    9898                kDisplay = (KnowledgeFactDisplay) _knowledgeFactList.get(index); 
     99                kDisplay.SetName(slot.getName()); 
    99100                kDisplay.SetValue(slot.getValue().toString()); 
    100101            } 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/Display/KnowledgeFactDisplay.java

    r278 r326  
    5151    } 
    5252     
     53    public void SetName(String name) 
     54    { 
     55        _panel.setBorder(BorderFactory.createTitledBorder(name)); 
     56    } 
     57     
    5358    public void SetValue(String value) { 
    5459        _label.setText(value); 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/Display/ShortTermMemoryPanel.java

    r278 r326  
    146146        int index;          
    147147         
    148         if (sm.Count() >= _knowledgeSize) 
     148        /*if (sm.Count() >= _knowledgeSize) 
    149149        { 
    150150                 _knowledgeFactsPanel.removeAll(); 
     
    161161                _knowledgeFactsPanel.add(kDisplay.GetPanel()); 
    162162            } 
    163         } 
     163        }*/ 
    164164         
    165165        li = sm.GetFactList(); 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/Display/SocialRelationsPanel.java

    r278 r326  
    2323        JPanel _relationsPanel; 
    2424 
    25         protected Hashtable<String, RelationDisplay> _realationsDisplay; 
     25        protected Hashtable<String, RelationDisplay> _relationsDisplay; 
    2626 
    2727        public SocialRelationsPanel() { 
     
    2929                this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); 
    3030 
    31                 _realationsDisplay = new Hashtable<String, RelationDisplay>(); 
     31                _relationsDisplay = new Hashtable<String, RelationDisplay>(); 
    3232 
    3333                _relationsPanel = new JPanel(); 
     
    4444        public boolean Update(AgentModel am) 
    4545        { 
    46                 return false; 
    47         } 
    48  
    49         public boolean Update(Agent ag) { 
     46                 
    5047                ArrayList<Relation> relations = new ArrayList<Relation>(); 
    51                 relations.addAll(LikeRelation.getAllRelations(ag.getMemory(),Constants.SELF)); 
    52                 relations.addAll(RespectRelation.getAllRelations(ag.getMemory(), Constants.SELF));  
     48                relations.addAll(LikeRelation.getAllRelations(am.getMemory(),Constants.SELF)); 
     49                relations.addAll(RespectRelation.getAllRelations(am.getMemory(), Constants.SELF));  
    5350                 
    5451                boolean updated = false; 
     
    5754                // relations to disappear) 
    5855                // so we have to clear all relations and start displaying them all again 
    59                 if (_realationsDisplay.size() != relations.size()) { 
     56                if (_relationsDisplay.size() != relations.size()) { 
    6057                        _relationsPanel.removeAll(); // removes all displayed emotions 
    6158                                                                                        // from the panel 
    62                         _realationsDisplay.clear(); 
     59                        _relationsDisplay.clear(); 
    6360                        Iterator<Relation> it = relations.iterator(); 
    6461                        while (it.hasNext()) { 
    6562                                Relation r = (Relation) it.next(); 
    66                                 RelationDisplay display = new RelationDisplay(ag.getMemory(), r); 
     63                                RelationDisplay display = new RelationDisplay(am.getMemory(), r); 
    6764                                _relationsPanel.add(display.getPanel()); 
    68                                 _realationsDisplay.put(r.getHashKey(), display); 
     65                                _relationsDisplay.put(r.getHashKey(), display); 
    6966                        } 
    7067                        updated = true; 
     
    7471                while (it.hasNext()) { 
    7572                        Relation r = (Relation) it.next(); 
    76                         RelationDisplay display = (RelationDisplay) _realationsDisplay 
     73                        RelationDisplay display = (RelationDisplay) _relationsDisplay 
    7774                                        .get(r.getHashKey()); 
    78                         display.setValue(r.getValue(ag.getMemory())); 
     75                        display.setValue(r.getValue(am.getMemory())); 
    7976                } 
    8077 
    8178                return updated; 
    8279        } 
     80 
     81        public boolean Update(Agent ag)  
     82        { 
     83                return Update((AgentModel) ag); 
     84        } 
    8385} 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/conditions/AppraisalCondition.java

    r308 r326  
    88 
    99import FAtiMA.AgentModel; 
     10import FAtiMA.emotionalState.EmotionalPameters; 
    1011import FAtiMA.memory.episodicMemory.ActionDetail; 
    1112import FAtiMA.util.Constants; 
     
    2627        private Symbol _value; 
    2728        private short _test; 
     29        private int _threshold; 
     30         
    2831         
    2932        private AppraisalCondition() 
     
    3134        } 
    3235         
    33         public AppraisalCondition(Symbol agent, String appraisalVariable, Symbol value, short test, Symbol subject, Symbol action, Symbol target, ArrayList<Symbol> parameters) 
     36        public AppraisalCondition(Symbol agent, String appraisalVariable, Symbol value, int threshold, short test, Symbol subject, Symbol action, Symbol target, ArrayList<Symbol> parameters) 
    3437        { 
    3538                //this._type = type; 
     
    4043                this._appraisalVariable = appraisalVariable; 
    4144                this._value = value; 
     45                this._threshold = threshold; 
    4246                this._test = test; 
    4347                 
     
    7579                newCondition._appraisalVariable = this._appraisalVariable; 
    7680                newCondition._value = (Symbol) this._value.clone(); 
     81                newCondition._threshold = this._threshold; 
    7782                newCondition._test = this._test; 
    7883                 
     
    175180         
    176181        public boolean CheckCondition(AgentModel am) { 
    177                 //TODO finish this method 
    178182                return this._action.isGrounded();                 
    179183        } 
     
    182186                 
    183187                Symbol target; 
     188                float finalvalue; 
    184189                ArrayList<SubstitutionSet> subs = new ArrayList<SubstitutionSet>(); 
    185190                SubstitutionSet sset; 
     191                float mood; 
    186192         
    187193                AgentModel modelToTest = am; 
     
    196202                } 
    197203                 
     204                mood = modelToTest.getEmotionalState().GetMood(); 
     205                 
     206                if(_test == 0) 
     207                { 
     208                        finalvalue = Float.parseFloat(this._value.toString()) + _threshold; 
     209                        finalvalue = finalvalue - (mood * EmotionalPameters.MoodInfluenceOnEmotion); 
     210                         
     211                } 
     212                else 
     213                { 
     214                        finalvalue = Float.parseFloat(this._value.toString()) - _threshold; 
     215                        finalvalue = finalvalue - (mood * EmotionalPameters.MoodInfluenceOnEmotion); 
     216                } 
     217                 
    198218                ArrayList<String> knownInfo = new ArrayList<String>(); 
    199                 knownInfo.add("desirability " + this._value.toString()); 
     219                knownInfo.add("desirability " + finalvalue); 
    200220                //float desirability = Float.parseFloat(this._value.toString()); 
    201221                /*if(desirability >= 0) 
     
    235255                        return subs; 
    236256                } 
    237                  
    238                 //Hashtable<String, Integer> saResult = am.getSpreadActivate().getSAResult(); 
    239                 /*Iterator it = saResult.keySet().iterator(); 
    240                 while (it.hasNext()) 
    241                 { 
    242                         //talk to Mei Yii, preciso de mais informação aqui, isto deve retornar o action detail completo se possivel 
    243                         String result = (String) it.next(); 
    244                         System.out.println(question + " " + result + " frequency " + saResult.get(result)); 
    245                 }*/ 
    246257         
    247258                return null; 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/conditions/Context.java

    r278 r326  
    5656                if( !_timeCondition.CheckCondition(am) || !_placeCondition.CheckCondition(am) ) 
    5757                        return false; 
    58                 for( int i = 0, limit = _socialConditions.size(); i != limit; ++i ){ 
     58                /*for( int i = 0, limit = _socialConditions.size(); i != limit; ++i ){ 
    5959                        if( !((PropertyCondition)_socialConditions.get(i)).CheckCondition(am) ) 
    6060                                return false; 
    61                 } 
     61                }*/ 
    6262                return true; 
    6363        } 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/conditions/SocialCondition.java

    r278 r326  
    11package FAtiMA.conditions; 
     2 
     3import java.util.ArrayList; 
    24 
    35import org.xml.sax.Attributes; 
     
    68import FAtiMA.AgentModel; 
    79import FAtiMA.exceptions.ContextParsingException; 
     10import FAtiMA.memory.semanticMemory.KnowledgeBase; 
     11import FAtiMA.socialRelations.LikeRelation; 
    812import FAtiMA.util.AgentLogger; 
     13import FAtiMA.util.Constants; 
    914import FAtiMA.wellFormedNames.Name; 
     15import FAtiMA.wellFormedNames.Substitution; 
     16import FAtiMA.wellFormedNames.Symbol; 
    1017 
    1118/** 
     
    2128 * @see Ritual 
    2229 */ 
    23 public class SocialCondition extends PropertyCondition { 
     30public class SocialCondition extends Condition { 
    2431        /** 
    2532         *  
    2633         */ 
    2734        private static final long serialVersionUID = 1L; 
    28          
    29         private static String RELATION_NAME_STR = "name"; 
    30         private static String TARGET_STR = "target"; 
    31         private static String OPERATOR_STR = "operator"; 
    32         private static String VALUE_STR = "value"; 
    3335         
    3436        private static Operator LESS_THAN = new LessThan(); 
     
    3941        private static Operator NOT_EQUAL = new NotEqual(); 
    4042         
     43        private Symbol _subject; 
    4144        private Operator _operator; 
    42          
    43         public static SocialCondition Parse( Attributes attributes ) throws ContextParsingException{ 
    44                 SocialCondition socialRel = new SocialCondition(); 
    45                 if( attributes.getLength() != 4 ) 
    46                         throw createException("There should be exactly 4 attributes in the xml ("+RELATION_NAME_STR+";"+TARGET_STR+";"+OPERATOR_STR+";"+VALUE_STR+")"); 
    47                  
    48                 String nameStr = attributes.getValue(RELATION_NAME_STR); 
    49                 if( nameStr == null ) 
    50                         throw createException("Missing attribute '"+RELATION_NAME_STR+"'"); 
    51                  
    52                 String targetStr = attributes.getValue(TARGET_STR); 
    53                 if( nameStr == null ) 
    54                         throw createException("Missing attribute '"+TARGET_STR+"'"); 
    55                  
    56                 socialRel._operator = parseOperator( attributes.getValue(OPERATOR_STR) ); 
    57                  
    58                 String valueStr = attributes.getValue(VALUE_STR); 
    59                  
    60                  
    61                 try{ 
    62                         int relationValue = 0; 
    63                         relationValue = Integer.parseInt( valueStr ); 
    64                          
    65                         if( relationValue < -10 || relationValue > 10 ) 
    66                                 throw createException("The '"+VALUE_STR+"' attribute should be an integer between -10 and 10"); 
    67                 } 
    68                 catch(NumberFormatException e){ 
    69                          
    70                          
    71                         // Its not a number, lets see if it's a bool 
    72                         if( !valueStr.equalsIgnoreCase("true") && !valueStr.equalsIgnoreCase("false") ){ 
    73                                 // isn't a boolean, then we assume it is as character! 
    74                                 valueStr += "("+nameStr+")"; 
    75                         } 
    76                         else{ 
    77                                 // if it is a bool, check if the operator is equal or not equal 
    78                                 if( !(socialRel._operator instanceof SocialCondition.Equal) && !(socialRel._operator instanceof SocialCondition.NotEqual)){ 
    79                                         AgentLogger.GetInstance().logAndPrint("Received a bool in a SocialCondition but the operator is not '=' nor '!='"); 
    80                                 } 
    81                         } 
    82                 } 
    83  
    84                 /// TODO Check if target is a character 
    85                 //if( target is not character ) 
    86                 //      throw createException("The '"+_targetStr+"' attribute should be a character"); 
    87                  
    88                 socialRel._name = Name.ParseName(targetStr+"("+nameStr+")"); 
    89                 socialRel._value = Name.ParseName( valueStr ); 
    90                  
    91                 return socialRel; 
    92         } 
    93  
    94         protected SocialCondition(){ 
    95                 super(null,null); 
    96         } 
    97          
    98         public Object clone() { 
    99                 SocialCondition aux = new SocialCondition(); 
    100                 aux._name = (Name)_name.clone(); 
    101                 aux._value = (Name)_value.clone(); 
    102                 aux._operator = _operator; 
    103                 return aux; 
    104         } 
    105          
    106         public boolean CheckCondition(AgentModel am){ 
    107                 boolean result = false; 
    108                  
    109                 if( !super.CheckCondition(am) ) 
    110                         return result; 
    111                  
    112                 Object actualRelationValueStr = _name.evaluate(am.getMemory());  
    113                 if( actualRelationValueStr == null ) 
    114                         return result; 
    115                  
    116                 Object relationValueStr = _value.evaluate(am.getMemory()); 
    117                 if( relationValueStr == null ) // i.e. is a constant 
    118                         relationValueStr = _value; 
    119                  
    120                  
    121                 int actualRelationValue = -1; 
    122                  
    123                 if( actualRelationValueStr.toString().equalsIgnoreCase("true") ) 
    124                         actualRelationValue = 1; 
    125                 else if( actualRelationValueStr.toString().equalsIgnoreCase("false") ) 
    126                         actualRelationValue = 0; 
     45        private Symbol _target; 
     46        private float _value; 
     47         
     48        /** 
     49         * Checks if the Predicate is verified in the agent's KnowledgeBase 
     50         * @return true if the Predicate is verified, false otherwise 
     51         * @see KnowledgeBase 
     52         */ 
     53         
     54        private SocialCondition() 
     55        { 
     56                 
     57        } 
     58 
     59        protected SocialCondition(Symbol subject, Symbol target, float value, Operator op){ 
     60                this._name = subject; 
     61                this._target = target; 
     62                this._value = value; 
     63                this._operator = op; 
     64        } 
     65         
     66        public Object clone() 
     67        { 
     68                SocialCondition cond = new SocialCondition(); 
     69                cond._name = (Symbol) this._name.clone(); 
     70                cond._value = this._value; 
     71                cond._target = (Symbol) this._target.clone(); 
     72                cond._operator = this._operator; 
     73                return cond; 
     74        } 
     75         
     76         
     77        public boolean CheckCondition(AgentModel am) { 
     78                AgentModel modelToTest; 
     79                float existingValue; 
     80                if(!_subject.isGrounded() && !_target.isGrounded()) return false; 
     81 
     82                if(_subject.equals(Constants.SELF)) 
     83                { 
     84                        modelToTest = am; 
     85                } 
    12786                else 
    128                         actualRelationValue = Integer.parseInt(actualRelationValueStr.toString()); 
    129                  
    130                 int relationValue = -1; 
    131                 if( relationValueStr.toString().equalsIgnoreCase("true") ) 
    132                         relationValue = 1; 
    133                 else if( relationValueStr.toString().equalsIgnoreCase("false") ) 
    134                         relationValue = 0; 
    135                 else 
    136                         relationValue = Integer.parseInt(relationValueStr.toString()); 
    137                  
    138                 result = _operator.process( actualRelationValue, relationValue ); 
    139                  
    140                 return result; 
    141         } 
     87                { 
     88                        modelToTest = am.getToM().get(_subject); 
     89                } 
     90                 
     91                existingValue = LikeRelation.getRelation(_subject.toString(), _target.toString()).getValue(modelToTest.getMemory()); 
     92                 
     93                return _operator.process(existingValue, _value); 
     94        } 
     95         
    14296         
    14397        public String toString() 
    14498        { 
    145                 return _name + " " + _operator + " " + _value; 
     99                return _subject + " like" + _operator + " " + _target + " " + _value; 
    146100        } 
    147101         
     
    172126         
    173127        private interface Operator{ 
    174                 public abstract boolean process( int val1, int val2 ); 
     128                public abstract boolean process( float val1, float val2 ); 
    175129        } 
    176130         
    177131        private static class LessThan implements Operator{ 
    178                 public boolean process( int val1, int val2 ){ 
     132                public boolean process( float val1, float val2 ){ 
    179133                        return val1 < val2; 
    180134                } 
     
    187141         
    188142        private static class LessThanOrEqual implements Operator{ 
    189                 public boolean process( int val1, int val2 ){ 
     143                public boolean process( float val1, float val2 ){ 
    190144                        return val1 <= val2; 
    191145                } 
     
    198152         
    199153        private static class Equal implements Operator{ 
    200                 public boolean process( int val1, int val2 ){ 
     154                public boolean process( float val1, float val2 ){ 
    201155                        return val1 == val2; 
    202156                } 
     
    209163         
    210164        private static class MoreThanOrEqual implements Operator{ 
    211                 public boolean process( int val1, int val2 ){ 
     165                public boolean process( float val1, float val2 ){ 
    212166                        return val1 >= val2; 
    213167                } 
     
    220174         
    221175        private static class MoreThan implements Operator{ 
    222                 public boolean process( int val1, int val2 ){ 
     176                public boolean process( float val1, float val2 ){ 
    223177                        return val1 > val2; 
    224178                } 
     
    231185         
    232186        private static class NotEqual implements Operator{ 
    233                 public boolean process( int val1, int val2 ){ 
     187                public boolean process( float val1, float val2 ){ 
    234188                        return val1 != val2; 
    235189                } 
     
    240194                } 
    241195        } 
     196 
     197        @Override 
     198        public Name GetValue() { 
     199                // TODO Auto-generated method stub 
     200                return null; 
     201        } 
     202 
     203        @Override 
     204        protected ArrayList<Substitution> GetValueBindings(AgentModel am) { 
     205                // TODO Auto-generated method stub 
     206                return null; 
     207        } 
     208 
     209        @Override 
     210        public Object GenerateName(int id) { 
     211                SocialCondition cond = (SocialCondition) this.clone(); 
     212                cond.ReplaceUnboundVariables(id); 
     213                return cond; 
     214        } 
     215 
     216        @Override 
     217        public Object Ground(ArrayList<Substitution> bindingConstraints) { 
     218                SocialCondition cond = (SocialCondition) this.clone(); 
     219                cond.MakeGround(bindingConstraints); 
     220                return cond; 
     221        } 
     222 
     223        @Override 
     224        public Object Ground(Substitution subst) { 
     225                SocialCondition cond = (SocialCondition) this.clone(); 
     226                cond.MakeGround(subst); 
     227                return cond; 
     228        } 
     229 
     230        @Override 
     231        public void MakeGround(ArrayList<Substitution> bindings) { 
     232                this._subject.MakeGround(bindings); 
     233                this._target.MakeGround(bindings);       
     234        } 
     235 
     236        @Override 
     237        public void MakeGround(Substitution subst) { 
     238                this._subject.MakeGround(subst); 
     239                this._target.MakeGround(subst);  
     240        } 
     241 
     242        @Override 
     243        public void ReplaceUnboundVariables(int variableID) { 
     244                this._subject.ReplaceUnboundVariables(variableID); 
     245                this._target.ReplaceUnboundVariables(variableID); 
     246        } 
     247 
     248        @Override 
     249        public boolean isGrounded() { 
     250                return this._subject.isGrounded() && this._target.isGrounded(); 
     251        } 
    242252} 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/deliberativeLayer/DeliberativeProcess.java

    r308 r326  
    991991                                        AddSubIntention(am, _currentIntention, (ActivePursuitGoal) copingAction);        
    992992                                } 
    993                                 else if(!actionName.startsWith("Inference") && !actionName.endsWith("Appraisal")) 
     993                                 else if(!actionName.startsWith("Inference") && !actionName.endsWith("Appraisal")) 
    994994                                { 
    995995                                        fear = i.GetFear(am.getEmotionalState()); 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/emotionalIntelligence/OCCAppraisalRules.java

    r308 r326  
    1111import FAtiMA.deliberativeLayer.plan.Effect; 
    1212import FAtiMA.deliberativeLayer.plan.Step; 
     13import FAtiMA.emotionalState.EmotionDisposition; 
    1314import FAtiMA.util.enumerables.ActionEvent; 
    1415import FAtiMA.util.enumerables.EmotionType; 
     
    2829                Step distressOperator; 
    2930                ArrayList<Step> appraisalOperators; 
     31                EmotionDisposition disp; 
     32                int threshold; 
    3033                Effect aux; 
    3134                EmotionCondition c; 
     
    4245                joyOperator.AddEffect(aux); 
    4346                 
     47                disp = am.getEmotionalState().getEmotionDispositions()[EmotionType.JOY]; 
     48                threshold = disp.GetThreshold(); 
    4449                 
    4550                params = new ArrayList<Symbol>(); 
     
    4752                //params.add(new Symbol("[p2]")); 
    4853                appraisal = new AppraisalCondition(new Symbol("[AGENT]"), 
    49                                 "desirability", new Symbol("[X]"),(short)0, 
     54                                "desirability", new Symbol("[X]"), 
     55                                threshold,  
     56                                (short)0, 
    5057                                new Symbol("[s]"), 
    5158                                new Symbol("[a]"), 
     
    6875                distressOperator.AddEffect(aux); 
    6976                 
     77                disp = am.getEmotionalState().getEmotionDispositions()[EmotionType.DISTRESS]; 
     78                threshold = disp.GetThreshold(); 
    7079                 
    7180                params = new ArrayList<Symbol>(); 
     
    7382                params.add(new Symbol("[p2]")); 
    7483                appraisal = new AppraisalCondition(new Symbol("[AGENT]"), 
    75                                 "desirability", new Symbol("[X]"), (short)0, 
     84                                "desirability", new Symbol("[X]"), 
     85                                threshold, 
     86                                (short)0, 
    7687                                new Symbol("[s]"), 
    7788                                new Symbol("[a]"), 
     
    8798                 
    8899        } 
     100 
    89101         
    90102        /*public Step getJoyOperator() 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/memory/semanticMemory/KnowledgeBase.java

    r278 r326  
    266266                        else 
    267267                        { 
    268                                 KnowledgeSlot ks; 
     268                                /*KnowledgeSlot ks; 
    269269                                ListIterator<KnowledgeSlot> li2 = _factList.listIterator(); 
    270270                                while(li2.hasNext()) 
     
    276276                                                //System.out.println("New property value in KB: " + ks.toString()); 
    277277                                        } 
    278                                 } 
     278                                }*/ 
    279279                        } 
    280280                } 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/memory/semanticMemory/KnowledgeSlot.java

    r278 r326  
    3838import java.util.HashMap; 
    3939import java.util.Iterator; 
     40import java.util.Set; 
    4041 
    4142 
     
    9798        public KnowledgeSlot get(String key) { 
    9899            return (KnowledgeSlot) _children.get(key); 
     100        } 
     101 
     102         
     103        public Set<String> getKeys() 
     104        { 
     105                return _children.keySet(); 
    99106        } 
    100107         
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/memory/semanticMemory/SemanticMemory.java

    r278 r326  
    106106        public int Count() 
    107107        { 
    108                 return _kb.Count(); 
     108                return _stm.Count(); 
    109109        } 
    110110 
     
    116116        public ListIterator<KnowledgeSlot> GetFactList() { 
    117117            return _stm.GetFactList(); 
     118        } 
     119         
     120        public ListIterator<KnowledgeSlot> GetKnowledgeBaseFacts() 
     121        { 
     122                return _kb.GetFactList(); 
    118123        } 
    119124         
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/memory/semanticMemory/WorkingMemory.java

    r278 r326  
    123123        } 
    124124         
    125     public void ClearChangeList() { 
     125   public void ClearChangeList() { 
    126126            _changeList.clear(); 
    127127        } 
     128    
     129   public int Count() 
     130   { 
     131           return _wM.CountElements(); 
     132   } 
    128133     
    129134    public ArrayList<KnowledgeSlot> GetChangeList() { 
     
    167172                                        _factList.remove(ks); 
    168173                                        _factList.add(ks); 
    169                                         //if(!_changeList.contains(ks)) 
    170                                         //      _changeList.add(ks); 
     174                                        if(!_changeList.contains(ks)) 
     175                                                _changeList.add(ks); 
    171176                                        return; 
    172177                                } 
     
    243248 
    244249                synchronized (this) { 
    245                         while (li.hasNext()) { 
     250                        while (li.hasNext())  
     251                        { 
    246252                                currentSlot = aux; 
    247253                                l = li.next(); 
    248                                 if (currentSlot.containsKey(l.toString())) { 
     254                                if (currentSlot.containsKey(l.toString()))  
     255                                { 
    249256                                        aux = currentSlot.get(l.toString()); 
    250                                 } else { 
     257                                }  
     258                                else  
     259                                { 
    251260                                        newProperty = true; 
    252261                                        _newKnowledge = true; 
     
    255264                                }  
    256265                        } 
     266                         
    257267                        if(aux.getValue() == null ||  
    258268                                        !aux.getValue().equals(value)) 
     
    260270                                aux.setValue(value); 
    261271                                _newKnowledge = true; 
    262                                 KnowledgeSlot ksAux = new KnowledgeSlot(property.toString()); 
    263                                 ksAux.setValue(value); 
    264                                 _newFacts.add(ksAux); 
     272                                //KnowledgeSlot ksAux = new KnowledgeSlot(property.toString()); 
     273                                //ksAux.setValue(value); 
     274                                _newFacts.add(aux); 
    265275                                 
    266276                                //System.out.println("New facts: " + ksAux.toString()); 
     
    278288                        else 
    279289                        { 
    280                                 KnowledgeSlot ks; 
    281                                 ListIterator<KnowledgeSlot> li2 =  _factList.listIterator(); 
    282                                 while(li2.hasNext()) 
    283                                 { 
    284                                         ks = li2.next(); 
    285                                         if(ks.getName().equals(property.toString())) 
    286                                         { 
    287                                                 ks.setValue(value); 
    288                                                 //if(!_changeList.contains(ks)) 
    289                                                 //      _changeList.add(ks); 
    290                                                 //System.out.println("New property value: " + ks.toString()); 
    291                                         }  
    292                                 } 
    293290                                this.RearrangeWorkingMemory(property); 
    294291                        } 
     
    297294                        { 
    298295                                KnowledgeSlot temp = (KnowledgeSlot) _factList.get(0); 
     296                                _factList.remove(0); 
    299297                                 
    300298                                Name tempName = Name.ParseName(temp.getName()); 
     
    306304                                        currentSlot =  aux; 
    307305                                        l = (Symbol) li.next(); 
    308                                         if (currentSlot.containsKey(l.toString())) { 
     306                                        if (currentSlot.containsKey(l.toString()))  
     307                                        { 
    309308                                                aux = currentSlot.get(l.toString()); 
    310                                         } else 
    311                                                 return; 
     309                                        }  
     310                                        else return; 
    312311                                } 
    313312                         
     
    324323                                currentSlot.remove(l.toString()); 
    325324                                 
    326                                 kb.Tell(tempName, temp.getValue()); 
    327                                 _factList.remove(temp);          
    328                                 _changeList.remove(temp); 
     325                                kb.Tell(tempName, temp.getValue());              
     326                                //_changeList.remove(temp); 
    329327                        } 
    330328                } 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/sensorEffector/RemoteAgent.java

    r323 r326  
    835835                String[] properties; 
    836836                 
     837                 
     838                 
    837839                //the following ones correspond to ":" separated property value pairs 
    838840                while(st.hasMoreTokens()) { 
     
    841843                        //constructs something like Luke(Strength) 
    842844                         
    843                         _agent.PerceivePropertyChanged(subject, properties[0], properties[1]); 
    844                         AgentLogger.GetInstance().log("Look-At:" + subject + " " + properties[0] + " " + properties[1]); 
    845                          
    846845                        //If the agent looks at another agent it initializes it's needs 
    847846                        if(!subject.equalsIgnoreCase(_agent.getName()) &&  
     
    853852                                 
    854853                        } 
     854                         
     855                        _agent.PerceivePropertyChanged(subject, properties[0], properties[1]); 
     856                        AgentLogger.GetInstance().log("Look-At:" + subject + " " + properties[0] + " " + properties[1]); 
    855857                } 
    856858                //Signals a lookat event to the Agent 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/sensorEffector/WorldSimulatorRemoteAgent.java

    r278 r326  
    221221                } 
    222222                else { 
     223                        if(action.equals("look-at")) 
     224                        { 
     225                                if(!subject.equals(this._agent.getName())) 
     226                                { 
     227                                        _agent.PerceiveLookAt(subject, target);  
     228                                } 
     229                        } 
    223230                        /*event = new Event(subject,actionName,target); 
    224231                        Iterator it = action.GetLiteralList().iterator(); 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/util/parsers/CultureLoaderHandler.java

    r284 r326  
    391391                        throw new ContextParsingException("Trying to parse a SocialCondition outside of a Context"); 
    392392 
    393                 _contextBeingParsed.AddSocialCondition( SocialCondition.Parse(attributes) ); 
     393                //_contextBeingParsed.AddSocialCondition( SocialCondition.Parse(attributes) ); 
    394394        } 
    395395} 
Note: See TracChangeset for help on using the changeset viewer.