Changeset 359


Ignore:
Timestamp:
04/12/2010 05:41:25 PM (10 years ago)
Author:
joao.dias
Message:

A lots of changes in conditions so that we can test conditions using other's ToM.

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

Legend:

Unmodified
Added
Removed
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/conditions/AppraisalCondition.java

    r326 r359  
    2323        private static final long serialVersionUID = 1L; 
    2424         
    25         private Symbol _agent; 
    2625        private String _appraisalVariable; 
    2726        private Symbol _value; 
     
    3837                //this._type = type; 
    3938                //this._status = status; 
     39                this._ToM = agent; 
    4040                 
    4141                this._positive = true; 
    42                 this._agent = agent; 
    4342                this._appraisalVariable = appraisalVariable; 
    4443                this._value = value; 
     
    5251                this._parameters = parameters; 
    5352                 
    54                 String aux = this._appraisalVariable + "," + this._agent + "," + this._subject + "," + this._action; 
     53                String aux = this._appraisalVariable + "," + this._ToM + "," + this._subject + "," + this._action; 
    5554                if(this._target != null) 
    5655                { 
     
    7675                newCondition._positive = this._positive; 
    7776                 
    78                 newCondition._agent = (Symbol) this._agent.clone(); 
    7977                newCondition._appraisalVariable = this._appraisalVariable; 
    8078                newCondition._value = (Symbol) this._value.clone(); 
     79                newCondition._ToM = (Symbol) this._value.clone(); 
    8180                newCondition._threshold = this._threshold; 
    8281                newCondition._test = this._test; 
     
    109108 
    110109        public void ReplaceUnboundVariables(int variableID) { 
    111                 this._agent.ReplaceUnboundVariables(variableID); 
    112110                this._value.ReplaceUnboundVariables(variableID); 
     111                this._ToM.ReplaceUnboundVariables(variableID); 
    113112                 
    114113                this._name.ReplaceUnboundVariables(variableID); 
     
    136135 
    137136        public void MakeGround(ArrayList<Substitution> bindings) { 
    138                 this._agent.MakeGround(bindings); 
    139137                this._value.MakeGround(bindings); 
    140138                 
    141139                this._name.MakeGround(bindings); 
     140                this._ToM.MakeGround(bindings); 
    142141                this._subject.MakeGround(bindings); 
    143142                this._action.MakeGround(bindings); 
     
    161160 
    162161        public void MakeGround(Substitution subst) { 
    163                 this._agent.MakeGround(subst); 
    164162                this._value.MakeGround(subst); 
    165163                 
    166164                this._name.MakeGround(subst); 
     165                this._ToM.MakeGround(subst); 
    167166                this._subject.MakeGround(subst); 
    168167                this._action.MakeGround(subst); 
     
    193192                AgentModel modelToTest = am; 
    194193                 
    195                 if(!this._agent.isGrounded()) return null; 
     194                if(!this._ToM.isGrounded()) return null; 
    196195                 
    197196                if(!this._value.isGrounded()) return null; 
    198197                 
    199                 if(!this._agent.toString().equals(Constants.SELF)) 
    200                 { 
    201                         modelToTest = am.getToM().get(this._agent.toString()); 
     198                if(!this._ToM.toString().equals(Constants.SELF)) 
     199                { 
     200                        modelToTest = am.getToM().get(this._ToM.toString()); 
    202201                } 
    203202                 
     
    241240                                if(ad.getTarget().equals(Constants.SELF)) 
    242241                                { 
    243                                         target = this._agent; 
     242                                        target = this._ToM; 
    244243                                } 
    245244                                else 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/conditions/Condition.java

    r284 r359  
    6666import FAtiMA.AgentModel; 
    6767import FAtiMA.memory.semanticMemory.KnowledgeBase; 
     68import FAtiMA.util.Constants; 
    6869import FAtiMA.wellFormedNames.IGroundable; 
    6970import FAtiMA.wellFormedNames.Name; 
    7071import FAtiMA.wellFormedNames.Substitution; 
    7172import FAtiMA.wellFormedNames.SubstitutionSet; 
     73import FAtiMA.wellFormedNames.Symbol; 
    7274 
    7375 
     
    190192         
    191193        protected Name _name; 
     194        protected Symbol _ToM; 
    192195         
    193196        /** 
     
    205208        public Condition(Name name) { 
    206209                _name = name; 
     210                _ToM = new Symbol(Constants.SELF); 
     211        } 
     212         
     213        public Condition(Name name, Symbol ToM) 
     214        { 
     215                _name = name; 
     216                _ToM = ToM; 
    207217        } 
    208218         
     
    221231        public Name getName() { 
    222232                return _name; 
     233        } 
     234         
     235        public Symbol getPerspective() 
     236        { 
     237                return _ToM; 
    223238        } 
    224239         
     
    286301         * Checks if a given condition is threatened by this condition  
    287302         * @param cond - the Condition to test 
    288          * @return true if the both conditions refer to the same property/predicate 
     303         * @return true if the both conditions refer to the same ToM and to the same property/predicate 
    289304         *         but with distinct values 
    290305         */ 
    291306        public boolean ThreatensCondition(Condition cond) { 
    292             if (_name.equals(cond._name)) { 
     307                if(_ToM.equals(cond._ToM) && _name.equals(cond._name))  
     308                { 
    293309                return !this.GetValue().equals(cond.GetValue()); 
    294310            } 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/conditions/EmotionCondition.java

    r308 r359  
    5959        protected Symbol _intensity; 
    6060        protected Symbol _direction; 
    61         protected Symbol _ToM; 
    6261         
    6362        /** 
     
    160159        private void UpdateName() 
    161160        { 
    162                 String aux = this._ToM + "(" + EmotionType.GetName(this._emotionType);  
     161                String aux = EmotionType.GetName(this._emotionType) + "(";  
    163162                 
    164163                if(this._direction != null) 
    165164                { 
    166                         aux += "," + this._direction; 
     165                        aux += this._direction; 
    167166                } 
    168167                aux+=")"; 
     
    186185        public boolean CheckCondition(AgentModel am) { 
    187186                boolean result; 
    188                 AgentModel modelToTest; 
    189187                if(!_ToM.isGrounded()) return false; 
    190188                 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/conditions/MoodCondition.java

    r278 r359  
    3737import FAtiMA.exceptions.InvalidMoodOperatorException; 
    3838import FAtiMA.exceptions.NoMoodOperatorDefinedException; 
     39import FAtiMA.util.Constants; 
    3940import FAtiMA.wellFormedNames.Name; 
    4041import FAtiMA.wellFormedNames.Substitution; 
     
    125126        public MoodCondition(short operator, float value) 
    126127        { 
     128                this._ToM = new Symbol(Constants.SELF); 
    127129                this._operator = operator; 
    128130                 
     
    243245    public void ReplaceUnboundVariables(int variableID) 
    244246    { 
     247        this._ToM.ReplaceUnboundVariables(variableID); 
    245248    } 
    246249         
     
    270273    public void MakeGround(ArrayList<Substitution> bindings) 
    271274    { 
     275        this._ToM.MakeGround(bindings); 
    272276    } 
    273277         
     
    297301    public void MakeGround(Substitution subst) 
    298302    { 
     303        this.MakeGround(subst); 
    299304    } 
    300305         
     
    307312        { 
    308313                MoodCondition mc = new MoodCondition(); 
     314                mc._ToM = (Symbol) this._ToM.clone(); 
    309315                mc._operator = this._operator; 
    310316                mc._value = this._value; 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/conditions/MotivatorCondition.java

    r278 r359  
    77import FAtiMA.AgentModel; 
    88import FAtiMA.util.AgentLogger; 
     9import FAtiMA.util.enumerables.MotivatorType; 
    910import FAtiMA.wellFormedNames.Name; 
    1011import FAtiMA.wellFormedNames.Substitution; 
     
    6263         */ 
    6364        public boolean CheckCondition(AgentModel am) { 
     65                //am.getMotivationalState().GetMotivator(MotivatorType.CERTAINTY). 
    6466                //TODO: implment this based on the motivational system 
    6567                return true; 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/conditions/NewEventCondition.java

    r308 r359  
    66import FAtiMA.AgentModel; 
    77import FAtiMA.memory.episodicMemory.SearchKey; 
     8import FAtiMA.util.Constants; 
    89import FAtiMA.wellFormedNames.Name; 
    910import FAtiMA.wellFormedNames.Symbol; 
     
    2627                NewEventCondition newEvent = new NewEventCondition(); 
    2728                 
     29                newEvent._ToM = (Symbol) this._ToM.clone(); 
    2830                newEvent._positive = this._positive; 
    2931                newEvent._conditionAlreadyVerified = this._conditionAlreadyVerified; 
     
    6163        public NewEventCondition(PastEventCondition cond) 
    6264        { 
     65                this._ToM = new Symbol(Constants.SELF); 
    6366                this._subject = cond._subject; 
    6467                this._action = cond._action; 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/conditions/PastEventCondition.java

    r286 r359  
    4444import FAtiMA.sensorEffector.Event; 
    4545import FAtiMA.sensorEffector.Parameter; 
     46import FAtiMA.util.Constants; 
    4647import FAtiMA.util.enumerables.ActionEvent; 
    4748import FAtiMA.util.enumerables.EventType; 
     
    120121        public PastEventCondition(boolean occurred, short type, short status, Symbol subject, Symbol action, Symbol target, ArrayList<Symbol> parameters) 
    121122        { 
     123                this._ToM = new Symbol(Constants.SELF); 
    122124                this._type = type; 
    123125                this._status = status; 
     
    147149        public PastEventCondition(boolean occurred, Event e) 
    148150        { 
     151                this._ToM = new Symbol(Constants.SELF); 
    149152                this._positive = occurred; 
    150153                this._subject = new Symbol(e.GetSubject()); 
     
    178181        public PastEventCondition(boolean occurred, short type, short status, Name event) 
    179182        { 
    180                 super(occurred, event); 
     183                super(occurred, event,new Symbol(Constants.SELF)); 
    181184                 
    182185                ListIterator<Symbol> li = event.GetLiteralList().listIterator(); 
     
    202205                 
    203206                newEvent._positive = this._positive; 
     207                newEvent._ToM = (Symbol) this._ToM.clone(); 
    204208                 
    205209                // Meiyii 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/conditions/PlaceCondition.java

    r278 r359  
    4343         
    4444        protected PlaceCondition(){ 
    45                 super(null,null); 
     45                super(null,null,null); 
    4646        } 
    4747         
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/conditions/PredicateCondition.java

    r278 r359  
    5959import FAtiMA.AgentModel; 
    6060import FAtiMA.memory.semanticMemory.KnowledgeBase; 
     61import FAtiMA.util.Constants; 
    6162import FAtiMA.wellFormedNames.Name; 
    6263import FAtiMA.wellFormedNames.Substitution; 
     
    8586    public static PredicateCondition ParsePredicate(Attributes attributes) { 
    8687                String aux; 
     88                Symbol ToM; 
    8789                Name name; 
    8890                boolean positive = true; 
     
    9496                name = Name.ParseName(aux); 
    9597                 
    96                 return new PredicateCondition(positive,name); 
     98                aux = attributes.getValue("ToM"); 
     99                if(aux == null)  
     100                { 
     101                        ToM = new Symbol(Constants.SELF); 
     102                } 
     103                else 
     104                { 
     105                        ToM = new Symbol(aux); 
     106                } 
     107                 
     108                 
     109                return new PredicateCondition(positive,name,ToM); 
    97110        } 
    98111                         
     
    109122         * @param name - the predicate's name 
    110123         */ 
    111         public PredicateCondition(boolean positive, Name name) { 
    112                 super(name); 
     124        public PredicateCondition(boolean positive, Name name, Symbol ToM) { 
     125                super(name,ToM); 
    113126                _positive = positive; 
    114127        } 
     
    121134        public boolean CheckCondition(AgentModel am) { 
    122135                boolean result; 
     136                AgentModel perspective = am; 
    123137                if(!_name.isGrounded()) return false; 
    124                 result = am.getMemory().getSemanticMemory().AskPredicate(_name);  
     138                 
     139                if(_ToM.isGrounded() && !_ToM.toString().equals(Constants.SELF)) 
     140                { 
     141                        if(am.getToM().containsKey(_ToM.toString())) 
     142                        { 
     143                                perspective = am.getToM().get(_ToM.toString()); 
     144                        } 
     145                } 
     146                 
     147                result = perspective.getMemory().getSemanticMemory().AskPredicate(_name);  
    125148                return _positive == result; 
    126149        } 
     
    159182    { 
    160183        this._name.ReplaceUnboundVariables(variableID); 
     184        this._ToM.ReplaceUnboundVariables(variableID); 
    161185    } 
    162186         
     
    187211    { 
    188212        this._name.MakeGround(bindings); 
     213        this._ToM.MakeGround(bindings); 
    189214    } 
    190215         
     
    215240    { 
    216241        this._name.MakeGround(subst); 
     242        this._ToM.MakeGround(subst); 
    217243    } 
    218244         
     
    223249         */ 
    224250        public boolean isGrounded() { 
    225                 return _name.isGrounded(); 
     251                return _name.isGrounded() && _ToM.isGrounded(); 
    226252        } 
    227253         
     
    240266         */ 
    241267        public String toString() { 
    242                 if (_positive) return _name.toString(); 
    243                 else return "!" + _name; 
     268                if (_positive) return _ToM + ":" + _name; 
     269                else return   _ToM + ":!" + _name; 
    244270        } 
    245271         
     
    251277        public Object clone() 
    252278        { 
    253             return new PredicateCondition(this._positive,(Name) this._name.clone()); 
     279            return new PredicateCondition(this._positive,(Name) this._name.clone(), (Symbol) this._ToM.clone()); 
    254280        } 
    255281         
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/conditions/PropertyCondition.java

    r278 r359  
    6060import FAtiMA.AgentModel; 
    6161import FAtiMA.util.AgentLogger; 
     62import FAtiMA.util.Constants; 
    6263import FAtiMA.wellFormedNames.Name; 
    6364import FAtiMA.wellFormedNames.Substitution; 
     65import FAtiMA.wellFormedNames.Symbol; 
    6466import FAtiMA.wellFormedNames.Unifier; 
    6567 
     
    9092                Name name; 
    9193                Name value; 
    92                 if( attributes.getValue("name") != null ){ // if were reading a 'normal' property condition 
     94                Symbol ToM; 
     95                String aux; 
     96                if( attributes.getValue("name") != null ){ // if we're reading a 'normal' property condition 
    9397                        String op; 
    9498                         
     
    96100                        op = attributes.getValue("operator"); 
    97101                        value = Name.ParseName(attributes.getValue("value")); 
    98          
     102                         
     103                        aux = attributes.getValue("ToM"); 
     104                        if(aux == null) 
     105                        { 
     106                                ToM = new Symbol(Constants.SELF); 
     107                        } 
     108                        else 
     109                        { 
     110                                ToM = new Symbol(aux); 
     111                        } 
     112                         
     113                 
    99114                        if (op == null || op.equals("=")) 
    100                                 cond = new PropertyEqual(name, value); 
     115                                cond = new PropertyEqual(name, value,ToM); 
    101116                        else if (op.equals("!=")) 
    102                                 cond = new PropertyNotEqual(name, value); 
     117                                cond = new PropertyNotEqual(name, value,ToM); 
    103118                        else if (op.equals("GreaterThan")) 
    104                                 cond = new PropertyGreater(name, value); 
     119                                cond = new PropertyGreater(name, value,ToM); 
    105120                        else if (op.equals("LesserThan")) 
    106                                 cond = new PropertyLesser(name, value); 
     121                                cond = new PropertyLesser(name, value,ToM); 
    107122                        else if (op.equals("GreaterEqual")) 
    108                                 cond = new PropertyGreaterEqual(name, value); 
     123                                cond = new PropertyGreaterEqual(name, value,ToM); 
    109124                        else if (op.equals("LesserEqual")) 
    110                                 cond = new PropertyLesserEqual(name,value); 
     125                                cond = new PropertyLesserEqual(name,value,ToM); 
    111126                        else 
    112                                 cond = new PropertyEqual(name, value); 
     127                                cond = new PropertyEqual(name, value,ToM); 
    113128                } 
    114129                else{ 
     
    119134        } 
    120135         
    121         public static PropertyCondition ParseProperty(String name, String op, String value){ 
     136        /*public static PropertyCondition ParseProperty(String name, String op, String value){ 
    122137                PropertyCondition cond = null; 
    123138                Name nameParsed; 
     
    143158 
    144159                return cond; 
    145         } 
     160        }*/ 
    146161 
    147162 
     
    154169         * @param value - the property's value 
    155170         */ 
    156         public PropertyCondition(Name name, Name value) { 
    157                 super(name); 
     171        public PropertyCondition(Name name, Name value,Symbol ToM) { 
     172                super(name,ToM); 
    158173                _value = value; 
    159174        } 
     
    204219        this._name.ReplaceUnboundVariables(variableID); 
    205220        this._value.ReplaceUnboundVariables(variableID); 
     221        this._ToM.ReplaceUnboundVariables(variableID); 
    206222    } 
    207223     
     
    234250        this._name.MakeGround(bindings); 
    235251        this._value.MakeGround(bindings); 
     252        this._ToM.MakeGround(bindings); 
    236253    } 
    237254     
     
    265282        this._name.MakeGround(subst); 
    266283        this._value.MakeGround(subst); 
     284        this._ToM.MakeGround(subst); 
    267285    } 
    268286 
     
    273291         */ 
    274292        public boolean isGrounded() { 
    275                 return (_name.isGrounded() && _value.isGrounded()); 
     293                return (_name.isGrounded() && _value.isGrounded() && _ToM.isGrounded()); 
    276294        } 
    277295 
     
    283301        } 
    284302         
    285         protected ArrayList<Substitution> GetBindings(AgentModel am, Name groundValue, Name value) { 
     303        protected ArrayList<Substitution> GetBindings(AgentModel am, Name groundValue, Name value, Symbol ToM) { 
     304                 
    286305                Object val; 
    287306                ArrayList<Substitution> bindings; 
     307                AgentModel perspective = am; 
     308                 
     309                if(ToM.isGrounded() && !ToM.toString().equals(Constants.SELF)) 
     310                { 
     311                        if(am.getToM().containsKey(ToM.toString())) 
     312                        { 
     313                                perspective = am.getToM().get(_ToM.toString()); 
     314                        } 
     315                } 
     316                 
    288317                if (!groundValue.isGrounded()) 
    289318                        return null; 
    290319                if (!value.isGrounded()) { 
    291                         val = groundValue.evaluate(am.getMemory()); 
     320                        val = groundValue.evaluate(perspective.getMemory()); 
    292321                        if (val != null) { 
    293322                                bindings = new ArrayList<Substitution>(); 
     
    314343     */ 
    315344        protected ArrayList<Substitution> GetValueBindings(AgentModel am) { 
    316                 return GetBindings(am, _name, _value); 
     345                return GetBindings(am, _name, _value, _ToM); 
    317346        } 
    318347} 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/conditions/PropertyEqual.java

    r278 r359  
    5252import FAtiMA.AgentModel; 
    5353import FAtiMA.util.AgentLogger; 
     54import FAtiMA.util.Constants; 
    5455import FAtiMA.wellFormedNames.Name; 
     56import FAtiMA.wellFormedNames.Symbol; 
    5557 
    5658/** 
     
    7678     *            the PropertyTest's value 
    7779     */ 
    78     public PropertyEqual(Name name, Name value) 
     80    public PropertyEqual(Name name, Name value, Symbol ToM) 
    7981    { 
    80         super(name, value); 
     82        super(name, value,ToM); 
    8183    } 
    8284 
     
    8991        Object propertyValue; 
    9092        Object value; 
     93        AgentModel perspective = am; 
    9194 
    9295        if (!super.CheckCondition(am)) 
    9396            return false; 
    94         propertyValue = this._name.evaluate(am.getMemory()); 
    95         value = this._value.evaluate(am.getMemory()); 
     97         
     98        if(_ToM.isGrounded() && !_ToM.toString().equals(Constants.SELF)) 
     99                { 
     100                        if(am.getToM().containsKey(_ToM.toString())) 
     101                        { 
     102                                perspective = am.getToM().get(_ToM.toString()); 
     103                        } 
     104                } 
     105         
     106        propertyValue = this._name.evaluate(perspective.getMemory()); 
     107        value = this._value.evaluate(perspective.getMemory()); 
    96108 
    97109        if (propertyValue == null || value == null) 
     
    109121    { 
    110122        return new PropertyEqual((Name) this._name 
    111                 .clone(), (Name) this._value.clone()); 
     123                .clone(), (Name) this._value.clone(), (Symbol) this._ToM.clone()); 
    112124    } 
    113125 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/conditions/PropertyGreater.java

    r278 r359  
    5555import FAtiMA.AgentModel; 
    5656import FAtiMA.util.AgentLogger; 
     57import FAtiMA.util.Constants; 
    5758import FAtiMA.wellFormedNames.Name; 
     59import FAtiMA.wellFormedNames.Symbol; 
    5860 
    5961 
     
    8082     *            the PropertyTest's value 
    8183     */ 
    82         public PropertyGreater(Name name, Name value) { 
    83                 super(name, value); 
     84        public PropertyGreater(Name name, Name value, Symbol ToM) { 
     85                super(name, value,ToM); 
    8486        } 
    8587         
     
    9496                Float aux2; 
    9597 
    96                 if (!super.CheckCondition(am)) 
    97                         return false; 
    98                  
    99                 propertyValue = this._name.evaluate(am.getMemory()); 
    100                 value = this._value.evaluate(am.getMemory()); 
     98        AgentModel perspective = am; 
     99 
     100        if (!super.CheckCondition(am)) 
     101            return false; 
     102         
     103        if(_ToM.isGrounded() && !_ToM.toString().equals(Constants.SELF)) 
     104                { 
     105                        if(am.getToM().containsKey(_ToM.toString())) 
     106                        { 
     107                                perspective = am.getToM().get(_ToM.toString()); 
     108                        } 
     109                } 
     110         
     111        propertyValue = this._name.evaluate(perspective.getMemory()); 
     112        value = this._value.evaluate(perspective.getMemory()); 
    101113 
    102114                if (propertyValue == null || value == null) 
     
    114126        public Object clone() 
    115127        { 
    116             return new PropertyGreater((Name) this._name.clone(), (Name) this._value.clone()); 
     128            return new PropertyGreater((Name) this._name.clone(), (Name) this._value.clone(), (Symbol) this._ToM.clone()); 
    117129        } 
    118130 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/conditions/PropertyGreaterEqual.java

    r278 r359  
    3333import FAtiMA.AgentModel; 
    3434import FAtiMA.util.AgentLogger; 
     35import FAtiMA.util.Constants; 
    3536import FAtiMA.wellFormedNames.Name; 
     37import FAtiMA.wellFormedNames.Symbol; 
    3638 
    3739 
     
    5860     *            the PropertyTest's value 
    5961     */ 
    60         public PropertyGreaterEqual(Name name, Name value) { 
    61                 super(name, value); 
     62        public PropertyGreaterEqual(Name name, Name value, Symbol ToM) { 
     63                super(name, value, ToM); 
    6264        } 
    6365         
     
    7274                Float aux2; 
    7375 
    74                 if (!super.CheckCondition(am)) 
    75                         return false; 
    76                  
    77                 propertyValue = this._name.evaluate(am.getMemory()); 
    78                 value = this._value.evaluate(am.getMemory()); 
     76        AgentModel perspective = am; 
     77 
     78        if (!super.CheckCondition(am)) 
     79            return false; 
     80         
     81        if(_ToM.isGrounded() && !_ToM.toString().equals(Constants.SELF)) 
     82                { 
     83                        if(am.getToM().containsKey(_ToM.toString())) 
     84                        { 
     85                                perspective = am.getToM().get(_ToM.toString()); 
     86                        } 
     87                } 
     88         
     89        propertyValue = this._name.evaluate(perspective.getMemory()); 
     90        value = this._value.evaluate(perspective.getMemory()); 
    7991 
    8092                if (propertyValue == null || value == null) 
     
    92104        public Object clone() 
    93105        { 
    94             return new PropertyGreaterEqual((Name) this._name.clone(), (Name) this._value.clone()); 
     106            return new PropertyGreaterEqual((Name) this._name.clone(), (Name) this._value.clone(), (Symbol) this._ToM.clone()); 
    95107        } 
    96108 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/conditions/PropertyLesser.java

    r278 r359  
    5656import FAtiMA.AgentModel; 
    5757import FAtiMA.util.AgentLogger; 
     58import FAtiMA.util.Constants; 
    5859import FAtiMA.wellFormedNames.Name; 
     60import FAtiMA.wellFormedNames.Symbol; 
    5961 
    6062/** 
     
    8082     *            the PropertyTest's value 
    8183     */ 
    82         public PropertyLesser(Name name, Name value) { 
    83                 super(name, value); 
     84        public PropertyLesser(Name name, Name value, Symbol ToM) { 
     85                super(name, value, ToM); 
    8486        } 
    8587 
     
    9496                Float aux2; 
    9597 
    96                 if (!super.CheckCondition(am)) 
    97                         return false; 
    98          
    99                 propertyValue = this._name.evaluate(am.getMemory()); 
    100                 value = this._value.evaluate(am.getMemory()); 
     98        AgentModel perspective = am; 
     99 
     100        if (!super.CheckCondition(am)) 
     101            return false; 
     102         
     103        if(_ToM.isGrounded() && !_ToM.toString().equals(Constants.SELF)) 
     104                { 
     105                        if(am.getToM().containsKey(_ToM.toString())) 
     106                        { 
     107                                perspective = am.getToM().get(_ToM.toString()); 
     108                        } 
     109                } 
     110         
     111        propertyValue = this._name.evaluate(perspective.getMemory()); 
     112        value = this._value.evaluate(perspective.getMemory()); 
    101113 
    102114                if (propertyValue == null || value == null || propertyValue =="null" || value == "null") 
     
    114126        public Object clone() 
    115127        { 
    116             return new PropertyLesser((Name) this._name.clone(), (Name) this._value.clone()); 
     128            return new PropertyLesser((Name) this._name.clone(), (Name) this._value.clone(), (Symbol) this._ToM.clone()); 
    117129        } 
    118130 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/conditions/PropertyLesserEqual.java

    r278 r359  
    3333import FAtiMA.AgentModel; 
    3434import FAtiMA.util.AgentLogger; 
     35import FAtiMA.util.Constants; 
    3536import FAtiMA.wellFormedNames.Name; 
     37import FAtiMA.wellFormedNames.Symbol; 
    3638 
    3739/** 
     
    5759     *            the PropertyTest's value 
    5860     */ 
    59         public PropertyLesserEqual(Name name, Name value) { 
    60                 super(name, value); 
     61        public PropertyLesserEqual(Name name, Name value, Symbol ToM) { 
     62                super(name, value, ToM); 
    6163        } 
    6264 
     
    7173                Float aux2; 
    7274 
    73                 if (!super.CheckCondition(am)) 
    74                         return false; 
    75                 propertyValue = this._name.evaluate(am.getMemory()); 
    76                 value = this._value.evaluate(am.getMemory()); 
     75        AgentModel perspective = am; 
     76 
     77        if (!super.CheckCondition(am)) 
     78            return false; 
     79         
     80        if(_ToM.isGrounded() && !_ToM.toString().equals(Constants.SELF)) 
     81                { 
     82                        if(am.getToM().containsKey(_ToM.toString())) 
     83                        { 
     84                                perspective = am.getToM().get(_ToM.toString()); 
     85                        } 
     86                } 
     87         
     88        propertyValue = this._name.evaluate(perspective.getMemory()); 
     89        value = this._value.evaluate(perspective.getMemory()); 
    7790 
    7891                if (propertyValue == null || value == null || propertyValue =="null" || value == "null") 
     
    90103        public Object clone() 
    91104        { 
    92             return new PropertyLesserEqual((Name) this._name.clone(), (Name) this._value.clone()); 
     105            return new PropertyLesserEqual((Name) this._name.clone(), (Name) this._value.clone(), (Symbol) this._ToM.clone()); 
    93106        } 
    94107 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/conditions/PropertyNotEqual.java

    r278 r359  
    7777import FAtiMA.AgentModel; 
    7878import FAtiMA.util.AgentLogger; 
     79import FAtiMA.util.Constants; 
    7980import FAtiMA.wellFormedNames.Inequality; 
    8081import FAtiMA.wellFormedNames.Name; 
    8182import FAtiMA.wellFormedNames.Substitution; 
    8283import FAtiMA.wellFormedNames.SubstitutionSet; 
     84import FAtiMA.wellFormedNames.Symbol; 
    8385 
    8486 
     
    103105     *            the PropertyTest's value 
    104106     */ 
    105     public PropertyNotEqual(Name name, Name value) { 
    106                 super(name, value); 
     107    public PropertyNotEqual(Name name, Name value, Symbol ToM) { 
     108                super(name, value, ToM); 
    107109        } 
    108110         
     
    114116                Object propertyValue; 
    115117                Object value; 
    116  
    117                 if (!super.CheckCondition(am)) 
    118                         return false; 
    119                  
    120                 propertyValue = this._name.evaluate(am.getMemory()); 
    121                 value = this._value.evaluate(am.getMemory()); 
     118                 
     119        AgentModel perspective = am; 
     120 
     121        if (!super.CheckCondition(am)) 
     122            return false; 
     123         
     124        if(_ToM.isGrounded() && !_ToM.toString().equals(Constants.SELF)) 
     125                { 
     126                        if(am.getToM().containsKey(_ToM.toString())) 
     127                        { 
     128                                perspective = am.getToM().get(_ToM.toString()); 
     129                        } 
     130                } 
     131         
     132        propertyValue = this._name.evaluate(perspective.getMemory()); 
     133        value = this._value.evaluate(perspective.getMemory()); 
    122134 
    123135                if (propertyValue == null || value == null)  
     
    160172                } 
    161173                 
     174                AgentModel perspective = am; 
     175                 
     176                if(_ToM.isGrounded() && !_ToM.toString().equals(Constants.SELF)) 
     177                { 
     178                        if(am.getToM().containsKey(_ToM.toString())) 
     179                        { 
     180                                perspective = am.getToM().get(_ToM.toString()); 
     181                        } 
     182                } 
     183                 
    162184                //if the name is not grounded we try to get all possible bindings for it 
    163                 bindingSets = am.getMemory().getSemanticMemory().GetPossibleBindings(_name); 
     185                bindingSets = perspective.getMemory().getSemanticMemory().GetPossibleBindings(_name); 
    164186                if (bindingSets == null) 
    165187                        return null; 
     
    202224                // [X] != [Y] 
    203225                if (_name.isGrounded()) { 
    204                         bindings = this.GetBindings(am,_name,_value); 
     226                        bindings = this.GetBindings(am,_name,_value,_ToM); 
    205227                        if (bindings == null) 
    206228                                return null; 
    207229                } 
    208230                else if(_value.isGrounded()) { 
    209                         bindings = this.GetBindings(am,_value,_name); 
     231                        bindings = this.GetBindings(am,_value,_name,_ToM); 
    210232                        if (bindings == null) 
    211233                                return null; 
     
    237259        public Object clone() 
    238260        { 
    239             return new PropertyNotEqual((Name) this._name.clone(), (Name) this._value.clone()); 
     261            return new PropertyNotEqual((Name) this._name.clone(), (Name) this._value.clone(), (Symbol) this._ToM.clone()); 
    240262        } 
    241263 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/conditions/RecentEventCondition.java

    r282 r359  
    4242import FAtiMA.memory.episodicMemory.SearchKey; 
    4343import FAtiMA.sensorEffector.Event; 
     44import FAtiMA.util.Constants; 
    4445import FAtiMA.wellFormedNames.Name; 
    4546import FAtiMA.wellFormedNames.Substitution; 
     
    6667        public RecentEventCondition(PastEventCondition cond) 
    6768        { 
     69                this._ToM = new Symbol(Constants.SELF); 
    6870                this._subject = cond._subject; 
    6971                this._action = cond._action; 
     
    99101                RecentEventCondition newEvent = new RecentEventCondition(); 
    100102                 
     103                newEvent._ToM = (Symbol) this._ToM.clone(); 
    101104                newEvent._positive = this._positive; 
    102105                 
     
    132135 
    133136        public void ReplaceUnboundVariables(int variableID) { 
     137                this._ToM.ReplaceUnboundVariables(variableID); 
    134138                this._name.ReplaceUnboundVariables(variableID); 
    135139                this._subject.ReplaceUnboundVariables(variableID); 
     
    155159 
    156160        public void MakeGround(ArrayList<Substitution> bindings) { 
     161                this._ToM.MakeGround(bindings); 
    157162                this._name.MakeGround(bindings); 
    158163                this._subject.MakeGround(bindings); 
     
    177182 
    178183        public void MakeGround(Substitution subst) { 
     184                this._ToM.MakeGround(subst); 
    179185                this._name.MakeGround(subst); 
    180186                this._subject.MakeGround(subst); 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/conditions/TimeCondition.java

    r278 r359  
    4444 
    4545        protected TimeCondition(){ 
    46                 super(null,null); 
     46                super(null,null,null); 
    4747        } 
    4848         
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/deliberativeLayer/EmotionalPlanner.java

    r278 r359  
    277277                                        effectCond = effect.GetEffect(); 
    278278                                        substs = new ArrayList<Substitution>(); 
    279                                         if (Unifier.Unify(cond.getName(), effectCond.getName(), substs)) { 
     279                                        if(Unifier.Unify(cond.getPerspective(), effectCond.getPerspective(), substs)  
     280                                                        && Unifier.Unify(cond.getName(), effectCond.getName(), substs))  
     281                                        { 
    280282                                                condValue = cond.GetValue(); 
    281283                                                effectValue = effectCond.GetValue(); 
     
    422424                if (p == null) { 
    423425                        //There's no possible plan to achieve the goal, the goal fails 
    424                         //ProcessIntentionFailure(intention); 
    425426                        return null; 
    426427                } 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/util/parsers/StripsOperatorsLoaderHandler.java

    r282 r359  
    5151import FAtiMA.AgentModel; 
    5252import FAtiMA.conditions.EmotionCondition; 
     53import FAtiMA.conditions.NewEventCondition; 
    5354import FAtiMA.conditions.PastEventCondition; 
    5455import FAtiMA.conditions.RecentEventCondition; 
     
    151152     
    152153        public void Predicate(Attributes attributes) { 
    153                 String aux; 
    154                 Name name; 
    155                 boolean positive = true; 
    156                 aux = attributes.getValue("name"); 
    157                 if(aux.charAt(0) == '!') { 
    158                         aux = aux.substring(1); 
    159                         positive = false; 
    160                 } 
    161                 name = Name.ParseName(aux); 
    162                 name.MakeGround(this._self); 
    163          
    164                 PredicateCondition p = new PredicateCondition(positive,name); 
     154                PredicateCondition p; 
     155                 
     156                p = PredicateCondition.ParsePredicate(attributes); 
     157         
     158                p.MakeGround(this._self); 
    165159                 
    166160                if(_precondition)  
Note: See TracChangeset for help on using the changeset viewer.