source: AgentMind/trunk/AgentMind/MemoryProcesses/src/main/rules/SpreadActivate.drl @ 309

Revision 309, 10.6 KB checked in by joao.dias, 11 years ago (diff)

minor changes to S.S and C.C return values.

Line 
1#created on: 19-Nov-2009
2#author : Mei Yii Lim
3
4package MemoryProcesses
5
6#list any import classes here.
7
8import FAtiMA.memory.episodicMemory.ActionDetail;
9
10
11#declare any global variables here
12rule "positive desirability phase1"
13        no-loop true
14        salience 50
15        when
16                $q: SAQuery($d1: desirability > 0)
17                $ad: ActionDetail(desirability >= $d1) 
18        then           
19                insert (new CandidateEvent($ad, "desirability", 1.0f));
20                retract ($ad);
21                System.out.println("Desirability " + $d1);
22                System.out.println("positive desirability " + $ad.getID());
23end
24
25rule "negative desirability phase1"
26        no-loop true
27        salience 50
28        when
29                $q: SAQuery($d1: desirability < 0)
30                $ad: ActionDetail(desirability <= $d1) 
31        then           
32                insert (new CandidateEvent($ad, "desirability", 1.0f));
33                retract ($ad);
34                System.out.println("Desirability " + $d1);
35                System.out.println("negative desirability " + $ad.getID());
36end
37
38rule "subject-subject phase1"
39        no-loop true
40        salience 50
41        when
42                $q: SAQuery($s1: subject)
43                $ad: ActionDetail(subject == $s1)       
44        then           
45                insert (new CandidateEvent($ad, "subject", 1.0f));
46                retract ($ad);
47                System.out.println("Subject " + $s1);
48                System.out.println("subject-subject " + $ad.getID());
49end
50
51rule "target-target phase1"
52        no-loop true
53        salience 50
54        when
55                $q: SAQuery($t1: target)
56                $ad: ActionDetail(target == $t1)       
57        then
58                insert (new CandidateEvent($ad, "target", 1.0f));
59                retract ($ad);
60                System.out.println("Target " + $t1);
61                System.out.println("target-target " + $ad.getID());
62end
63
64rule "action-action phase1"
65        no-loop true
66        salience 50
67        when
68                $q: SAQuery($a1: action)
69                $ad: ActionDetail(action == $a1)
70        then
71                insert (new CandidateEvent($ad, "action", 1.0f));
72                retract ($ad);
73                System.out.println("Action " + $a1);
74                System.out.println("action-action " + $ad.getID());
75end
76
77#rule "location-location phase1"
78#       no-loop true
79#       salience 50
80#       when
81#               $q: SAQuery($l1: location)
82#               $ad: ActionDetail(location == $l1)                     
83#       then
84#               insert (new CandidateEvent($ad, "location", 1.0f));
85#               retract ($ad);
86#               System.out.println("Location " + $l1);
87#               System.out.println("location-location " + $ad.getID());
88#end
89
90rule "intention-intention phase1"
91        no-loop true
92        salience 50
93        when
94                $q: SAQuery($i1: intention)
95                $ad: ActionDetail(intention == $i1)
96        then
97                insert (new CandidateEvent($ad, "action", 1.0f));
98                retract ($ad);
99                System.out.println("Intention " + $i1);
100                System.out.println("intention-intention " + $ad.getID());
101end
102
103rule "status-status phase1"
104        no-loop true
105        salience 50
106        when
107                $q: SAQuery($st1: status)
108                $ad: ActionDetail(status == $st1)
109        then
110                insert (new CandidateEvent($ad, "status", 1.0f));
111                retract ($ad);
112                System.out.println("Status " + $st1);
113                System.out.println("status-status " + $ad.getID());
114end
115
116rule "speechAct-speechAct phase1"
117        no-loop true
118        salience 50
119        when
120                $q: SAQuery($sa1: speechActMeaning)
121                $ad: ActionDetail(speechActMeaning == $sa1)
122        then
123                insert (new CandidateEvent($ad, "speechActMeaning", 1.0f));
124                retract ($ad);
125                System.out.println("SpeechActMeaning " + $sa1);
126                System.out.println("speechAct-speechAct " + $ad.getID());
127end
128
129rule "multimedia-multimedia phase1"
130        no-loop true
131        salience 50
132        when
133                $q: SAQuery($m1: multimediaPath)
134                $ad: ActionDetail(multimediaPath == $m1)                       
135        then
136                insert (new CandidateEvent($ad, "multimediaPath", 1.0f));
137                retract ($ad);
138                System.out.println("MultimediaPath " + $m1);
139                System.out.println("multimedia-multimedia " + $ad.getID());
140end
141
142rule "subject-subject"
143        no-loop true
144        when
145                $q: SAQuery($s1: subject)
146                $cad: CandidateEvent(extension not contains "subject")
147                $ad: ActionDetail(subject == $s1) from $cad.actionDetail               
148        then           
149                modify ($cad)
150                {
151                        increasePhase(),
152                        setExtension("subject")
153                }
154                System.out.println("Subject " + $s1);
155                System.out.println("subject-subject " + $ad.getID());
156end
157
158rule "target-target"
159        no-loop true
160        when
161                $q: SAQuery($t1: target)
162                $cad: CandidateEvent(extension not contains "target")
163                $ad: ActionDetail(target == $t1) from $cad.actionDetail         
164        then
165                modify ($cad) {
166                        increasePhase(),
167                        setExtension("target")
168                }
169                System.out.println("Target " + $t1);
170                System.out.println("target-target " + $ad.getID());
171end
172
173rule "action-action"
174        no-loop true
175        when
176                $q: SAQuery($a1: action)
177                $cad: CandidateEvent(extension not contains "action")
178                $ad: ActionDetail(action == $a1) from $cad.actionDetail         
179        then
180                modify ($cad) {
181                        increasePhase(),
182                        setExtension("action")
183                }
184                System.out.println("Action " + $a1);
185                System.out.println("action-action " + $ad.getID());
186end
187
188rule "location-location"
189        no-loop true
190        when
191                $q: SAQuery($l1: location)
192                $cad: CandidateEvent(extension not contains "location")
193                $ad: ActionDetail(location == $l1) from $cad.actionDetail               
194        then
195                modify ($cad) {
196                        increasePhase(),
197                        setExtension("location")
198                }
199                System.out.println("Location " + $l1);
200                System.out.println("location-location " + $ad.getID());
201end
202
203rule "intention-intention"
204        no-loop true
205        when
206                $q: SAQuery($i1: intention)
207                $cad: CandidateEvent(extension not contains "intention")
208                $ad: ActionDetail(intention == $i1) from $cad.actionDetail             
209        then
210                modify ($cad) {
211                        increasePhase(),
212                        setExtension("intention")
213                }
214                System.out.println("Intention " + $i1);
215                System.out.println("intention-intention " + $ad.getID());
216end
217
218rule "status-status"
219        no-loop true
220        when
221                $q: SAQuery($st1: status)
222                $cad: CandidateEvent(extension not contains "status")
223                $ad: ActionDetail(status == $st1) from $cad.actionDetail               
224        then
225                modify ($cad) {
226                        increasePhase(),
227                        setExtension("status")
228                }
229                System.out.println("Status " + $st1);
230                System.out.println("status-status " + $ad.getID());
231end
232
233rule "speechAct-speechAct"
234        no-loop true
235        when
236                $q: SAQuery($sa1: speechActMeaning)
237                $cad: CandidateEvent(extension not contains "speechActMeaning")
238                $ad: ActionDetail(speechActMeaning == $sa1) from $cad.actionDetail             
239        then
240                modify ($cad) {
241                        increasePhase(),
242                        setExtension("speechActMeaning")
243                }
244                System.out.println("SpeechActMeaning " + $sa1);
245                System.out.println("speechAct-speechAct " + $ad.getID());
246end
247
248rule "multimedia-multimedia"
249        no-loop true
250        when
251                $q: SAQuery($m1: multimediaPath)
252                $cad: CandidateEvent(extension not contains "multimediaPath")
253                $ad: ActionDetail(multimediaPath == $m1) from $cad.actionDetail         
254        then
255                modify ($cad) {
256                        increasePhase(),
257                        setExtension("multimediaPath")
258                }
259                System.out.println("MultimediaPath " + $m1);
260                System.out.println("multimedia-multimedia " + $ad.getID());
261end
262
263rule "positive desirability"
264        no-loop true
265        when
266                $q: SAQuery($d1: desirability > 0)
267                $cad: CandidateEvent(extension not contains "desirability")
268                $ad: ActionDetail(desirability >= $d1) from $cad.actionDetail           
269        then           
270                modify ($cad)
271                {
272                        increasePhase(),
273                        setExtension("desirability")
274                }
275                System.out.println("Desirability " + $d1);
276                System.out.println("positive desirability " + $ad.getID());
277end
278
279rule "negative desirability"
280        no-loop true
281        when
282                $q: SAQuery($d1: desirability < 0)
283                $cad: CandidateEvent(extension not contains "desirability")
284                $ad: ActionDetail(desirability <= $d1) from $cad.actionDetail           
285        then           
286                modify ($cad)
287                {
288                        increasePhase(),
289                        setExtension("desirability")
290                }
291                System.out.println("Desirability " + $d1);
292                System.out.println("negative desirability " + $ad.getID());
293end
294
295rule "id"
296        no-loop true
297        when
298                $q: SAQuery(question == "ID")
299                $cad: CandidateEvent( phase == $q.numKnownVar )
300                $ad: ActionDetail($id: ID) from $cad.actionDetail               
301        then                   
302                modify ($q) {
303                        setResultIDs($id)
304                }
305                System.out.println("Event ID " + $id);
306                System.out.println("Retracted " + $ad.getID() + "\n");
307                retract ($cad);                 
308end
309
310rule "subject"
311        no-loop true
312        when
313                $q: SAQuery(question == "subject")
314                $cad: CandidateEvent( phase == $q.numKnownVar )
315                $ad: ActionDetail($s: subject) from $cad.actionDetail           
316        then                   
317                modify ($q) {
318                        setResults($s)
319                }
320                System.out.println("Subject " + $s);
321                System.out.println("Retracted " + $ad.getID() + "\n");
322                retract ($cad);                 
323end
324
325rule "target"
326        no-loop true
327        when
328                $q: SAQuery(question == "target")
329                $cad: CandidateEvent( phase == $q.numKnownVar )
330                $ad: ActionDetail($t: target) from $cad.actionDetail           
331        then                   
332                modify ($q) {
333                        setResults($t)
334                }
335                System.out.println("Target " + $t);
336                System.out.println("Retracted " + $ad.getID() + "\n");
337                retract ($cad);                 
338end
339
340rule "action"
341        no-loop true
342        when
343                $q: SAQuery(question == "action")
344                $cad: CandidateEvent( phase == $q.numKnownVar )
345                $ad: ActionDetail ($a: action) from $cad.actionDetail   
346        then                   
347                modify ($q) {
348                        setDetails($ad, $a)
349                }
350                System.out.println("Action " + $a);
351                System.out.println("Retracted " + $ad.getID() + "\n");
352                retract ($cad);                 
353end
354
355rule "location"
356        no-loop true
357        when
358                $q: SAQuery(question == "location")
359                $cad: CandidateEvent( phase == $q.numKnownVar )
360                $ad: ActionDetail($l: location) from $cad.actionDetail         
361        then                   
362                modify ($q) {
363                        setResults($l)
364                }
365                System.out.println("Location " + $l);
366                System.out.println("Retracted " + $ad.getID());
367                retract ($cad);                 
368end
369
370rule "intention"
371        no-loop true
372        when
373                $q: SAQuery(question == "intention")
374                $cad: CandidateEvent( phase == $q.numKnownVar )
375                $ad: ActionDetail($i: intention) from $cad.actionDetail         
376        then                   
377                modify ($q) {
378                        setResults($i)
379                }
380                System.out.println("Intention " + $i);
381                System.out.println("Retracted " + $ad.getID());
382                retract ($cad);                 
383end
384
385rule "status"
386        no-loop true
387        when
388                $q: SAQuery(question == "status")
389                $cad: CandidateEvent( phase == $q.numKnownVar )
390                $ad: ActionDetail($st: status) from $cad.actionDetail           
391        then                   
392                modify ($q) {
393                        setResults($st)
394                }
395                System.out.println("Status " + $st);
396                System.out.println("Retracted " + $ad.getID());
397                retract ($cad);                 
398end
399
400rule "speechActMeaning"
401        no-loop true
402        when
403                $q: SAQuery(question == "speechActMeaning")
404                $cad: CandidateEvent( phase == $q.numKnownVar )
405                $ad: ActionDetail($sa: speechActMeaning) from $cad.actionDetail         
406        then                   
407                modify ($q) {
408                        setResults($sa)
409                }
410                System.out.println("SpeechActMeaning " + $sa);
411                System.out.println("Retracted " + $ad.getID());
412                retract ($cad);                 
413end
414
415rule "multimediaPath"
416        no-loop true
417        when
418                $q: SAQuery(question == "multimediaPath")
419                $cad: CandidateEvent( phase == $q.numKnownVar )
420                $ad: ActionDetail($m: multimediaPath) from $cad.actionDetail           
421        then                   
422                modify ($q) {
423                        setResults($m)
424                }
425                System.out.println("Location " + $m);
426                System.out.println("Retracted " + $ad.getID());
427                retract ($cad);                 
428end
429
Note: See TracBrowser for help on using the repository browser.