Changeset 1334


Ignore:
Timestamp:
11/10/2011 11:37:27 AM (9 years ago)
Author:
joao.dias
Message:
 
Location:
AgentMind/branches/FAtiMA-Modular/FAtiMA.EmotionalIntelligence
Files:
1 deleted
6 edited

Legend:

Unmodified
Added
Removed
  • AgentMind/branches/FAtiMA-Modular/FAtiMA.EmotionalIntelligence/.classpath

    r991 r1334  
    44        <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/> 
    55        <classpathentry combineaccessrules="false" kind="src" path="/FAtiMA"/> 
    6         <classpathentry combineaccessrules="false" kind="src" path="/FAtiMA.AdvancedMemory"/> 
    76        <classpathentry combineaccessrules="false" kind="src" path="/FAtiMA.ReactiveComponent"/> 
    87        <classpathentry combineaccessrules="false" kind="src" path="/FAtiMA.OCCAffectDerivation"/> 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA.EmotionalIntelligence/src/FAtiMA/emotionalIntelligence/AppraisalCondition.java

    r1094 r1334  
    22 
    33import java.util.ArrayList; 
     4import java.util.Collections; 
    45import java.util.ListIterator; 
    56 
     
    78import FAtiMA.Core.conditions.PastEventCondition; 
    89import FAtiMA.Core.emotionalState.EmotionalPameters; 
    9 import FAtiMA.Core.memory.episodicMemory.ActionDetail; 
    10 import FAtiMA.Core.util.Constants; 
     10import FAtiMA.Core.util.RatedObject; 
    1111import FAtiMA.Core.wellFormedNames.Name; 
    1212import FAtiMA.Core.wellFormedNames.Substitution; 
    1313import FAtiMA.Core.wellFormedNames.SubstitutionSet; 
    1414import FAtiMA.Core.wellFormedNames.Symbol; 
    15 import FAtiMA.advancedMemoryComponent.AdvancedMemoryComponent; 
     15import FAtiMA.ReactiveComponent.ReactiveComponent; 
    1616import FAtiMA.motivationalSystem.MotivationalComponent; 
    1717 
     
    7676        } 
    7777         
    78         public boolean CheckCondition(AgentModel am) { 
    79                 return this._action.isGrounded(); 
     78        public float CheckCondition(AgentModel am) { 
     79                if(this._action.isGrounded()) 
     80                { 
     81                        return 1; 
     82                } 
     83                else return 0; 
    8084        } 
    8185         
     
    9599                float finalemotionvalue; 
    96100                float appraisalVariableValue; 
     101                ArrayList<RatedObject<SubstitutionSet>> ratedSubs; 
    97102                ArrayList<SubstitutionSet> subs; 
    98103                float mood; 
     
    108113                //meaning that the valence of the corresponding emotion is positive 
    109114                if(_test == 0){ 
    110                          
    111115                        appraisalVariableValue = finalemotionvalue - (mood * EmotionalPameters.MoodInfluenceOnEmotion); 
    112116                        if(appraisalVariableValue < 0) 
     
    124128                        } 
    125129                } 
    126  
    127          
     130                 
     131                ratedSubs = new ArrayList<RatedObject<SubstitutionSet>>(); 
     132 
     133                //subs = searchReactiveAppraisals(modelToTest, appraisalVariableValue); 
    128134                 
    129135                //subs = searchMemoryAppraisals(modelToTest, appraisalVariableValue); 
    130                 subs = new ArrayList<SubstitutionSet>(); 
    131                  
    132                 subs.addAll(searchDrivesAppraisals(modelToTest, appraisalVariableValue)); 
    133          
    134                 if(subs.size() > 0) 
    135                 { 
     136                 
     137                ratedSubs.addAll(searchDrivesAppraisals(modelToTest, appraisalVariableValue)); 
     138                 
     139                Collections.sort(ratedSubs); 
     140         
     141                if(ratedSubs.size() > 0) 
     142                { 
     143                        subs = new ArrayList<SubstitutionSet>(); 
     144                        for(RatedObject<SubstitutionSet> ro : ratedSubs) 
     145                        { 
     146                                subs.add(ro.getObject()); 
     147                        } 
    136148                        return subs; 
    137149                } 
     
    140152        } 
    141153         
    142         private ArrayList<SubstitutionSet> searchMemoryAppraisals(AgentModel am, float desirability) 
     154        /*private ArrayList<SubstitutionSet> searchMemoryAppraisals(AgentModel am, float desirability) 
    143155        { 
    144156                ArrayList<SubstitutionSet> subs = new ArrayList<SubstitutionSet>(); 
     
    146158                Symbol target; 
    147159                AdvancedMemoryComponent advMem; 
    148                  
     160                   
    149161                ArrayList<String> knownInfo = new ArrayList<String>(); 
    150162                knownInfo.add("desirability " + desirability); 
    151163                //float desirability = Float.parseFloat(this._value.toString()); 
    152                 /*if(desirability >= 0) 
    153                 { 
    154                         knownInfo.add("positive"); 
    155                 } 
    156                 else 
    157                 { 
    158                         knownInfo.add("negative"); 
    159                 }*/ 
    160                  
    161                 String question = "action"; 
     164                //if(desirability >= 0) 
     165                //{ 
     166                //      knownInfo.add("positive"); 
     167                //} 
     168                //else 
     169                //{ 
     170                //      knownInfo.add("negative"); 
     171                //} 
     172                 
     173                String question = "events"; 
    162174                 
    163175                advMem = (AdvancedMemoryComponent) am.getComponent(AdvancedMemoryComponent.NAME); 
     
    167179                ArrayList<ActionDetail> details = advMem.getSpreadActivate().getDetails(); 
    168180                 
     181                 
     182                //wtf, isto devolve todos os eventos com desirability >= ao valor pretendido, inclusivamente 
     183                //repetido 
     184                 
     185                //TODO must do this properly 
    169186                if(details.size() > 0) 
    170187                { 
     
    186203                } 
    187204                 
     205                //TODO procurar events com desejabilidade nos GER's (Generic Event Representation)  
     206                 
    188207                return subs; 
    189208        } 
    190          
    191         private ArrayList<SubstitutionSet> searchDrivesAppraisals(AgentModel am, float desirability) 
     209        */ 
     210         
     211        private ArrayList<SubstitutionSet> searchReactiveAppraisals(AgentModel am, float desirability) 
     212        { 
     213                ReactiveComponent reactiveComponent = (ReactiveComponent) am.getComponent(ReactiveComponent.NAME); 
     214                return reactiveComponent.searchEventsWithAppraisal(am, _subject, _action, _target, _parameters.get(0), desirability); 
     215        } 
     216         
     217        private ArrayList<RatedObject<SubstitutionSet>> searchDrivesAppraisals(AgentModel am, float desirability) 
    192218        { 
    193219                MotivationalComponent motivationalComponent = (MotivationalComponent) am.getComponent(MotivationalComponent.NAME); 
    194220                 
    195                 return motivationalComponent.searchEventsWithAppraisal(am, _subject, _action, _target, _parameters.get(0), desirability);        
     221                return motivationalComponent.searchEventsWithAppraisal(am, this.getToM(), _subject, _action, _target, _parameters.get(0), desirability);         
    196222        } 
    197223 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA.EmotionalIntelligence/src/FAtiMA/emotionalIntelligence/EmotionalConditionsLoaderHandler.java

    r958 r1334  
    66import FAtiMA.Core.goals.Goal; 
    77import FAtiMA.Core.util.Constants; 
    8 import FAtiMA.Core.util.parsers.ReflectXMLHandler; 
     8import FAtiMA.Core.util.parsers.ReflectXMLHandler2; 
    99import FAtiMA.Core.wellFormedNames.Name; 
    1010import FAtiMA.Core.wellFormedNames.Substitution; 
    1111import FAtiMA.Core.wellFormedNames.Symbol; 
    1212 
    13 public class EmotionalConditionsLoaderHandler extends ReflectXMLHandler { 
     13public class EmotionalConditionsLoaderHandler extends ReflectXMLHandler2 { 
    1414         
    1515        private AgentModel _aM; 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA.EmotionalIntelligence/src/FAtiMA/emotionalIntelligence/EmotionalEpisodeCondition.java

    r1094 r1334  
    113113         * @see  
    114114         */ 
    115         public boolean CheckCondition(AgentModel am) { 
     115        public float CheckCondition(AgentModel am) { 
    116116                 
    117117                BaseEmotion emotion; 
     
    119119                ArrayList<MemoryEpisode> episodes; 
    120120                 
    121                 if(!this.isGrounded()) return false; 
     121                if(!this.isGrounded()) return 0; 
    122122                 
    123123                episodes = am.getMemory().getEpisodicMemory().GetAllEpisodes(); 
     
    140140                        if(emotion.GetPotential() >= this._value) 
    141141                        { 
    142                                 return true; 
     142                                return 1; 
    143143                        } 
    144144                }                
    145145                 
    146                 return false; 
     146                return 0; 
    147147                 
    148148        } 
     
    174174                 
    175175                if (getName().isGrounded() && _emotion.isGrounded()) { 
    176                         if(CheckCondition(am)) 
     176                        if(CheckCondition(am)==1) 
    177177                        {  
    178178                                bindingSets.add(new SubstitutionSet()); 
     
    279279         
    280280        @Override 
    281         public Name GetValue() { 
     281        public Name getValue() { 
    282282                return Name.ParseName(String.valueOf(this._value)); 
    283283        } 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA.EmotionalIntelligence/src/FAtiMA/emotionalIntelligence/EmotionalIntelligenceComponent.java

    r1179 r1334  
    11package FAtiMA.emotionalIntelligence; 
    22 
    3 import java.io.File; 
    43import java.util.ArrayList; 
    5  
    6 import javax.xml.parsers.SAXParser; 
    7 import javax.xml.parsers.SAXParserFactory; 
    84 
    95import FAtiMA.Core.AgentModel; 
    106import FAtiMA.Core.Display.AgentDisplayPanel; 
    117import FAtiMA.Core.componentTypes.IComponent; 
    12 import FAtiMA.Core.goals.Goal; 
    138import FAtiMA.Core.plans.Step; 
    149import FAtiMA.Core.sensorEffector.Event; 
    15 import FAtiMA.Core.util.AgentLogger; 
    16 import FAtiMA.Core.util.ConfigurationManager; 
    17 import FAtiMA.Core.util.parsers.GoalLoaderHandler; 
     10import FAtiMA.Core.util.parsers.ReflectXMLHandler2; 
    1811import FAtiMA.DeliberativeComponent.DeliberativeComponent; 
    1912import FAtiMA.OCCAffectDerivation.OCCAffectDerivationComponent; 
     
    2114import FAtiMA.ReactiveComponent.ReactiveComponent; 
    2215import FAtiMA.ToM.ToMComponent; 
    23 import FAtiMA.advancedMemoryComponent.AdvancedMemoryComponent; 
    24 import FAtiMA.motivationalSystem.MotivationalComponent; 
    25 import FAtiMA.socialRelations.SocialRelationsComponent; 
    2616 
    2717public class EmotionalIntelligenceComponent implements IComponent { 
     
    2919        public static final String NAME = "EmotionalIntelligence"; 
    3020         
    31         private ArrayList<String> _parsingFiles; 
     21        //private ArrayList<String> _parsingFiles; 
     22        private EmotionalConditionsLoaderHandler _parser; 
    3223         
    3324        public EmotionalIntelligenceComponent(ArrayList<String> extraFiles) 
    3425        { 
    35                 _parsingFiles = new ArrayList<String>(); 
     26                /*_parsingFiles = new ArrayList<String>(); 
    3627                _parsingFiles.add(ConfigurationManager.getGoalsFile()); 
    3728                _parsingFiles.add(ConfigurationManager.getActionsFile()); 
    38                 _parsingFiles.addAll(extraFiles); 
    39                  
     29                _parsingFiles.addAll(extraFiles);*/ 
    4030        } 
    4131         
    4232         
    4333 
    44         private void LoadOperators(AgentModel am) 
     34        /*private void LoadOperators(AgentModel am) 
    4535        { 
    4636                 
     
    6050                        throw new RuntimeException("Error on Loading EI Operators from XML Files:" + e); 
    6151                } 
    62         } 
     52        }*/ 
    6353 
    6454        @Override 
     
    7363                                DeliberativeComponent.NAME, 
    7464                                OCCAffectDerivationComponent.NAME, 
    75                                 MotivationalComponent.NAME, 
    76                                 ToMComponent.NAME, 
    77                                 SocialRelationsComponent.NAME}; 
     65                                //MotivationalComponent.NAME, 
     66                                ToMComponent.NAME//, 
     67                                //SocialRelationsComponent.NAME}; 
     68                }; 
    7869                return dependencies; 
    7970        } 
     
    9586                } 
    9687                 
    97                 LoadOperators(am); 
     88                this._parser = new EmotionalConditionsLoaderHandler(am); 
     89                //LoadOperators(am); 
    9890        } 
    9991 
     
    117109                // TODO Auto-generated method stub 
    118110        } 
     111 
     112 
     113 
     114        @Override 
     115        public ReflectXMLHandler2 getActionsParser(AgentModel am) { 
     116                return this._parser; 
     117        } 
     118 
     119        @Override 
     120        public ReflectXMLHandler2 getGoalsParser(AgentModel am) { 
     121                return this._parser; 
     122        } 
     123 
     124 
     125 
     126        @Override 
     127        public ReflectXMLHandler2 getPersonalityParser(AgentModel am) { 
     128                return null; 
     129        } 
     130 
     131 
     132 
     133        @Override 
     134        public void parseAdditionalFiles(AgentModel am) { 
     135        } 
    119136} 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA.EmotionalIntelligence/src/FAtiMA/emotionalIntelligence/OCCAppraisalRules.java

    r1088 r1334  
    66import FAtiMA.Core.conditions.EmotionCondition; 
    77import FAtiMA.Core.conditions.NewEventCondition; 
     8import FAtiMA.Core.conditions.PropertyEqual; 
    89import FAtiMA.Core.emotionalState.EmotionDisposition; 
    910import FAtiMA.Core.plans.Effect; 
    1011import FAtiMA.Core.plans.Step; 
     12import FAtiMA.Core.util.Constants; 
    1113import FAtiMA.Core.util.enumerables.ActionEvent; 
    1214import FAtiMA.Core.util.enumerables.EventType; 
    1315import FAtiMA.Core.wellFormedNames.Name; 
    1416import FAtiMA.Core.wellFormedNames.Symbol; 
    15 import FAtiMA.OCCAffectDerivation.OCCAffectDerivationComponent; 
    1617import FAtiMA.OCCAffectDerivation.OCCAppraisalVariables; 
    1718import FAtiMA.OCCAffectDerivation.OCCEmotionType; 
     
    3637                NewEventCondition event; 
    3738                ArrayList<Symbol> params; 
     39                PropertyEqual subjectIsSelf; 
     40                PropertyEqual subjectIsPerson; 
    3841                 
    3942                appraisalOperators = new ArrayList<Step>(); 
     43                 
     44                subjectIsPerson = new PropertyEqual(Name.ParseName("[s](isPerson)"),new Symbol("True"), Constants.UNIVERSAL); 
     45                subjectIsSelf = new PropertyEqual(new Symbol("[s]"), new Symbol("SELF"), Constants.UNIVERSAL); 
     46                 
    4047                 
    4148                joyOperator = new Step(new Symbol("[AGENT]"),Name.ParseName("JoyAppraisal()"),1.0f); 
     
    6471                event = new NewEventCondition(true, EventType.ACTION,ActionEvent.SUCCESS,ev); 
    6572                joyOperator.AddPrecondition(event); 
     73                 
     74                joyOperator.AddPrecondition((PropertyEqual) subjectIsPerson.clone()); 
     75                joyOperator.AddPrecondition((PropertyEqual) subjectIsSelf.clone()); 
    6676                 
    6777                appraisalOperators.add(joyOperator); 
     
    96106                 
    97107                distressOperator.AddPrecondition(event); 
     108                distressOperator.AddPrecondition((PropertyEqual) subjectIsPerson.clone()); 
     109                distressOperator.AddPrecondition((PropertyEqual) subjectIsSelf.clone()); 
    98110                 
    99111                appraisalOperators.add(distressOperator); 
     
    102114                 
    103115        } 
     116         
     117         
    104118 
    105119         
Note: See TracChangeset for help on using the changeset viewer.