Changeset 328


Ignore:
Timestamp:
03/26/2010 12:25:53 PM (10 years ago)
Author:
myl
Message:

Added the object field in ActionDetail?. Added speechActMeaning, multimediaPath, object and location fields in the generalisation process. Treating empty fields as mismatch.

Location:
AgentMind/trunk/AgentMind
Files:
12 edited

Legend:

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

    r286 r328  
    6868        JTextField _speechActMeaning; 
    6969        JTextField _multimediaPath; 
     70        JTextField _object; 
    7071         
    7172        public MemoryDetailPanel(ActionDetail detail) { 
     
    137138        this.add(_multimediaPath); 
    138139         
     140        _object = new JTextField(detail.getObject()); 
     141        _object.setMinimumSize(new Dimension(80,30)); 
     142        _object.setMaximumSize(new Dimension(80,30)); 
     143        _object.setBorder(BorderFactory.createLineBorder(new Color(0,0,0))); 
     144        this.add(_object); 
     145         
    139146        _desirability = new JTextField(Float.toString(detail.getDesirability())); 
    140147        _desirability.setMinimumSize(new Dimension(80,30)); 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/Display/MemoryEpisodeDisplay.java

    r286 r328  
    238238        aux.add(lbl); 
    239239         
     240        lbl = new JLabel("Object"); // object/third person 
     241        lbl.setBorder(BorderFactory.createLineBorder(new Color(0,0,0))); 
     242        lbl.setMinimumSize(new Dimension(80,30)); 
     243        lbl.setMaximumSize(new Dimension(80,30)); 
     244        aux.add(lbl); 
     245         
    240246        lbl = new JLabel("Desirability"); // Desirable? 
    241247        lbl.setBorder(BorderFactory.createLineBorder(new Color(0,0,0))); 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/Display/RecordDetailPanel.java

    r278 r328  
    3838        JTextField _speechActMeaning; 
    3939        JTextField _multimediaPath; 
     40        JTextField _object; 
    4041         
    4142        public RecordDetailPanel(ActionDetail detail) 
     
    9596        this.add(_multimediaPath); 
    9697         
     98        _object = new JTextField(detail.getObject()); 
     99        _object.setMinimumSize(new Dimension(80,30)); 
     100        _object.setMaximumSize(new Dimension(80,30)); 
     101        _object.setBorder(BorderFactory.createLineBorder(new Color(0,0,0))); 
     102        this.add(_object); 
     103         
    97104        _desirability = new JTextField(Float.toString(detail.getDesirability())); 
    98105        _desirability.setMinimumSize(new Dimension(80,30)); 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/Display/STMRecordDisplay.java

    r278 r328  
    117117        aux.add(lbl); 
    118118         
     119        lbl = new JLabel("Object"); // object/third person 
     120        lbl.setBorder(BorderFactory.createLineBorder(new Color(0,0,0))); 
     121        lbl.setMinimumSize(new Dimension(80,30)); 
     122        lbl.setMaximumSize(new Dimension(80,30)); 
     123        aux.add(lbl); 
     124         
    119125        lbl = new JLabel("Desirability"); // Desirable? 
    120126        lbl.setBorder(BorderFactory.createLineBorder(new Color(0,0,0))); 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/memory/episodicMemory/ActionDetail.java

    r308 r328  
    9393        private String _speechActMeaning; 
    9494        private String _multimediaPath; 
     95        private String _object; 
    9596         
    9697        private float _desirability; 
     
    148149                                        this._multimediaPath = p.GetValue().toString(); 
    149150                                } 
     151                                else if(p.GetName().equals("param")) 
     152                                { 
     153                                        this._object = p.GetValue().toString(); 
     154                                } 
    150155                        } 
    151156                } 
     
    266271        { 
    267272                return this._multimediaPath; 
     273        } 
     274         
     275        public String getObject() 
     276        { 
     277                return this._object; 
    268278        } 
    269279         
     
    606616                action += "<SpeechActMeaning>" + this.getSpeechActMeaning() + "</SpeechActMeaning>"; 
    607617                action += "<MultimediaPath>" + this.getMultimediaPath() + "</MultimediaPath>"; 
     618                action += "<Object>" + this.getObject() + "</Object>"; 
    608619                action += "<Desirability>" + this.getDesirability() + "</Desirability>"; 
    609620                action += "<Praiseworthiness>" + this.getPraiseworthiness() + "</Praiseworthiness>"; 
  • AgentMind/trunk/AgentMind/MemoryProcesses/src/main/java/MemoryProcesses/CCQuery.java

    r323 r328  
    3939public class CCQuery { 
    4040         
    41         private int _numField = 9; 
     41        private int _numField = 10; 
    4242         
    4343        private ActionDetail _result; 
  • AgentMind/trunk/AgentMind/MemoryProcesses/src/main/java/MemoryProcesses/GQuery.java

    r324 r328  
    1212public class GQuery { 
    1313         
    14         private int _numField = 5; 
    1514        private int _maxNumMatch; 
    1615        private Hashtable<ArrayList<Integer>, Hashtable<String, String>> _match; 
     
    3837    } 
    3938     
    40     public int getNumField(){ 
    41                 return this._numField; 
    42         } 
    43      
    4439    public void setMatch(ArrayList<Integer> ids, Hashtable<String, String> match) 
    4540    {    
  • AgentMind/trunk/AgentMind/MemoryProcesses/src/main/java/MemoryProcesses/SAQuery.java

    r323 r328  
    5050        private String _speechActMeaning; 
    5151        private String _multimediaPath; 
     52        private String _object; 
    5253        private float _desirability; 
    5354        private float _praiseworthiness; 
     
    7273                this._speechActMeaning = ""; 
    7374                this._multimediaPath = ""; 
     75                this._object = ""; 
    7476                this._desirability = 0; 
    7577                this._praiseworthiness = 0; 
     
    165167                                this._numKnownVar++; 
    166168                        } 
     169                        if (queryType.equals("object")) 
     170                        { 
     171                                while(query.hasMoreTokens()) 
     172                                { 
     173                                        this._object = query.nextToken(); 
     174                                } 
     175                                this._numKnownVar++; 
     176                        } 
    167177                        if (queryType.equals("desirability")) 
    168178                        { 
     
    183193                } 
    184194                System.out.println("ID" + this._id + "subject " + this._subject + " target " + this._target  
    185                                 + " action " + this._action + " location " + _location  
     195                                + " action " + this._action + " location " + this._location  
    186196                                + "intention " + this._intention + "status " + this._status      
    187197                                + "speechActMeaning " + this._speechActMeaning + "multimediaPath "  
    188                                 + this._multimediaPath + "desirability " + this._desirability 
     198                                + this._multimediaPath + "object " + this._object + "desirability " + this._desirability 
    189199                                + "praiseworthiness " + this._praiseworthiness); 
    190200                _question = question;            
     
    203213                this._speechActMeaning = ""; 
    204214                this._multimediaPath = ""; 
     215                this._object = ""; 
    205216                this._desirability = 0; 
    206217                this._praiseworthiness = 0; 
     
    253264    } 
    254265     
     266    public String getObject(){ 
     267        return this._object; 
     268    } 
     269     
    255270    public float getDesirability(){ 
    256271        return this._desirability; 
     
    312327    public void setMultimediaPath(String multimediaPath){ 
    313328        this._multimediaPath = multimediaPath; 
     329    } 
     330     
     331    public void setObject(String object){ 
     332        this._object = object; 
    314333    } 
    315334     
  • AgentMind/trunk/AgentMind/MemoryProcesses/src/main/rules/CompoundCue.drl

    r323 r328  
    1414        when 
    1515                $q: CCQuery() 
    16                 $qad: ActionDetail($s1 : subject) from $q.actionDetail 
     16                $qad: ActionDetail($s1 : subject != null) from $q.actionDetail 
    1717                $ad: ActionDetail(subject == $s1)  
    1818        then             
     
    2828                $q: CCQuery() 
    2929                $qad: ActionDetail($s1 : subject) from $q.actionDetail 
    30                 $ad: ActionDetail(subject != $s1)  
     30                $ad: ActionDetail((subject != $s1) || ((subject == $s1) && (subject == null)))  
    3131        then             
    3232                insert (new CandidateEvent($ad, "subject", 0.8f)); 
    3333                retract ($ad); 
    34                 #System.out.println("different subject " + $ad.getID()); 
     34                #System.out.println("different/empty subject " + $ad.getID()); 
    3535end 
    3636 
     
    4040        when 
    4141                $q: CCQuery() 
     42                $qad: ActionDetail($t1 : target != null) from $q.actionDetail 
     43                $ad: ActionDetail(target == $t1) 
     44        then 
     45                insert (new CandidateEvent($ad, "target", 1.0f)); 
     46                retract ($ad); 
     47                #System.out.println("same target " + $ad.getID()); 
     48end 
     49 
     50rule "different target phase1" 
     51        no-loop true 
     52        salience 50 
     53        when 
     54                $q: CCQuery() 
    4255                $qad: ActionDetail($t1 : target) from $q.actionDetail 
    43                 $ad: ActionDetail(target == $t1) 
    44         then 
    45                 insert (new CandidateEvent($ad, "target", 1.0f)); 
    46                 retract ($ad); 
    47                 #System.out.println("same target " + $ad.getID()); 
    48 end 
    49  
    50 rule "different target phase1" 
    51         no-loop true 
    52         salience 50 
    53         when 
    54                 $q: CCQuery() 
    55                 $qad: ActionDetail($t1 : target) from $q.actionDetail 
    56                 $ad: ActionDetail(target != $t1) 
     56                $ad: ActionDetail((target != $t1) || ((target == $t1) && (target == null))) 
    5757        then 
    5858                insert (new CandidateEvent($ad, "target", 0.8f)); 
    5959                retract ($ad); 
    60                 #System.out.println("different target " + $ad.getID()); 
     60                #System.out.println("different/empty target " + $ad.getID()); 
    6161end 
    6262 
     
    6666        when 
    6767                $q: CCQuery() 
     68                $qad: ActionDetail($a1 : action != null) from $q.actionDetail 
     69                $ad: ActionDetail(action == $a1)  
     70        then 
     71                insert (new CandidateEvent($ad, "action", 1.0f)); 
     72                retract ($ad); 
     73                #System.out.println("same action " + $ad.getID()); 
     74end 
     75 
     76rule "different action phase1" 
     77        no-loop true 
     78        salience 50 
     79        when 
     80                $q: CCQuery() 
    6881                $qad: ActionDetail($a1 : action) from $q.actionDetail 
    69                 $ad: ActionDetail(action == $a1)  
    70         then 
    71                 insert (new CandidateEvent($ad, "action", 1.0f)); 
    72                 retract ($ad); 
    73                 #System.out.println("same action " + $ad.getID()); 
    74 end 
    75  
    76 rule "different action phase1" 
    77         no-loop true 
    78         salience 50 
    79         when 
    80                 $q: CCQuery() 
    81                 $qad: ActionDetail($a1 : action) from $q.actionDetail 
    82                 $ad: ActionDetail(action != $a1)  
     82                $ad: ActionDetail((action != $a1) || ((action == $a1) && (action == null)))  
    8383        then 
    8484                insert (new CandidateEvent($ad, "action", 0.8f)); 
    8585                retract ($ad); 
    86                 #System.out.println("different action " + $ad.getID()); 
     86                #System.out.println("different/empty action " + $ad.getID()); 
    8787end 
    8888 
     
    9292        when 
    9393                $q: CCQuery() 
     94                $qad: ActionDetail($l1 : location != null) from $q.actionDetail 
     95                $ad: ActionDetail(location == $l1)  
     96        then 
     97                insert (new CandidateEvent($ad, "location", 1.0f)); 
     98                retract ($ad); 
     99                #System.out.println("same location " + $ad.getID()); 
     100end 
     101 
     102rule "different location phase1" 
     103        no-loop true 
     104        salience 50 
     105        when 
     106                $q: CCQuery() 
    94107                $qad: ActionDetail($l1 : location) from $q.actionDetail 
    95                 $ad: ActionDetail(location == $l1)  
    96         then 
    97                 insert (new CandidateEvent($ad, "location", 1.0f)); 
    98                 retract ($ad); 
    99                 #System.out.println("same location " + $ad.getID()); 
    100 end 
    101  
    102 rule "different location phase1" 
    103         no-loop true 
    104         salience 50 
    105         when 
    106                 $q: CCQuery() 
    107                 $qad: ActionDetail($l1 : location) from $q.actionDetail 
    108                 $ad: ActionDetail(location != $l1)  
     108                $ad: ActionDetail((location != $l1) || ((location == $l1) && (location == null)))  
    109109        then 
    110110                insert (new CandidateEvent($ad, "location", 0.8f)); 
    111111                retract ($ad); 
    112                 #System.out.println("different location " + $ad.getID()); 
     112                #System.out.println("different/empty location " + $ad.getID()); 
    113113end 
    114114 
     
    118118        when 
    119119                $q: CCQuery() 
     120                $qad: ActionDetail($e1 : emotion != null) from $q.actionDetail 
     121                $ad: ActionDetail(emotion == $e1)  
     122        then 
     123                insert (new CandidateEvent($ad, "emotion", 1.0f)); 
     124                retract ($ad); 
     125                #System.out.println("same emotion " + $ad.getID()); 
     126end 
     127 
     128rule "different emotion phase1" 
     129        no-loop true 
     130        salience 50 
     131        when 
     132                $q: CCQuery() 
    120133                $qad: ActionDetail($e1 : emotion) from $q.actionDetail 
    121                 $ad: ActionDetail(emotion == $e1)  
    122         then 
    123                 insert (new CandidateEvent($ad, "emotion", 1.0f)); 
    124                 retract ($ad); 
    125                 #System.out.println("same emotion " + $ad.getID()); 
    126 end 
    127  
    128 rule "different emotion phase1" 
    129         no-loop true 
    130         salience 50 
    131         when 
    132                 $q: CCQuery() 
    133                 $qad: ActionDetail($e1 : emotion) from $q.actionDetail 
    134                 $ad: ActionDetail(emotion != $e1)  
     134                $ad: ActionDetail((emotion != $e1) || ((emotion == $e1) && (emotion == null)))  
    135135        then 
    136136                insert (new CandidateEvent($ad, "emotion", 0.8f)); 
    137137                retract ($ad); 
    138                 #System.out.println("different emotion " + $ad.getID()); 
     138                #System.out.println("different/empty emotion " + $ad.getID()); 
    139139end 
    140140 
     
    144144        when 
    145145                $q: CCQuery() 
     146                $qad: ActionDetail($i1 : intention != null) from $q.actionDetail 
     147                $ad: ActionDetail(intention == $i1)  
     148        then 
     149                insert (new CandidateEvent($ad, "intention", 1.0f)); 
     150                retract ($ad); 
     151                System.out.println("same intention " + $ad.getID()); 
     152end 
     153 
     154rule "different intention phase1" 
     155        no-loop true 
     156        salience 50 
     157        when 
     158                $q: CCQuery() 
    146159                $qad: ActionDetail($i1 : intention) from $q.actionDetail 
    147                 $ad: ActionDetail(intention == $i1)  
    148         then 
    149                 insert (new CandidateEvent($ad, "intention", 1.0f)); 
    150                 retract ($ad); 
    151                 #System.out.println("same intention " + $ad.getID()); 
    152 end 
    153  
    154 rule "different intention phase1" 
    155         no-loop true 
    156         salience 50 
    157         when 
    158                 $q: CCQuery() 
    159                 $qad: ActionDetail($i1 : intention) from $q.actionDetail 
    160                 $ad: ActionDetail(intention != $i1)  
     160                $ad: ActionDetail((intention != $i1) || ((intention == $i1) && (intention == null)))  
    161161        then 
    162162                insert (new CandidateEvent($ad, "intention", 0.8f)); 
    163163                retract ($ad); 
    164                 #System.out.println("different intention " + $ad.getID()); 
     164                System.out.println("different/empty intention " + $ad.getID()); 
    165165end 
    166166 
     
    170170        when 
    171171                $q: CCQuery() 
     172                $qad: ActionDetail($st1 : status != null) from $q.actionDetail 
     173                $ad: ActionDetail(status == $st1)  
     174        then 
     175                insert (new CandidateEvent($ad, "status", 1.0f)); 
     176                retract ($ad); 
     177                #System.out.println("same status " + $ad.getID()); 
     178end 
     179 
     180rule "different status phase1" 
     181        no-loop true 
     182        salience 50 
     183        when 
     184                $q: CCQuery() 
    172185                $qad: ActionDetail($st1 : status) from $q.actionDetail 
    173                 $ad: ActionDetail(status == $st1)  
    174         then 
    175                 insert (new CandidateEvent($ad, "status", 1.0f)); 
    176                 retract ($ad); 
    177                 #System.out.println("same status " + $ad.getID()); 
    178 end 
    179  
    180 rule "different status phase1" 
    181         no-loop true 
    182         salience 50 
    183         when 
    184                 $q: CCQuery() 
    185                 $qad: ActionDetail($st1 : status) from $q.actionDetail 
    186                 $ad: ActionDetail(status != $st1)  
     186                $ad: ActionDetail((status != $st1) || ((status == $st1) && (status == null)))  
    187187        then 
    188188                insert (new CandidateEvent($ad, "status", 0.8f)); 
    189189                retract ($ad); 
    190                 #System.out.println("different status " + $ad.getID()); 
     190                #System.out.println("different/empty status " + $ad.getID()); 
    191191end 
    192192 
     
    196196        when 
    197197                $q: CCQuery() 
     198                $qad: ActionDetail($sa1 : speechActMeaning != null) from $q.actionDetail 
     199                $ad: ActionDetail(speechActMeaning == $sa1)  
     200        then 
     201                insert (new CandidateEvent($ad, "speechActMeaning", 1.0f)); 
     202                retract ($ad); 
     203                #System.out.println("same speechActMeaning " + $ad.getID()); 
     204end 
     205 
     206rule "different speechActMeaning phase1" 
     207        no-loop true 
     208        salience 50 
     209        when 
     210                $q: CCQuery() 
    198211                $qad: ActionDetail($sa1 : speechActMeaning) from $q.actionDetail 
    199                 $ad: ActionDetail(speechActMeaning == $sa1)  
    200         then 
    201                 insert (new CandidateEvent($ad, "speechActMeaning", 1.0f)); 
    202                 retract ($ad); 
    203                 #System.out.println("same speechActMeaning " + $ad.getID()); 
    204 end 
    205  
    206 rule "different speechActMeaning phase1" 
    207         no-loop true 
    208         salience 50 
    209         when 
    210                 $q: CCQuery() 
    211                 $qad: ActionDetail($sa1 : speechActMeaning) from $q.actionDetail 
    212                 $ad: ActionDetail(speechActMeaning != $sa1)  
     212                $ad: ActionDetail((speechActMeaning != $sa1) || ((speechActMeaning == $sa1) && (speechActMeaning == null)))  
    213213        then 
    214214                insert (new CandidateEvent($ad, "speechActMeaning", 0.8f)); 
    215215                retract ($ad); 
    216                 #System.out.println("different speechActMeaning " + $ad.getID()); 
     216                #System.out.println("different/empty speechActMeaning " + $ad.getID()); 
    217217end 
    218218 
     
    222222        when 
    223223                $q: CCQuery() 
     224                $qad: ActionDetail($m1 : multimediaPath != null) from $q.actionDetail 
     225                $ad: ActionDetail(multimediaPath == $m1)  
     226        then 
     227                insert (new CandidateEvent($ad, "multimediaPath", 1.0f)); 
     228                retract ($ad); 
     229                #System.out.println("same multimediaPath " + $ad.getID()); 
     230end 
     231 
     232rule "different multimediaPath phase1" 
     233        no-loop true 
     234        salience 50 
     235        when 
     236                $q: CCQuery() 
    224237                $qad: ActionDetail($m1 : multimediaPath) from $q.actionDetail 
    225                 $ad: ActionDetail(multimediaPath == $m1)  
    226         then 
    227                 insert (new CandidateEvent($ad, "multimediaPath", 1.0f)); 
    228                 retract ($ad); 
    229                 #System.out.println("same multimediaPath " + $ad.getID()); 
    230 end 
    231  
    232 rule "different multimediaPath phase1" 
    233         no-loop true 
    234         salience 50 
    235         when 
    236                 $q: CCQuery() 
    237                 $qad: ActionDetail($m1 : multimediaPath) from $q.actionDetail 
    238                 $ad: ActionDetail(multimediaPath != $m1)  
     238                $ad: ActionDetail((multimediaPath != $m1) || ((multimediaPath == $m1) && (multimediaPath == null)))  
    239239        then 
    240240                insert (new CandidateEvent($ad, "multimediaPath", 0.8f)); 
    241241                retract ($ad); 
    242                 #System.out.println("different multimediaPath " + $ad.getID()); 
     242                #System.out.println("different/empty multimediaPath " + $ad.getID()); 
     243end 
     244 
     245rule "same object phase1" 
     246        no-loop true 
     247        salience 50 
     248        when 
     249                $q: CCQuery() 
     250                $qad: ActionDetail($o1 : object != null) from $q.actionDetail 
     251                $ad: ActionDetail(object == $o1)  
     252        then 
     253                insert (new CandidateEvent($ad, "object", 1.0f)); 
     254                retract ($ad); 
     255                #System.out.println("same object " + $ad.getID()); 
     256end 
     257 
     258rule "different object phase1" 
     259        no-loop true 
     260        salience 50 
     261        when 
     262                $q: CCQuery() 
     263                $qad: ActionDetail($o1 : object) from $q.actionDetail 
     264                $ad: ActionDetail((object != $o1) || ((object == $o1) && (object == null)))  
     265        then 
     266                insert (new CandidateEvent($ad, "object", 0.8f)); 
     267                retract ($ad); 
     268                #System.out.println("different/empty object " + $ad.getID()); 
    243269end 
    244270 
     
    247273        when 
    248274                $q: CCQuery() 
    249                 $qad: ActionDetail($s1 : subject) from $q.actionDetail 
     275                $qad: ActionDetail($s1 : subject != null) from $q.actionDetail 
    250276                $cad: CandidateEvent(extension not contains "subject", phase != $q.numField) 
    251277                $ad: ActionDetail(subject == $s1) from $cad.actionDetail         
     
    267293                $qad: ActionDetail($s1 : subject) from $q.actionDetail 
    268294                $cad: CandidateEvent(extension not contains "subject", phase != $q.numField) 
    269                 $ad: ActionDetail(subject != $s1) from $cad.actionDetail         
     295                $ad: ActionDetail((subject != $s1)  || ((subject == $s1) && (subject == null))) from $cad.actionDetail   
    270296        then             
    271297                modify ($cad) 
     
    276302                } 
    277303                #System.out.println("Evaluation " + $cad.getEvaluation()); 
    278                 #System.out.println("different subject " + $ad.getID()); 
     304                #System.out.println("different/empty subject " + $ad.getID()); 
    279305end 
    280306 
    281307rule "same target" 
     308        no-loop true 
     309        when 
     310                $q: CCQuery() 
     311                $qad: ActionDetail($t1 : target != null) from $q.actionDetail 
     312                $cad: CandidateEvent(extension not contains "target", phase != $q.numField) 
     313                $ad: ActionDetail(target == $t1) from $cad.actionDetail  
     314        then 
     315                modify ($cad) 
     316                { 
     317                        increasePhase(),  
     318                        setExtension("target"), 
     319                        updateEvaluation(1.0f)                   
     320                } 
     321                #System.out.println("Evaluation " + $cad.getEvaluation()); 
     322                #System.out.println("same target " + $ad.getID()); 
     323end 
     324 
     325rule "different target" 
    282326        no-loop true 
    283327        when 
     
    285329                $qad: ActionDetail($t1 : target) from $q.actionDetail 
    286330                $cad: CandidateEvent(extension not contains "target", phase != $q.numField) 
    287                 $ad: ActionDetail(target == $t1) from $cad.actionDetail  
    288         then 
    289                 modify ($cad) 
    290                 { 
    291                         increasePhase(),  
    292                         setExtension("target"), 
    293                         updateEvaluation(1.0f)                   
    294                 } 
    295                 #System.out.println("Evaluation " + $cad.getEvaluation()); 
    296                 #System.out.println("same target " + $ad.getID()); 
    297 end 
    298  
    299 rule "different target" 
    300         no-loop true 
    301         when 
    302                 $q: CCQuery() 
    303                 $qad: ActionDetail($t1 : target) from $q.actionDetail 
    304                 $cad: CandidateEvent(extension not contains "target", phase != $q.numField) 
    305                 $ad: ActionDetail(target != $t1) from $cad.actionDetail  
     331                $ad: ActionDetail((target != $t1)  || ((target == $t1) && (target == null))) from $cad.actionDetail      
    306332        then 
    307333                modify ($cad) 
     
    312338                } 
    313339                #System.out.println("Evaluation " + $cad.getEvaluation()); 
    314                 #System.out.println("different target " + $ad.getID()); 
     340                #System.out.println("different/empty target " + $ad.getID()); 
    315341end 
    316342 
    317343rule "same action" 
     344        no-loop true 
     345        when 
     346                $q: CCQuery() 
     347                $qad: ActionDetail($a1 : action != null) from $q.actionDetail 
     348                $cad: CandidateEvent(extension not contains "action", phase != $q.numField) 
     349                $ad: ActionDetail(action == $a1) from $cad.actionDetail  
     350        then 
     351                modify ($cad) 
     352                { 
     353                        increasePhase(),  
     354                        setExtension("action"), 
     355                        updateEvaluation(1.0f)           
     356                } 
     357                #System.out.println("Evaluation " + $cad.getEvaluation()); 
     358                #System.out.println("same action " + $ad.getID()); 
     359end 
     360 
     361rule "different action" 
    318362        no-loop true 
    319363        when 
     
    321365                $qad: ActionDetail($a1 : action) from $q.actionDetail 
    322366                $cad: CandidateEvent(extension not contains "action", phase != $q.numField) 
    323                 $ad: ActionDetail(action == $a1) from $cad.actionDetail  
     367                $ad: ActionDetail((action != $a1)  || ((action == $a1) && (action == null))) from $cad.actionDetail      
    324368        then 
    325369                modify ($cad) 
     
    327371                        increasePhase(),  
    328372                        setExtension("action"), 
    329                         updateEvaluation(1.0f)           
    330                 } 
    331                 #System.out.println("Evaluation " + $cad.getEvaluation()); 
    332                 #System.out.println("same action " + $ad.getID()); 
    333 end 
    334  
    335 rule "different action" 
    336         no-loop true 
    337         when 
    338                 $q: CCQuery() 
    339                 $qad: ActionDetail($a1 : action) from $q.actionDetail 
    340                 $cad: CandidateEvent(extension not contains "action", phase != $q.numField) 
    341                 $ad: ActionDetail(action != $a1) from $cad.actionDetail  
    342         then 
    343                 modify ($cad) 
    344                 { 
    345                         increasePhase(),  
    346                         setExtension("action"), 
    347                         updateEvaluation(0.8f)           
    348                 } 
    349                 #System.out.println("Evaluation " + $cad.getEvaluation()); 
    350                 #System.out.println("different action " + $ad.getID()); 
     373                        updateEvaluation(0.8f)           
     374                } 
     375                #System.out.println("Evaluation " + $cad.getEvaluation()); 
     376                #System.out.println("different/empty action " + $ad.getID()); 
    351377end 
    352378 
    353379rule "same location" 
     380        no-loop true 
     381        when 
     382                $q: CCQuery() 
     383                $qad: ActionDetail($l1 : location != null) from $q.actionDetail 
     384                $cad: CandidateEvent(extension not contains "location", phase != $q.numField) 
     385                $ad: ActionDetail(location == $l1) from $cad.actionDetail        
     386        then 
     387                modify ($cad) 
     388                { 
     389                        increasePhase(),  
     390                        setExtension("location"), 
     391                        updateEvaluation(1.0f)           
     392                } 
     393                #System.out.println("Evaluation " + $cad.getEvaluation()); 
     394                #System.out.println("same location " + $ad.getID()); 
     395end 
     396 
     397rule "different location" 
    354398        no-loop true 
    355399        when 
     
    357401                $qad: ActionDetail($l1 : location) from $q.actionDetail 
    358402                $cad: CandidateEvent(extension not contains "location", phase != $q.numField) 
    359                 $ad: ActionDetail(location == $l1) from $cad.actionDetail        
     403                $ad: ActionDetail((location != $l1)  || ((location == $l1) && (location == null))) from $cad.actionDetail        
    360404        then 
    361405                modify ($cad) 
     
    363407                        increasePhase(),  
    364408                        setExtension("location"), 
    365                         updateEvaluation(1.0f)           
    366                 } 
    367                 #System.out.println("Evaluation " + $cad.getEvaluation()); 
    368                 #System.out.println("same location " + $ad.getID()); 
    369 end 
    370  
    371 rule "different location" 
    372         no-loop true 
    373         when 
    374                 $q: CCQuery() 
    375                 $qad: ActionDetail($l1 : location) from $q.actionDetail 
    376                 $cad: CandidateEvent(extension not contains "location", phase != $q.numField) 
    377                 $ad: ActionDetail(location != $l1) from $cad.actionDetail        
    378         then 
    379                 modify ($cad) 
    380                 { 
    381                         increasePhase(),  
    382                         setExtension("location"), 
    383                         updateEvaluation(0.8f)           
    384                 } 
    385                 #System.out.println("Evaluation " + $cad.getEvaluation()); 
    386                 #System.out.println("different location " + $ad.getID()); 
     409                        updateEvaluation(0.8f)           
     410                } 
     411                #System.out.println("Evaluation " + $cad.getEvaluation()); 
     412                #System.out.println("different/empty location " + $ad.getID()); 
    387413end 
    388414 
    389415rule "same emotion" 
     416        no-loop true 
     417        when 
     418                $q: CCQuery() 
     419                $qad: ActionDetail($e1 : emotion != null) from $q.actionDetail 
     420                $cad: CandidateEvent(extension not contains "emotion", phase != $q.numField) 
     421                $ad: ActionDetail(emotion == $e1) from $cad.actionDetail         
     422        then 
     423                modify ($cad) 
     424                { 
     425                        increasePhase(),  
     426                        setExtension("emotion"), 
     427                        updateEvaluation(1.0f)           
     428                } 
     429                #System.out.println("Evaluation " + $cad.getEvaluation()); 
     430                #System.out.println("same emotion " + $ad.getID()); 
     431end 
     432 
     433rule "different emotion" 
    390434        no-loop true 
    391435        when 
     
    393437                $qad: ActionDetail($e1 : emotion) from $q.actionDetail 
    394438                $cad: CandidateEvent(extension not contains "emotion", phase != $q.numField) 
    395                 $ad: ActionDetail(emotion == $e1) from $cad.actionDetail         
     439                $ad: ActionDetail((emotion != $e1)  || ((emotion == $e1) && (emotion == null))) from $cad.actionDetail   
    396440        then 
    397441                modify ($cad) 
     
    402446                } 
    403447                #System.out.println("Evaluation " + $cad.getEvaluation()); 
    404                 #System.out.println("same emotion " + $ad.getID()); 
    405 end 
    406  
    407 rule "different emotion" 
    408         no-loop true 
    409         when 
    410                 $q: CCQuery() 
    411                 $qad: ActionDetail($e1 : emotion) from $q.actionDetail 
    412                 $cad: CandidateEvent(extension not contains "emotion", phase != $q.numField) 
    413                 $ad: ActionDetail(emotion != $e1) from $cad.actionDetail         
    414         then 
    415                 modify ($cad) 
    416                 { 
    417                         increasePhase(),  
    418                         setExtension("emotion"), 
    419                         updateEvaluation(1.0f)           
    420                 } 
    421                 #System.out.println("Evaluation " + $cad.getEvaluation()); 
    422                 #System.out.println("different emotion " + $ad.getID()); 
     448                #System.out.println("different/empty emotion " + $ad.getID()); 
    423449end 
    424450 
    425451rule "same intention" 
     452        no-loop true 
     453        when 
     454                $q: CCQuery() 
     455                $qad: ActionDetail($i1 : intention != null) from $q.actionDetail 
     456                $cad: CandidateEvent(extension not contains "intention", phase != $q.numField) 
     457                $ad: ActionDetail(intention == $i1) from $cad.actionDetail       
     458        then 
     459                modify ($cad) 
     460                { 
     461                        increasePhase(),  
     462                        setExtension("intention"), 
     463                        updateEvaluation(1.0f)           
     464                } 
     465                #System.out.println("Evaluation " + $cad.getEvaluation()); 
     466                #System.out.println("same intention " + $ad.getID()); 
     467end 
     468 
     469rule "different intention" 
    426470        no-loop true 
    427471        when 
     
    429473                $qad: ActionDetail($i1 : intention) from $q.actionDetail 
    430474                $cad: CandidateEvent(extension not contains "intention", phase != $q.numField) 
    431                 $ad: ActionDetail(intention == $i1) from $cad.actionDetail       
     475                $ad: ActionDetail((intention != $i1) || ((intention == $i1) && (intention == null))) from $cad.actionDetail      
    432476        then 
    433477                modify ($cad) 
     
    435479                        increasePhase(),  
    436480                        setExtension("intention"), 
    437                         updateEvaluation(1.0f)           
    438                 } 
    439                 #System.out.println("Evaluation " + $cad.getEvaluation()); 
    440                 #System.out.println("same intention " + $ad.getID()); 
    441 end 
    442  
    443 rule "different intention" 
    444         no-loop true 
    445         when 
    446                 $q: CCQuery() 
    447                 $qad: ActionDetail($i1 : intention) from $q.actionDetail 
    448                 $cad: CandidateEvent(extension not contains "intention", phase != $q.numField) 
    449                 $ad: ActionDetail(intention != $i1) from $cad.actionDetail       
    450         then 
    451                 modify ($cad) 
    452                 { 
    453                         increasePhase(),  
    454                         setExtension("intention"), 
    455                         updateEvaluation(0.8f)           
    456                 } 
    457                 #System.out.println("Evaluation " + $cad.getEvaluation()); 
    458                 #System.out.println("different intention " + $ad.getID()); 
     481                        updateEvaluation(0.8f)           
     482                } 
     483                #System.out.println("Evaluation " + $cad.getEvaluation()); 
     484                #System.out.println("different/empty intention " + $ad.getID()); 
    459485end 
    460486 
    461487rule "same status" 
     488        no-loop true 
     489        when 
     490                $q: CCQuery() 
     491                $qad: ActionDetail($st1 : status != null) from $q.actionDetail 
     492                $cad: CandidateEvent(extension not contains "status", phase != $q.numField) 
     493                $ad: ActionDetail(status == $st1) from $cad.actionDetail         
     494        then 
     495                modify ($cad) 
     496                { 
     497                        increasePhase(),  
     498                        setExtension("status"), 
     499                        updateEvaluation(1.0f)           
     500                } 
     501                #System.out.println("Evaluation " + $cad.getEvaluation()); 
     502                #System.out.println("same status " + $ad.getID()); 
     503end 
     504 
     505rule "different status" 
    462506        no-loop true 
    463507        when 
     
    465509                $qad: ActionDetail($st1 : status) from $q.actionDetail 
    466510                $cad: CandidateEvent(extension not contains "status", phase != $q.numField) 
    467                 $ad: ActionDetail(status == $st1) from $cad.actionDetail         
     511                $ad: ActionDetail((status != $st1)  || ((status == $st1) && (status == null))) from $cad.actionDetail    
    468512        then 
    469513                modify ($cad) 
     
    471515                        increasePhase(),  
    472516                        setExtension("status"), 
    473                         updateEvaluation(1.0f)           
    474                 } 
    475                 #System.out.println("Evaluation " + $cad.getEvaluation()); 
    476                 #System.out.println("same status " + $ad.getID()); 
    477 end 
    478  
    479 rule "different status" 
    480         no-loop true 
    481         when 
    482                 $q: CCQuery() 
    483                 $qad: ActionDetail($st1 : status) from $q.actionDetail 
    484                 $cad: CandidateEvent(extension not contains "status", phase != $q.numField) 
    485                 $ad: ActionDetail(status != $st1) from $cad.actionDetail         
    486         then 
    487                 modify ($cad) 
    488                 { 
    489                         increasePhase(),  
    490                         setExtension("status"), 
    491                         updateEvaluation(0.8f)           
    492                 } 
    493                 #System.out.println("Evaluation " + $cad.getEvaluation()); 
    494                 #System.out.println("different status " + $ad.getID()); 
     517                        updateEvaluation(0.8f)           
     518                } 
     519                #System.out.println("Evaluation " + $cad.getEvaluation()); 
     520                #System.out.println("different/empty status " + $ad.getID()); 
    495521end 
    496522 
    497523rule "same speechActMeaning" 
     524        no-loop true 
     525        when 
     526                $q: CCQuery() 
     527                $qad: ActionDetail($sa1 : speechActMeaning != null) from $q.actionDetail 
     528                $cad: CandidateEvent(extension not contains "speechActMeaning", phase != $q.numField) 
     529                $ad: ActionDetail(speechActMeaning == $sa1) from $cad.actionDetail       
     530        then 
     531                modify ($cad) 
     532                { 
     533                        increasePhase(),  
     534                        setExtension("speechActMeaning"), 
     535                        updateEvaluation(1.0f)           
     536                } 
     537                #System.out.println("Evaluation " + $cad.getEvaluation()); 
     538                #System.out.println("same speechActMeaning " + $ad.getID()); 
     539end 
     540 
     541rule "different speechActMeaning" 
    498542        no-loop true 
    499543        when 
     
    501545                $qad: ActionDetail($sa1 : speechActMeaning) from $q.actionDetail 
    502546                $cad: CandidateEvent(extension not contains "speechActMeaning", phase != $q.numField) 
    503                 $ad: ActionDetail(speechActMeaning == $sa1) from $cad.actionDetail       
     547                $ad: ActionDetail((speechActMeaning != $sa1)  || ((speechActMeaning == $sa1) && (speechActMeaning == null))) from $cad.actionDetail      
    504548        then 
    505549                modify ($cad) 
     
    507551                        increasePhase(),  
    508552                        setExtension("speechActMeaning"), 
    509                         updateEvaluation(1.0f)           
    510                 } 
    511                 #System.out.println("Evaluation " + $cad.getEvaluation()); 
    512                 #System.out.println("same speechActMeaning " + $ad.getID()); 
    513 end 
    514  
    515 rule "different speechActMeaning" 
    516         no-loop true 
    517         when 
    518                 $q: CCQuery() 
    519                 $qad: ActionDetail($sa1 : speechActMeaning) from $q.actionDetail 
    520                 $cad: CandidateEvent(extension not contains "speechActMeaning", phase != $q.numField) 
    521                 $ad: ActionDetail(speechActMeaning != $sa1) from $cad.actionDetail       
    522         then 
    523                 modify ($cad) 
    524                 { 
    525                         increasePhase(),  
    526                         setExtension("speechActMeaning"), 
    527                         updateEvaluation(0.8f)           
    528                 } 
    529                 #System.out.println("Evaluation " + $cad.getEvaluation()); 
    530                 #System.out.println("different speechActMeaning " + $ad.getID()); 
     553                        updateEvaluation(0.8f)           
     554                } 
     555                #System.out.println("Evaluation " + $cad.getEvaluation()); 
     556                #System.out.println("different/empty speechActMeaning " + $ad.getID()); 
    531557end 
    532558 
    533559rule "same multimediaPath" 
     560        no-loop true 
     561        when 
     562                $q: CCQuery() 
     563                $qad: ActionDetail($m1 : multimediaPath != null) from $q.actionDetail 
     564                $cad: CandidateEvent(extension not contains "multimediaPath", phase != $q.numField) 
     565                $ad: ActionDetail(multimediaPath == $m1) from $cad.actionDetail  
     566        then 
     567                modify ($cad) 
     568                { 
     569                        increasePhase(),  
     570                        setExtension("multimediaPath"), 
     571                        updateEvaluation(1.0f)           
     572                } 
     573                #System.out.println("Evaluation " + $cad.getEvaluation()); 
     574                #System.out.println("same multimediaPath " + $ad.getID()); 
     575end 
     576 
     577rule "different multimediaPath" 
    534578        no-loop true 
    535579        when 
     
    537581                $qad: ActionDetail($m1 : multimediaPath) from $q.actionDetail 
    538582                $cad: CandidateEvent(extension not contains "multimediaPath", phase != $q.numField) 
    539                 $ad: ActionDetail(multimediaPath == $m1) from $cad.actionDetail  
     583                $ad: ActionDetail((multimediaPath != $m1) || ((multimediaPath == $m1) && (multimediaPath == null))) from $cad.actionDetail       
    540584        then 
    541585                modify ($cad) 
     
    543587                        increasePhase(),  
    544588                        setExtension("multimediaPath"), 
    545                         updateEvaluation(1.0f)           
    546                 } 
    547                 System.out.println("Evaluation " + $cad.getEvaluation()); 
    548                 System.out.println("same multimediaPath " + $ad.getID()); 
    549 end 
    550  
    551 rule "different multimediaPath" 
    552         no-loop true 
    553         when 
    554                 $q: CCQuery() 
    555                 $qad: ActionDetail($m1 : multimediaPath) from $q.actionDetail 
    556                 $cad: CandidateEvent(extension not contains "multimediaPath", phase != $q.numField) 
    557                 $ad: ActionDetail(multimediaPath != $m1) from $cad.actionDetail  
    558         then 
    559                 modify ($cad) 
    560                 { 
    561                         increasePhase(),  
    562                         setExtension("multimediaPath"), 
    563                         updateEvaluation(0.8f)           
    564                 } 
    565                 System.out.println("Evaluation " + $cad.getEvaluation()); 
    566                 System.out.println("different multimediaPath " + $ad.getID()); 
     589                        updateEvaluation(0.8f)           
     590                } 
     591                #System.out.println("Evaluation " + $cad.getEvaluation()); 
     592                #System.out.println("different/empty multimediaPath " + $ad.getID()); 
     593end 
     594 
     595rule "same object" 
     596        no-loop true 
     597        when 
     598                $q: CCQuery() 
     599                $qad: ActionDetail($o1 : object != null) from $q.actionDetail 
     600                $cad: CandidateEvent(extension not contains "object", phase != $q.numField) 
     601                $ad: ActionDetail(object == $o1) from $cad.actionDetail  
     602        then 
     603                modify ($cad) 
     604                { 
     605                        increasePhase(),  
     606                        setExtension("object"), 
     607                        updateEvaluation(1.0f)           
     608                } 
     609                #System.out.println("Evaluation " + $cad.getEvaluation()); 
     610                #System.out.println("same object " + $ad.getID()); 
     611end 
     612 
     613rule "different object" 
     614        no-loop true 
     615        when 
     616                $q: CCQuery() 
     617                $qad: ActionDetail($o1 : object) from $q.actionDetail 
     618                $cad: CandidateEvent(extension not contains "object", phase != $q.numField) 
     619                $ad: ActionDetail((object != $o1) || ((object == $o1) && (object == null))) from $cad.actionDetail       
     620        then 
     621                modify ($cad) 
     622                { 
     623                        increasePhase(),  
     624                        setExtension("object"), 
     625                        updateEvaluation(0.8f)           
     626                } 
     627                #System.out.println("Evaluation " + $cad.getEvaluation()); 
     628                #System.out.println("different/empty object " + $ad.getID()); 
    567629end 
    568630 
     
    582644                retract ($cad); 
    583645end 
    584  
    585 /*rule "same id" 
    586         no-loop true 
    587         when 
    588                 $q: CCQuery() 
    589                 $qad: ActionDetail($i1 : ID) from $q.actionDetail 
    590                 $cad: CandidateEvent(ID != true) 
    591                 $ad: ActionDetail(ID == $i1) from $cad.actionDetail      
    592         then             
    593                 modify ($cad) 
    594                 { 
    595                         increasePhase(),  
    596                         setExtension("id"), 
    597                         setID(true),     
    598                         updateEvaluation(1.0)    
    599                 } 
    600                 System.out.println("ID " + $i1); 
    601                 System.out.println("same id " + $ad.getID()); 
    602 end 
    603  
    604 rule "different id" 
    605         no-loop true 
    606         when 
    607                 $q: CCQuery() 
    608                 $qad: ActionDetail($i1 : ID) from $q.actionDetail 
    609                 $cad: CandidateEvent(ID != true) 
    610                 $ad: ActionDetail(ID != $i1) from $cad.actionDetail      
    611         then             
    612                 modify ($cad) 
    613                 { 
    614                         increasePhase(),  
    615                         setExtension("id"), 
    616                         setID(true),     
    617                         updateEvaluation(0.9)    
    618                 } 
    619                 System.out.println("ID " + $i1); 
    620                 System.out.println("different id " + $ad.getID()); 
    621 end*/ 
    622  
    623 /*rule "same subject" 
    624         no-loop true 
    625         when 
    626                 $q: CCQuery() 
    627                 $qad: ActionDetail($s1 : subject) from $q.actionDetail 
    628                 $cad: CandidateEvent(subject != true, phase != $q.numField) 
    629                 $ad: ActionDetail(subject == $s1) from $cad.actionDetail         
    630         then             
    631                 modify ($cad) 
    632                 { 
    633                         increasePhase(),  
    634                         setExtension("subject"), 
    635                         setSubject(true),        
    636                         updateEvaluation(1.0f)           
    637                 } 
    638                 System.out.println("Evaluation " + $cad.getEvaluation()); 
    639                 System.out.println("same subject " + $ad.getID()); 
    640 end 
    641  
    642 rule "different subject" 
    643         no-loop true 
    644         when 
    645                 $q: CCQuery() 
    646                 $qad: ActionDetail($s1 : subject) from $q.actionDetail 
    647                 $cad: CandidateEvent(subject != true, phase != $q.numField) 
    648                 $ad: ActionDetail(subject != $s1) from $cad.actionDetail         
    649         then             
    650                 modify ($cad) 
    651                 { 
    652                         increasePhase(),  
    653                         setExtension("subject"), 
    654                         setSubject(true),        
    655                         updateEvaluation(0.8f)           
    656                 } 
    657                 System.out.println("Evaluation " + $cad.getEvaluation()); 
    658                 System.out.println("different subject " + $ad.getID()); 
    659 end 
    660  
    661 rule "same target" 
    662         no-loop true 
    663         when 
    664                 $q: CCQuery() 
    665                 $qad: ActionDetail($t1 : target) from $q.actionDetail 
    666                 $cad: CandidateEvent(target != true, phase != $q.numField) 
    667                 $ad: ActionDetail(target == $t1) from $cad.actionDetail  
    668         then 
    669                 modify ($cad) 
    670                 { 
    671                         increasePhase(),  
    672                         setExtension("target"), 
    673                         setTarget(true), 
    674                         updateEvaluation(1.0f)                   
    675                 } 
    676                 System.out.println("Evaluation " + $cad.getEvaluation()); 
    677                 System.out.println("same target " + $ad.getID()); 
    678 end 
    679  
    680 rule "different target" 
    681         no-loop true 
    682         when 
    683                 $q: CCQuery() 
    684                 $qad: ActionDetail($t1 : target) from $q.actionDetail 
    685                 $cad: CandidateEvent(target != true, phase != $q.numField) 
    686                 $ad: ActionDetail(target != $t1) from $cad.actionDetail  
    687         then 
    688                 modify ($cad) 
    689                 { 
    690                         increasePhase(),  
    691                         setExtension("target"), 
    692                         setTarget(true), 
    693                         updateEvaluation(0.8f)                   
    694                 } 
    695                 System.out.println("Evaluation " + $cad.getEvaluation()); 
    696                 System.out.println("different target " + $ad.getID()); 
    697 end 
    698  
    699 rule "same action" 
    700         no-loop true 
    701         when 
    702                 $q: CCQuery() 
    703                 $qad: ActionDetail($a1 : action) from $q.actionDetail 
    704                 $cad: CandidateEvent(action != true, phase != $q.numField) 
    705                 $ad: ActionDetail(action == $a1) from $cad.actionDetail  
    706         then 
    707                 modify ($cad) 
    708                 { 
    709                         increasePhase(),  
    710                         setExtension("action"), 
    711                         setAction(true), 
    712                         updateEvaluation(1.0f)           
    713                 } 
    714                 System.out.println("Evaluation " + $cad.getEvaluation()); 
    715                 System.out.println("same action " + $ad.getID()); 
    716 end 
    717  
    718 rule "different action" 
    719         no-loop true 
    720         when 
    721                 $q: CCQuery() 
    722                 $qad: ActionDetail($a1 : action) from $q.actionDetail 
    723                 $cad: CandidateEvent(action != true, phase != $q.numField) 
    724                 $ad: ActionDetail(action != $a1) from $cad.actionDetail  
    725         then 
    726                 modify ($cad) 
    727                 { 
    728                         increasePhase(),  
    729                         setExtension("action"), 
    730                         setAction(true), 
    731                         updateEvaluation(0.8f)           
    732                 } 
    733                 System.out.println("Evaluation " + $cad.getEvaluation()); 
    734                 System.out.println("different action " + $ad.getID()); 
    735 end 
    736  
    737 rule "same location" 
    738         no-loop true 
    739         when 
    740                 $q: CCQuery() 
    741                 $qad: ActionDetail($l1 : location) from $q.actionDetail 
    742                 $cad: CandidateEvent(location != true, phase != $q.numField) 
    743                 $ad: ActionDetail(location == $l1) from $cad.actionDetail        
    744         then 
    745                 modify ($cad) 
    746                 { 
    747                         increasePhase(),  
    748                         setExtension("location"), 
    749                         setLocation(true), 
    750                         updateEvaluation(1.0f)           
    751                 } 
    752                 System.out.println("Evaluation " + $cad.getEvaluation()); 
    753                 System.out.println("same location " + $ad.getID()); 
    754 end 
    755  
    756 rule "different location" 
    757         no-loop true 
    758         when 
    759                 $q: CCQuery() 
    760                 $qad: ActionDetail($l1 : location) from $q.actionDetail 
    761                 $cad: CandidateEvent(location != true, phase != $q.numField) 
    762                 $ad: ActionDetail(location != $l1) from $cad.actionDetail        
    763         then 
    764                 modify ($cad) 
    765                 { 
    766                         increasePhase(),  
    767                         setExtension("location"), 
    768                         setLocation(true), 
    769                         updateEvaluation(0.8f)           
    770                 } 
    771                 System.out.println("Evaluation " + $cad.getEvaluation()); 
    772                 System.out.println("different location " + $ad.getID()); 
    773 end 
    774  
    775 rule "same emotion" 
    776         no-loop true 
    777         when 
    778                 $q: CCQuery() 
    779                 $qad: ActionDetail($e1 : emotion) from $q.actionDetail 
    780                 $cad: CandidateEvent(emotion != true, phase != $q.numField) 
    781                 $ad: ActionDetail(emotion == $e1) from $cad.actionDetail         
    782         then 
    783                 modify ($cad) 
    784                 { 
    785                         increasePhase(),  
    786                         setExtension("emotion"), 
    787                         setEmotion(true), 
    788                         updateEvaluation(1.0f)           
    789                 } 
    790                 System.out.println("Evaluation " + $cad.getEvaluation()); 
    791                 System.out.println("same emotion " + $ad.getID()); 
    792 end 
    793  
    794 rule "different emotion" 
    795         no-loop true 
    796         when 
    797                 $q: CCQuery() 
    798                 $qad: ActionDetail($e1 : emotion) from $q.actionDetail 
    799                 $cad: CandidateEvent(emotion != true, phase != $q.numField) 
    800                 $ad: ActionDetail(emotion != $e1) from $cad.actionDetail         
    801         then 
    802                 modify ($cad) 
    803                 { 
    804                         increasePhase(),  
    805                         setExtension("emotion"), 
    806                         setEmotion(true), 
    807                         updateEvaluation(1.0f)           
    808                 } 
    809                 System.out.println("Evaluation " + $cad.getEvaluation()); 
    810                 System.out.println("different emotion " + $ad.getID()); 
    811 end 
    812  
    813 rule "end match"  
    814         no-loop true 
    815         when  
    816                 $q: CCQuery() 
    817                 $cad: CandidateEvent(phase == $q.numField) 
    818                 $ad: ActionDetail() from $cad.actionDetail       
    819         then 
    820                 modify ($q) 
    821                 { 
    822                         setResults($ad.getID(), $cad.getEvaluation()) 
    823                 } 
    824                 System.out.println("Evaluation " + $cad.getEvaluation()); 
    825                 System.out.println("end match " + $ad.getID()); 
    826                 retract ($cad); 
    827 end*/ 
    828  
  • AgentMind/trunk/AgentMind/MemoryProcesses/src/main/rules/Generalise.drl

    r324 r328  
    11#created on: 18-Mar-2010 
     2#author : Mei Yii Lim 
    23package MemoryProcesses 
    34 
     
    2526        when 
    2627                $ep: EventPair($id2 : ID2, extension not contains "subject") 
    27                 $ad1: ActionDetail($s1 : subject) from $ep.actionDetail 
     28                $ad1: ActionDetail($s1 : subject != null) from $ep.actionDetail 
    2829                $ad2: ActionDetail(ID == $id2, subject == $s1) 
    2930        then                     
     
    4142        when 
    4243                $ep: EventPair($id2 : ID2, extension not contains "target") 
    43                 $ad1: ActionDetail($t1 : target) from $ep.actionDetail 
     44                $ad1: ActionDetail($t1 : target != null) from $ep.actionDetail 
    4445                $ad2: ActionDetail(ID == $id2, target == $t1) 
    4546        then                     
     
    5758        when 
    5859                $ep: EventPair($id2 : ID2, extension not contains "action") 
    59                 $ad1: ActionDetail($a1 : action) from $ep.actionDetail 
     60                $ad1: ActionDetail($a1 : action != null) from $ep.actionDetail 
    6061                $ad2: ActionDetail(ID == $id2, action == $a1) 
    6162        then                     
     
    7374        when 
    7475                $ep: EventPair($id2 : ID2, extension not contains "intention") 
    75                 $ad1: ActionDetail($i1 : intention) from $ep.actionDetail 
     76                $ad1: ActionDetail($i1 : intention != null) from $ep.actionDetail 
    7677                $ad2: ActionDetail(ID == $id2, intention == $i1) 
    7778        then                     
     
    8990        when 
    9091                $ep: EventPair($id2 : ID2, extension not contains "status") 
    91                 $ad1: ActionDetail($st1 : status) from $ep.actionDetail 
     92                $ad1: ActionDetail($st1 : status != null) from $ep.actionDetail 
    9293                $ad2: ActionDetail(ID == $id2, status == $st1) 
    9394        then                     
     
    9899                } 
    99100                System.out.println("match status " + $ad1.getID() + " " + $id2);                 
     101end 
     102 
     103rule "match speechActMeaning" 
     104        no-loop true 
     105        salience 75 
     106        when 
     107                $ep: EventPair($id2 : ID2, extension not contains "speechActMeaning") 
     108                $ad1: ActionDetail($sa1 : speechActMeaning != null) from $ep.actionDetail 
     109                $ad2: ActionDetail(ID == $id2, speechActMeaning == $sa1) 
     110        then                     
     111                modify ($ep) 
     112                { 
     113                        setExtension("speechActMeaning"), 
     114                        setMatchingValues("speechActMeaning", $sa1) 
     115                } 
     116                System.out.println("match speechActMeaning " + $ad1.getID() + " " + $id2);               
     117end 
     118 
     119rule "match multimediaPath" 
     120        no-loop true 
     121        salience 75 
     122        when 
     123                $ep: EventPair($id2 : ID2, extension not contains "multimediaPath") 
     124                $ad1: ActionDetail($m1 : multimediaPath != null) from $ep.actionDetail 
     125                $ad2: ActionDetail(ID == $id2, multimediaPath == $m1) 
     126        then                     
     127                modify ($ep) 
     128                { 
     129                        setExtension("multimediaPath"), 
     130                        setMatchingValues("multimediaPath", $m1) 
     131                } 
     132                System.out.println("match multimediaPath " + $ad1.getID() + " " + $id2);                 
     133end 
     134 
     135rule "match object" 
     136        no-loop true 
     137        salience 75 
     138        when 
     139                $ep: EventPair($id2 : ID2, extension not contains "object") 
     140                $ad1: ActionDetail($o1 : object != null) from $ep.actionDetail 
     141                $ad2: ActionDetail(ID == $id2, object == $o1) 
     142        then                     
     143                modify ($ep) 
     144                { 
     145                        setExtension("object"), 
     146                        setMatchingValues("object", $o1) 
     147                } 
     148                System.out.println("match object " + $ad1.getID() + " " + $id2);                 
     149end 
     150 
     151rule "match location" 
     152        no-loop true 
     153        salience 75 
     154        when 
     155                $ep: EventPair($id2 : ID2, extension not contains "location") 
     156                $ad1: ActionDetail($l1 : location != null) from $ep.actionDetail 
     157                $ad2: ActionDetail(ID == $id2, location == $l1) 
     158        then                     
     159                modify ($ep) 
     160                { 
     161                        setExtension("location"), 
     162                        setMatchingValues("location", $l1) 
     163                } 
     164                System.out.println("match location " + $ad1.getID() + " " + $id2);               
    100165end 
    101166 
  • AgentMind/trunk/AgentMind/MemoryProcesses/src/main/rules/SpreadActivate.drl

    r323 r328  
    138138                System.out.println("MultimediaPath " + $m1); 
    139139                System.out.println("multimedia-multimedia " + $ad.getID()); 
     140end 
     141 
     142rule "object-object phase1" 
     143        no-loop true 
     144        salience 50 
     145        when 
     146                $q: SAQuery($o1: object) 
     147                $ad: ActionDetail(object == $o1)                         
     148        then 
     149                insert (new CandidateEvent($ad, "object", 1.0f)); 
     150                retract ($ad); 
     151                System.out.println("Object " + $o1); 
     152                System.out.println("object-object " + $ad.getID()); 
    140153end 
    141154 
     
    261274end 
    262275 
     276rule "object-object" 
     277        no-loop true 
     278        when 
     279                $q: SAQuery($o1: object) 
     280                $cad: CandidateEvent(extension not contains "object") 
     281                $ad: ActionDetail(object == $o1) from $cad.actionDetail          
     282        then 
     283                modify ($cad) { 
     284                        increasePhase(),  
     285                        setExtension("object") 
     286                } 
     287                System.out.println("Object " + $o1); 
     288                System.out.println("object-object " + $ad.getID()); 
     289end 
     290 
    263291rule "positive desirability" 
    264292        no-loop true 
     
    423451                        setResults($m) 
    424452                } 
    425                 System.out.println("Location " + $m); 
     453                System.out.println("MultimediaPath " + $m); 
     454                System.out.println("Retracted " + $ad.getID()); 
     455                retract ($cad);                  
     456end 
     457 
     458rule "object" 
     459        no-loop true 
     460        when 
     461                $q: SAQuery(question == "object") 
     462                $cad: CandidateEvent( phase == $q.numKnownVar ) 
     463                $ad: ActionDetail($o: object) from $cad.actionDetail             
     464        then                     
     465                modify ($q) { 
     466                        setResults($o) 
     467                } 
     468                System.out.println("Object " + $o); 
    426469                System.out.println("Retracted " + $ad.getID()); 
    427470                retract ($cad);                  
  • AgentMind/trunk/AgentMind/WorldTest/src/UserInterface.java

    r323 r328  
    219219        _queryOptions.addItem("intention"); 
    220220        _queryOptions.addItem("status"); 
     221        _queryOptions.addItem("object"); 
    221222        _queryOptions.addItem("events"); 
    222223                _queryOptions.addActionListener(new ActionListener(){ 
Note: See TracChangeset for help on using the changeset viewer.