source: AgentMind/trunk/AgentMind/MemoryProcesses/src/main/rules/CompoundCue.drl @ 323

Revision 323, 21.5 KB checked in by myl, 11 years ago (diff)

Spreading activation with generalisation - Find sets of events that satisfy certain parameter values and then find the commonalities between these events. Returns groups of events with the highest matches.

Line 
1#created on: 19-Nov-2009
2#author : Mei Yii Lim
3
4package MemoryProcesses
5
6#list any import classes here.
7import FAtiMA.memory.episodicMemory.ActionDetail;
8
9#declare any global variables here
10
11rule "same subject phase1"
12        no-loop true
13        salience 50
14        when
15                $q: CCQuery()
16                $qad: ActionDetail($s1 : subject) from $q.actionDetail
17                $ad: ActionDetail(subject == $s1)
18        then           
19                insert (new CandidateEvent($ad, "subject", 1.0f));
20                retract ($ad);
21                #System.out.println("same subject " + $ad.getID());
22end
23
24rule "different subject phase1"
25        no-loop true
26        salience 50
27        when
28                $q: CCQuery()
29                $qad: ActionDetail($s1 : subject) from $q.actionDetail
30                $ad: ActionDetail(subject != $s1)
31        then           
32                insert (new CandidateEvent($ad, "subject", 0.8f));
33                retract ($ad);
34                #System.out.println("different subject " + $ad.getID());
35end
36
37rule "same target phase1"
38        no-loop true
39        salience 50
40        when
41                $q: CCQuery()
42                $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());
48end
49
50rule "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)
57        then
58                insert (new CandidateEvent($ad, "target", 0.8f));
59                retract ($ad);
60                #System.out.println("different target " + $ad.getID());
61end
62
63rule "same action phase1"
64        no-loop true
65        salience 50
66        when
67                $q: CCQuery()
68                $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());
74end
75
76rule "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)
83        then
84                insert (new CandidateEvent($ad, "action", 0.8f));
85                retract ($ad);
86                #System.out.println("different action " + $ad.getID());
87end
88
89rule "same location phase1"
90        no-loop true
91        salience 50
92        when
93                $q: CCQuery()
94                $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());
100end
101
102rule "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)
109        then
110                insert (new CandidateEvent($ad, "location", 0.8f));
111                retract ($ad);
112                #System.out.println("different location " + $ad.getID());
113end
114
115rule "same emotion phase1"
116        no-loop true
117        salience 50
118        when
119                $q: CCQuery()
120                $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());
126end
127
128rule "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)
135        then
136                insert (new CandidateEvent($ad, "emotion", 0.8f));
137                retract ($ad);
138                #System.out.println("different emotion " + $ad.getID());
139end
140
141rule "same intention phase1"
142        no-loop true
143        salience 50
144        when
145                $q: CCQuery()
146                $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());
152end
153
154rule "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)
161        then
162                insert (new CandidateEvent($ad, "intention", 0.8f));
163                retract ($ad);
164                #System.out.println("different intention " + $ad.getID());
165end
166
167rule "same status phase1"
168        no-loop true
169        salience 50
170        when
171                $q: CCQuery()
172                $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());
178end
179
180rule "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)
187        then
188                insert (new CandidateEvent($ad, "status", 0.8f));
189                retract ($ad);
190                #System.out.println("different status " + $ad.getID());
191end
192
193rule "same speechActMeaning phase1"
194        no-loop true
195        salience 50
196        when
197                $q: CCQuery()
198                $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());
204end
205
206rule "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)
213        then
214                insert (new CandidateEvent($ad, "speechActMeaning", 0.8f));
215                retract ($ad);
216                #System.out.println("different speechActMeaning " + $ad.getID());
217end
218
219rule "same multimediaPath phase1"
220        no-loop true
221        salience 50
222        when
223                $q: CCQuery()
224                $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());
230end
231
232rule "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)
239        then
240                insert (new CandidateEvent($ad, "multimediaPath", 0.8f));
241                retract ($ad);
242                #System.out.println("different multimediaPath " + $ad.getID());
243end
244
245rule "same subject"
246        no-loop true
247        when
248                $q: CCQuery()
249                $qad: ActionDetail($s1 : subject) from $q.actionDetail
250                $cad: CandidateEvent(extension not contains "subject", phase != $q.numField)
251                $ad: ActionDetail(subject == $s1) from $cad.actionDetail       
252        then           
253                modify ($cad)
254                {
255                        increasePhase(),
256                        setExtension("subject"),
257                        updateEvaluation(1.0f)         
258                }
259                #System.out.println("Evaluation " + $cad.getEvaluation());
260                #System.out.println("same subject " + $ad.getID());
261end
262
263rule "different subject"
264        no-loop true
265        when
266                $q: CCQuery()
267                $qad: ActionDetail($s1 : subject) from $q.actionDetail
268                $cad: CandidateEvent(extension not contains "subject", phase != $q.numField)
269                $ad: ActionDetail(subject != $s1) from $cad.actionDetail       
270        then           
271                modify ($cad)
272                {
273                        increasePhase(),
274                        setExtension("subject"),       
275                        updateEvaluation(0.8f)         
276                }
277                #System.out.println("Evaluation " + $cad.getEvaluation());
278                #System.out.println("different subject " + $ad.getID());
279end
280
281rule "same target"
282        no-loop true
283        when
284                $q: CCQuery()
285                $qad: ActionDetail($t1 : target) from $q.actionDetail
286                $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());
297end
298
299rule "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
306        then
307                modify ($cad)
308                {
309                        increasePhase(),
310                        setExtension("target"),
311                        updateEvaluation(0.8f)                 
312                }
313                #System.out.println("Evaluation " + $cad.getEvaluation());
314                #System.out.println("different target " + $ad.getID());
315end
316
317rule "same action"
318        no-loop true
319        when
320                $q: CCQuery()
321                $qad: ActionDetail($a1 : action) from $q.actionDetail
322                $cad: CandidateEvent(extension not contains "action", phase != $q.numField)
323                $ad: ActionDetail(action == $a1) from $cad.actionDetail
324        then
325                modify ($cad)
326                {
327                        increasePhase(),
328                        setExtension("action"),
329                        updateEvaluation(1.0f)         
330                }
331                #System.out.println("Evaluation " + $cad.getEvaluation());
332                #System.out.println("same action " + $ad.getID());
333end
334
335rule "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());
351end
352
353rule "same location"
354        no-loop true
355        when
356                $q: CCQuery()
357                $qad: ActionDetail($l1 : location) from $q.actionDetail
358                $cad: CandidateEvent(extension not contains "location", phase != $q.numField)
359                $ad: ActionDetail(location == $l1) from $cad.actionDetail       
360        then
361                modify ($cad)
362                {
363                        increasePhase(),
364                        setExtension("location"),
365                        updateEvaluation(1.0f)         
366                }
367                #System.out.println("Evaluation " + $cad.getEvaluation());
368                #System.out.println("same location " + $ad.getID());
369end
370
371rule "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());
387end
388
389rule "same emotion"
390        no-loop true
391        when
392                $q: CCQuery()
393                $qad: ActionDetail($e1 : emotion) from $q.actionDetail
394                $cad: CandidateEvent(extension not contains "emotion", phase != $q.numField)
395                $ad: ActionDetail(emotion == $e1) from $cad.actionDetail       
396        then
397                modify ($cad)
398                {
399                        increasePhase(),
400                        setExtension("emotion"),
401                        updateEvaluation(1.0f)         
402                }
403                #System.out.println("Evaluation " + $cad.getEvaluation());
404                #System.out.println("same emotion " + $ad.getID());
405end
406
407rule "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());
423end
424
425rule "same intention"
426        no-loop true
427        when
428                $q: CCQuery()
429                $qad: ActionDetail($i1 : intention) from $q.actionDetail
430                $cad: CandidateEvent(extension not contains "intention", phase != $q.numField)
431                $ad: ActionDetail(intention == $i1) from $cad.actionDetail     
432        then
433                modify ($cad)
434                {
435                        increasePhase(),
436                        setExtension("intention"),
437                        updateEvaluation(1.0f)         
438                }
439                #System.out.println("Evaluation " + $cad.getEvaluation());
440                #System.out.println("same intention " + $ad.getID());
441end
442
443rule "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());
459end
460
461rule "same status"
462        no-loop true
463        when
464                $q: CCQuery()
465                $qad: ActionDetail($st1 : status) from $q.actionDetail
466                $cad: CandidateEvent(extension not contains "status", phase != $q.numField)
467                $ad: ActionDetail(status == $st1) from $cad.actionDetail       
468        then
469                modify ($cad)
470                {
471                        increasePhase(),
472                        setExtension("status"),
473                        updateEvaluation(1.0f)         
474                }
475                #System.out.println("Evaluation " + $cad.getEvaluation());
476                #System.out.println("same status " + $ad.getID());
477end
478
479rule "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());
495end
496
497rule "same speechActMeaning"
498        no-loop true
499        when
500                $q: CCQuery()
501                $qad: ActionDetail($sa1 : speechActMeaning) from $q.actionDetail
502                $cad: CandidateEvent(extension not contains "speechActMeaning", phase != $q.numField)
503                $ad: ActionDetail(speechActMeaning == $sa1) from $cad.actionDetail     
504        then
505                modify ($cad)
506                {
507                        increasePhase(),
508                        setExtension("speechActMeaning"),
509                        updateEvaluation(1.0f)         
510                }
511                #System.out.println("Evaluation " + $cad.getEvaluation());
512                #System.out.println("same speechActMeaning " + $ad.getID());
513end
514
515rule "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());
531end
532
533rule "same multimediaPath"
534        no-loop true
535        when
536                $q: CCQuery()
537                $qad: ActionDetail($m1 : multimediaPath) from $q.actionDetail
538                $cad: CandidateEvent(extension not contains "multimediaPath", phase != $q.numField)
539                $ad: ActionDetail(multimediaPath == $m1) from $cad.actionDetail
540        then
541                modify ($cad)
542                {
543                        increasePhase(),
544                        setExtension("multimediaPath"),
545                        updateEvaluation(1.0f)         
546                }
547                System.out.println("Evaluation " + $cad.getEvaluation());
548                System.out.println("same multimediaPath " + $ad.getID());
549end
550
551rule "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());
567end
568
569rule "end match"
570        no-loop true
571        when
572                $q: CCQuery()
573                $cad: CandidateEvent(phase == $q.numField)
574                $ad: ActionDetail() from $cad.actionDetail     
575        then
576                modify ($q)
577                {
578                        setResults($ad, $cad.getEvaluation())
579                }
580                System.out.println("Evaluation " + $cad.getEvaluation());
581                System.out.println("end match " + $ad.getID());
582                retract ($cad);
583end
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());
602end
603
604rule "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());
621end*/
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());
640end
641
642rule "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());
659end
660
661rule "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());
678end
679
680rule "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());
697end
698
699rule "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());
716end
717
718rule "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());
735end
736
737rule "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());
754end
755
756rule "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());
773end
774
775rule "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());
792end
793
794rule "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());
811end
812
813rule "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);
827end*/
828
Note: See TracBrowser for help on using the repository browser.