source: scenarios/GerminationX/oak/data/characters/minds/Actions.xml @ 437

Revision 437, 65.8 KB checked in by dave, 10 years ago (diff)

added germination x

Line 
1<DomainActions>
2        <!-- physical actions -->
3        <Action name="pick-from-floor([target])">
4                <PreConditions>
5                        <Property name="[AGENT](pose)" operator="=" value="standing"/>
6                </PreConditions>
7                <Effects>
8                        <Effect probability="1.0">
9                                <Property name="[target](on-top)" operator="=" value="none"/>
10                        </Effect>
11                        <Effect probability="1.0">
12                                <Property name="[AGENT](hold,[target])" operator="=" value="True"/>
13                        </Effect>
14                </Effects>
15        </Action>
16        <Action name="swipe([target])">
17                <PreConditions>
18                        <Property name="[AGENT](pose)" operator="=" value="standing"/>
19                        <Property name="[target](owner)" operator="=" value="[targetowner]"/>
20                        <RecentEvent occurred="True" subject="[AGENT]" action="Reply" target="[targetowner]" parameters="teasedefend,negativeanswer"/>
21                </PreConditions>
22                <Effects>
23                </Effects>
24        </Action>
25        <Action name="poke([target])">
26                <PreConditions>
27                        <Property name="[AGENT](pose)" operator="=" value="standing"/>
28                </PreConditions>
29                <Effects>
30                        <Effect probability="0.8">
31                                <Property name="[target](annoyed)" operator="=" value="True"/>
32                        </Effect>
33                </Effects>
34        </Action>
35        <Action name="steal([owner],[item])">
36                <PreConditions>
37                        <Property name="[item](type)" operator="=" value="object"/>
38                        <Property name="[item](owner)" operator="=" value="[owner]"/>
39                        <Property name="[owner]" operator="!=" value="[AGENT]"/>
40                </PreConditions>
41                <Effects>
42                        <Effect probability="1.0">
43                                <Property name="[AGENT](hasItem,[item])" operator="=" value="True"/>
44                        </Effect>
45                </Effects>
46        </Action>
47        <Action name="attack([target])">
48                <PreConditions>
49                        <Property name="[AGENT](pose)" operator="=" value="standing"/>
50                </PreConditions>
51                <Effects>
52                        <Effect probability="0.6">
53                                <Property name="[target](hurt)" operator="=" value="True"/>
54                        </Effect>
55                        <Effect probability="0.4">
56                                <Property name="[SELF](hurt)" operator="=" value="True"/>
57                        </Effect>
58                </Effects>
59        </Action>
60        <Action name="throw([target],[item])">
61                <PreConditions>
62                        <Property name="[AGENT](pose)" operator="=" value="standing"/>
63                        <Property name="[AGENT](hasItem,[item])" operator="=" value="True"/>
64                        <Property name="[Item](throwable)" operator="=" value="True"/>
65                </PreConditions>
66                <Effects>
67                        <Effect probability="1.0">
68                                <Property name="[AGENT](hasItem,[item])" operator="=" value="False"/>
69                        </Effect>
70                </Effects>
71        </Action>
72        <!-- Coping Strategy: walking away - not linked to graphics yet -->
73        <Action name="walkAway">
74                <PreConditions>
75                        <Property name="[AGENT](pose)" operator="=" value="standing"/>
76                        <!--<RecentEvent occurred="true" subject="[AGENT]" action="Question" target="[bully]" parameters="confrontationleave"/>-->
77                </PreConditions>
78                <Effects>
79                        <Effect probability="1.0">
80                                <Property name="[AGENT](needToCope)" operator="=" value="False"/>
81                        </Effect>
82                </Effects>
83        </Action>
84        <!-- Coping Strategy: walking away - not linked to graphics yet -->
85        <Action name="runAway">
86                <PreConditions>
87                        <Property name="[AGENT](pose)" operator="=" value="standing"/>
88                </PreConditions>
89                <Effects>
90                        <Effect probability="1.0">
91                                <Property name="[AGENT](needToCope)" operator="=" value="False"/>
92                        </Effect>
93                </Effects>
94        </Action>
95        <!-- PR 061123 added walkAwayVictim as a test - not linked to graphics yet-->
96        <Action name="walkAwayVictim([victim])" probability="0.3">
97                <PreConditions>
98                        <Property name="[AGENT](pose)" operator="=" value="standing"/>
99                </PreConditions>
100                <Effects>
101                </Effects>
102        </Action>
103       
104        <!-- User Speech  actions, interaction only -->
105        <Action name="UserSpeech([target],suggestcopingstrategy,[cs])" probability="0.8">
106                <PreConditions>
107                        <Property name="[AGENT]" operator="=" value="User"/>
108                        <Property name="SpeechContext()" operator="=" value="#EVENT([target],Question,[AGENT],askforadvice)"/>
109                </PreConditions>
110                <Effects>
111                        <Effect probability="1.0">
112                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],UserSpeech,[target],suggestcopingstrategy,[cs])"/>
113                        </Effect>
114                </Effects>
115        </Action>
116       
117        <Action name="UserSpeech([target],suggestcopingstrategy,[cs])" probability="0.3">
118                <PreConditions>
119                        <Property name="[AGENT]" operator="=" value="User"/>
120                        <Property name="SpeechContext()" operator="=" value="#EVENT([target],Question,[AGENT],askforadvice2nd)"/>
121                </PreConditions>
122                <Effects>
123                        <Effect probability="1.0">
124                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],UserSpeech,[target],suggestcopingstrategy,[cs])"/>
125                        </Effect>
126                </Effects>
127        </Action>
128       
129        <Action name="UserSpeech([target],suggestcopingstrategy,[cs])" probability="0.5">
130                <PreConditions>
131                        <Property name="[AGENT]" operator="=" value="User"/>
132                        <Property name="SpeechContext()" operator="=" value="#EVENT([target],Question,[AGENT],askagain)"/>
133                </PreConditions>
134                <Effects>
135                        <Effect probability="1.0">
136                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],UserSpeech,[target],suggestcopingstrategy,[cs])"/>
137                        </Effect>
138                </Effects>
139        </Action>
140       
141        <Action name="UserSpeech([target],yes,[strategy])" probability="0.8">
142                <PreConditions>
143                        <Property name="[AGENT]" operator="=" value="User"/>
144                        <RecentEvent occurred="True" subject="[SELF]" action="activate" target="AskIfKeepStrategy"/>
145                        <RecentEvent occurred="False" subject="[SELF]" action="activate" target="AskCopingStrategy"/>
146                        <Property name="SpeechContext()" operator="=" value="#EVENT([target],CopingSpeech,[AGENT],askifkeepcopingstrategy,[strategy])"/>
147                </PreConditions>
148                <Effects>
149                        <Effect probability="1.0">
150                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],UserSpeech,[target],yes,[strategy])"/>
151                        </Effect>
152                </Effects>
153        </Action>
154       
155        <Action name="UserSpeech([target],yes,[strategy])" probability="1.0">
156                <PreConditions>
157                        <Property name="[AGENT]" operator="=" value="User"/>
158                        <RecentEvent occurred="True" subject="[SELF]" action="activate" target="AskCopingStrategy"/>
159                        <Property name="SpeechContext()" operator="=" value="#EVENT([target],CopingSpeech,[AGENT],confirmcopingstrategy,[strategy])"/>
160                </PreConditions>
161                <Effects>
162                        <Effect probability="1.0">
163                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],UserSpeech,[target],yes,[strategy])"/>
164                        </Effect>
165                </Effects>
166        </Action>
167       
168        <Action name="UserSpeech([target],yes,[strategy])" probability="0.5">
169                <PreConditions>
170                        <Property name="[AGENT]" operator="=" value="User"/>
171                        <RecentEvent occurred="True" subject="[SELF]" action="fail" target="AskCopingStrategy"/>
172                        <Property name="SpeechContext()" operator="=" value="#EVENT([target],CopingSpeech,[AGENT],suggestcopingstrategy,[strategy])"/>
173                </PreConditions>
174                <Effects>
175                        <Effect probability="1.0">
176                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],UserSpeech,[target],yes,[strategy])"/>
177                        </Effect>
178                </Effects>
179        </Action>
180       
181        <Action name="UserSpeech([target],givereason)" probability="1.0">
182                <PreConditions>
183                        <Property name="[AGENT]" operator="=" value="User"/>
184                        <RecentEvent occurred="True" subject="[SELF]" action="activate" target="AskCopingStrategy"/>
185                        <Property name="SpeechContext()" operator="=" value="#EVENT([target],Question,[AGENT],askforreason)"/>
186                </PreConditions>
187                <Effects>
188                        <Effect probability="1.0">
189                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],UserSpeech,[target],givereason)"/>
190                        </Effect>
191                </Effects>
192        </Action>
193       
194        <Action name="UserSpeech([target],givereason)" probability="1.0">
195                <PreConditions>
196                        <Property name="[AGENT]" operator="=" value="User"/>
197                        <RecentEvent occurred="False" subject="[SELF]" action="activate" target="AskCopingStrategy" />
198                        <Property name="SpeechContext()" operator="=" value="#EVENT([target],Question,[AGENT],askwhykeep)"/>
199                </PreConditions>
200                <Effects>
201                        <Effect probability="1.0">
202                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],UserSpeech,[target],givereason)"/>
203                        </Effect>
204                </Effects>
205        </Action>
206       
207        <!-- Speech Actions for the Victim's interaction with the user -->
208        <Action name="CopingSpeech(User,confirmcopingstrategy,[cs])">
209                <PreConditions>
210                        <Property name="SpeechContext()" operator="=" value="#EVENT(User,UserSpeech,[AGENT],suggestcopingstrategy,[cs])"/>
211                </PreConditions>
212                <Effects>
213                        <Effect probability="1.0">
214                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],CopingSpeech,User,confirmcopingstrategy,[cs])"/>
215                        </Effect>
216                </Effects>
217        </Action>
218       
219        <Action name="CopingSpeech(User,suggestcopingstrategy,[coping])">
220                <PreConditions>
221                        <RecentEvent occurred="True" subject="[SELF]" action="fail" target="AskCopingStrategy"/>
222                        <Property name="[AGENT](cansuggestcoping,[coping])" operator="=" value="True"/>
223                        <Property name="[AGENT](numberOfTries,[coping])" operator="LesserThan" value="6"/>
224                </PreConditions>
225                <Effects>
226                        <Effect probability="1.0">
227                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],CopingSpeech,User,suggestcopingstrategy,[coping])"/>
228                        </Effect>
229                </Effects>
230        </Action>
231       
232        <Action name="CopingSpeech(User,askifkeepcopingstrategy,[coping])">
233                <PreConditions>
234                        <Property name="[AGENT](copingStrategy)" operator="=" value="[coping]" />
235                        <Property name="[coping]" operator="!=" value="False" />
236                </PreConditions>
237                <Effects>
238                        <Effect probability="1.0">
239                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],CopingSpeech,User,askifkeepcopingstrategy,[coping])"/>
240                        </Effect>
241                </Effects>
242        </Action>
243       
244        <Action name="CopingSpeech(User,cannotkeepcopingstrategy,[coping])">
245                <PreConditions>
246                        <Property name="[AGENT](copingStrategy)" operator="=" value="[coping]" />
247                        <Property name="[coping]" operator="!=" value="False" />
248                </PreConditions>
249                <Effects>
250                        <Effect probability="1.0">
251                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],CopingSpeech,User,cannotkeepcopingstrategy,[coping])"/>
252                        </Effect>
253                </Effects>
254        </Action>
255       
256        <Action name="CopingSpeech(User,acceptcopingstrategy,[coping])">
257                <PreConditions>
258                        <Property name="[AGENT](copingStrategy)" operator="=" value="[coping]" />
259                        <Property name="[coping]" operator="!=" value="False" />
260                </PreConditions>
261                <Effects>
262                        <Effect probability="1.0">
263                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],CopingSpeech,User,acceptstrategy,[coping])"/>
264                        </Effect>
265                </Effects>
266        </Action>
267       
268        <Action name="CopingSpeech(User,declinecopingstrategy,[coping])">
269                <PreConditions>
270                        <Property name="[AGENT](copingStrategy)" operator="=" value="[coping]" />
271                        <Property name="[coping]" operator="!=" value="False" />
272                </PreConditions>
273                <Effects>
274                        <Effect probability="1.0">
275                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],CopingSpeech,User,declinecopingstrategy,[coping])"/>
276                        </Effect>
277                </Effects>
278        </Action>
279       
280        <!-- General SpeechAct -->
281        <Action name="SpeechAct([target],[type])">
282                <PreConditions>
283                        <Property name="[target]" operator="!=" value="[AGENT]"/>
284                        <Property name="[type]" operator="!=" value="protest"/>
285                        <Property name="[type]" operator="!=" value="deceptionreveal"/>
286                        <Property name="[type]" operator="!=" value="annoy"/>
287                        <Property name="[type]" operator="!=" value="laughoff"/>
288                        <Property name="[type]" operator="!=" value="followdontcare"/>
289                </PreConditions>
290                <Effects>
291                        <Effect probability="1">
292                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],SpeechAct,[target],[type])"/>
293                        </Effect>
294                </Effects>
295        </Action>
296        <!-- Specific protest SpeechAct that has the possible effect of getting hurt -->
297        <Action name="SpeechAct([target],protest)">
298                <PreConditions>
299                        <Property name="[target]" operator="!=" value="[AGENT]"/>
300                </PreConditions>
301                <Effects>
302                        <Effect probability="0.4">
303                                <Property name="[AGENT](atRisk)" operator="=" value="True"/>
304                        </Effect>
305                        <Effect probability="1">
306                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],SpeechAct,[target],protest)"/>
307                        </Effect>
308                </Effects>
309        </Action>
310        <!-- Specific laughoff SpeechAct that has the possible effect of getting hurt -->
311        <Action name="SpeechAct([target],laughoff)">
312                <PreConditions>
313                        <Property name="[target]" operator="!=" value="[AGENT]"/>
314                </PreConditions>
315                <Effects>
316                        <Effect probability="0.4">
317                                <Property name="[AGENT](atRisk)" operator="=" value="True"/>
318                        </Effect>
319                        <Effect probability="1">
320                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],SpeechAct,[target],protest)"/>
321                        </Effect>
322                </Effects>
323        </Action>
324        <!-- Specific SpeechAct for followdontcare -->
325        <Action name="SpeechAct([target],followdontcare)">
326                <PreConditions>
327                        <Property name="[target]" operator="!=" value="[AGENT]"/>
328                </PreConditions>
329                <Effects>
330                        <Effect probability="0.8">
331                                <Property name="[AGENT](atRisk)" operator="=" value="True"/>
332                        </Effect>
333                        <Effect probability="1">
334                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],SpeechAct,[target],followdontcare)"/>
335                        </Effect>
336                </Effects>
337        </Action>
338        <!-- Specific annoy SpeechAct that has the possible effect of annoying the target -->
339        <Action name="SpeechAct([target],annoy)">
340                <PreConditions>
341                        <Property name="[target]" operator="!=" value="[AGENT]"/>
342                </PreConditions>
343                <Effects>
344                        <Effect probability="0.5">
345                                <Property name="[target](annoyed)" operator="=" value="True"/>
346                        </Effect>
347                        <Effect probability="1">
348                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],SpeechAct,[target],annoy)"/>
349                        </Effect>
350                </Effects>
351        </Action>
352        <!-- Specific cancelinvitation SpeechAct that reflects that if someone tries to sabotage the partyinvitation the cancel
353              invitation will be much more likely. It is still possible to use the generic speechAct for this purpose, but the likelihood
354                  is quite small -->
355        <Action name="SpeechAct([target],partyinvitationwithdraw)" probability="0.8">
356                <PreConditions>
357                        <RecentEvent occurred="True" subject="[saboteur]" action="SpeechAct" target="[AGENT]" parameters="partyinvitationsabotagehost,[target]"/>
358                        <Property name="[target]" operator="!=" value="[AGENT]"/>
359                </PreConditions>
360                <Effects>
361                        <Effect probability="1">
362                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],SpeechAct,[target],partyinvitationwithdraw)"/>
363                        </Effect>
364                </Effects>
365        </Action>
366        <!-- Specific deceptionreveal SpeechAct that consists in the agent revealing the deception, the victim will need to cope -->
367        <Action name="SpeechAct([target],deceptionreveal)">
368                <PreConditions>
369                        <Property name="[target]" operator="!=" value="[AGENT]"/>
370                        <RecentEvent occurred="True" subject="[target]" action="Reply" target="[AGENT]" parameters="deception,positiveanswer"/>
371                </PreConditions>
372                <Effects>
373                        <Effect probability="1">
374                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],SpeechAct,[target],deceptionreveal)"/>
375                        </Effect>
376                </Effects>
377        </Action>
378    -->
379   
380    <!-- Join Group Speech Acts -->
381        <Action name="SpeechAct([target],joingroupquestionthreatleave,[group])" probability="0.5">
382                <PreConditions>
383                        <Property name="[AGENT](role)" operator="=" value="Bully"/>
384                        <Property name="[group](isGroup)" operator="=" value="True"/>
385                        <Property name="[target](inGroup,[group])" operator="=" value="True"/>
386                        <Property name="[AGENT](inGroup,[group])" operator="=" value="True"/>
387                        <Property name="SpeechContext()" operator="=" value="#EVENT([target],Question,[AGENT],joingroupquestionnegativeanswerobject)"/>
388                        <Property name="[target]" operator="!=" value="[AGENT]"/>
389                </PreConditions>
390                <Effects>
391                        <Effect probability="1">
392                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],SpeechAct,[target],joingroupquestionthreatleave,[group])"/>
393                        </Effect>
394                </Effects>
395        </Action>
396        <Action name="SpeechAct([target],joingroupquestionnegativeanswerobjectaccept,[group])" probability="0.5">
397                <PreConditions>
398                        <Property name="[AGENT](role)" operator="=" value="Bully"/>
399                        <Property name="[group](isGroup)" operator="=" value="True"/>
400                        <Property name="[target](inGroup,[group])" operator="=" value="True"/>
401                        <Property name="[AGENT](inGroup,[group])" operator="=" value="True"/>
402                        <Property name="SpeechContext()" operator="=" value="#EVENT([target],Question,[AGENT],joingroupquestionnegativeanswerobject)"/>
403                        <Property name="[target]" operator="!=" value="[AGENT]"/>
404                </PreConditions>
405                <Effects>
406                        <Effect probability="1">
407                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],SpeechAct,[target],joingroupquestionnegativeanswerobjectaccept,[group])"/>
408                        </Effect>
409                </Effects>
410        </Action>
411        <Action name="SpeechAct([target],joingroupquestionnegativeanswerobjectacceptanswer,[group])" probability="0.5">
412                <PreConditions>
413                        <Property name="[target](role)" operator="=" value="Bully"/>
414                        <Property name="[group](isGroup)" operator="=" value="True"/>
415                        <Property name="[target](inGroup,[group])" operator="=" value="True"/>
416                        <Property name="[AGENT](inGroup,[group])" operator="=" value="True"/>
417                        <Property name="SpeechContext()" operator="=" value="#EVENT([target],SpeechAct,[AGENT],joingroupquestionnegativeanswerobjectaccept,[group])"/>
418                        <Property name="[target]" operator="!=" value="[AGENT]"/>
419                </PreConditions>
420                <Effects>
421                        <Effect probability="1">
422                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],SpeechAct,[target],joingroupquestionnegativeanswerobjectacceptanswer,[group])"/>
423                        </Effect>
424                </Effects>
425        </Action>
426        <Action name="SpeechAct([target],joingroupquestionthreatleavepositiveanswer,[group])" probability="0.5">
427                <PreConditions>
428                        <Property name="[target](role)" operator="=" value="Bully"/>
429                        <Property name="[group](isGroup)" operator="=" value="True"/>
430                        <Property name="[target](inGroup,[group])" operator="=" value="True"/>
431                        <Property name="[AGENT](inGroup,[group])" operator="=" value="True"/>
432                        <Property name="SpeechContext()" operator="=" value="#EVENT([target],SpeechAct,[AGENT],joingroupquestionthreatleave,[group])"/>
433                        <Property name="[target]" operator="!=" value="[AGENT]"/>
434                </PreConditions>
435                <Effects>
436                        <Effect probability="1">
437                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],SpeechAct,[target],joingroupquestionthreatleavepositiveanswer,[group])"/>
438                        </Effect>
439                </Effects>
440        </Action>
441        <Action name="SpeechAct([target],joingroupquestionthreatleavenegativeanswer,[group])" probability="0.5">
442                <PreConditions>
443                        <Property name="[target](role)" operator="=" value="Bully"/>
444                        <Property name="[group](isGroup)" operator="=" value="True"/>
445                        <Property name="[target](inGroup,[group])" operator="=" value="True"/>
446                        <Property name="[AGENT](inGroup,[group])" operator="=" value="True"/>
447                        <Property name="SpeechContext()" operator="=" value="#EVENT([target],SpeechAct,[AGENT],joingroupquestionthreatleave,[group])"/>
448                        <Property name="[target]" operator="!=" value="[AGENT]"/>
449                </PreConditions>
450                <Effects>
451                        <Effect probability="1">
452                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],SpeechAct,[target],joingroupquestionthreatleavenegativeanswer,[group])"/>
453                        </Effect>
454                </Effects>
455        </Action>
456        <Action name="Question([target],joingroupconvince,[group])">
457                <PreConditions>
458                        <Property name="[group](isGroupOf1)" operator="=" value="True"/>
459                        <Property name="[target](inGroup,[group])" operator="=" value="True"/>
460                        <RecentEvent subject="[target]" target="[AGENT]" action="Reply" parameters="joingroupquestion,negativeanswer,[group]"/>
461                </PreConditions>
462                <Effects>
463                        <Effect probability="1">
464                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],Question,[target],joingroupconvince,[group])"/>
465                        </Effect>
466                </Effects>
467        </Action>
468        <Action name="Reply([target],joingroupconvince,positiveanswer,[group])" probability="0.5">
469                <PreConditions>
470                        <Property name="[group](isGroupOf1)" operator="=" value="True"/>
471                        <Property name="[target](inGroup,[group])" operator="=" value="Pending"/>
472                        <RecentEvent subject="[target]" target="[AGENT]" action="Question" parameters="joingroupconvince,[group]"/>
473                </PreConditions>
474                <Effects>
475                        <Effect probability="1">
476                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],Reply,[target],joingroupconvince,positiveanswer,[group])"/>
477                        </Effect>
478                </Effects>
479        </Action>
480        <Action name="Reply([target],joingroupconvince,negativeanswer,[group])" probability="0.5">
481                <PreConditions>
482                        <Property name="[group](isGroupOf1)" operator="=" value="True"/>
483                        <Property name="[target](inGroup,[group])" operator="=" value="Pending"/>
484                        <RecentEvent subject="[target]" target="[AGENT]" action="Question" parameters="joingroupconvince,[group]"/>
485                </PreConditions>
486                <Effects>
487                        <Effect probability="1">
488                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],Reply,[target],joingroupconvince,negativeanswer,[group])"/>
489                        </Effect>
490                </Effects>
491        </Action>
492        <!-- General SpeechAct that contains an additional topic -->
493        <Action name="SpeechAct([target],[type],[topic])">
494                <PreConditions>
495                        <Property name="[target]" operator="!=" value="[AGENT]"/>
496                        <Property name="[type]" operator="!=" value="joingroupquestionthreatleave"/>
497                        <Property name="[type]" operator="!=" value="joingroupquestionthreatleavepositiveanswer"/>
498                        <Property name="[type]" operator="!=" value="joingroupquestionthreatleavenegativeanswer"/>
499                        <Property name="[type]" operator="!=" value="joingroupquestionnegativeanswerobjectaccept"/>
500                        <Property name="[type]" operator="!=" value="joingroupquestionnegativeanswerobjectacceptanswer"/>
501                </PreConditions>
502                <Effects>
503                        <Effect probability="1">
504                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],SpeechAct,[target],[type],[topic])"/>
505                        </Effect>
506                </Effects>
507        </Action>
508        <!-- General Reinforcement SpeechAct -->
509        <Action name="Reinforce([target],[type])">
510                <PreConditions>
511                        <Property name="[target]" operator="!=" value="[AGENT]"/>
512                </PreConditions>
513                <Effects>
514                </Effects>
515        </Action>
516        <!-- General Question SpeechAct -->
517        <Action name="Question([target],[question])">
518                <PreConditions>
519                        <Property name="[question]" operator="!=" value="threatfightback"/>
520                        <Property name="[question]" operator="!=" value="laughoff"/>
521                        <Property name="[question]" operator="!=" value="protest"/>
522                        <Property name="[question]" operator="!=" value="askforadvice"/>
523                        <Property name="[question]" operator="!=" value="askforadvice2nd"/>
524                        <Property name="[question]" operator="!=" value="askagain"/>
525                        <Property name="[target]" operator="!=" value="[AGENT]"/>
526                </PreConditions>
527                <Effects>
528                        <Effect probability="1">
529                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],Question,[target],[question])"/>
530                        </Effect>
531                </Effects>
532        </Action>
533        <!-- Specific protest Question that has the possible effect of getting hurt -->
534        <Action name="Question([target],protest)">
535                <PreConditions>
536                        <Property name="[target]" operator="!=" value="[AGENT]"/>
537                </PreConditions>
538                <Effects>
539                        <Effect probability="0.4">
540                                <Property name="[AGENT](atRisk)" operator="=" value="True"/>
541                        </Effect>
542                        <Effect probability="1">
543                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],Question,[target],protest)"/>
544                        </Effect>
545                </Effects>
546        </Action>
547        <!-- Specific laughoff Question that has the possible effect of getting hurt -->
548        <Action name="Question([target],laughoff)">
549                <PreConditions>
550                        <Property name="[target]" operator="!=" value="[AGENT]"/>
551                </PreConditions>
552                <Effects>
553                        <Effect probability="0.4">
554                                <Property name="[AGENT](atRisk)" operator="=" value="True"/>
555                        </Effect>
556                        <Effect probability="1">
557                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],Question,[target],laughoff)"/>
558                        </Effect>
559                </Effects>
560        </Action>
561        <!-- Specific threatfightback question -->
562        <Action name="Question([target],threatfightback)">
563                <PreConditions>
564                        <Property name="[target]" operator="!=" value="[AGENT]"/>
565                </PreConditions>
566                <Effects>
567                        <Effect probability="0.7">
568                                <Property name="[AGENT](atRisk)" operator="=" value="True"/>
569                        </Effect>
570                        <Effect probability="1">
571                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],Question,[target],threatfightback)"/>
572                        </Effect>
573                </Effects>
574        </Action>
575        <!-- Specific threatfightback question -->
576        <Action name="Question([target],helpprotection)" probability="0.7">
577                <PreConditions>
578                        <Property name="[target]" operator="!=" value="[AGENT]"/>
579                        <RecentEvent occurred="True" subject="[target]" target="[AGENT]" action="Reply" parameters="helpquestion,positiveanswer"/>
580                </PreConditions>
581                <Effects>
582                        <Effect probability="1">
583                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],Question,[target],helpprotection)"/>
584                        </Effect>
585                </Effects>
586        </Action>
587        <!-- Specific askforadvice question -->
588        <Action name="Question([target],askforadvice)">
589                <PreConditions>
590                        <Property name="[target]" operator="!=" value="[AGENT]"/>
591                        <RecentEvent occurred="False" subject="[AGENT]" target="[target]" action="Question" parameters="askforadvice"/>
592                </PreConditions>
593                <Effects>
594                        <Effect probability="1">
595                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],Question,[target],askforadvice)"/>
596                        </Effect>
597                </Effects>
598        </Action>
599        <!-- Specific askforadvice2nd question -->
600        <Action name="Question([target],askforadvice2nd)">
601                <PreConditions>
602                        <Property name="[target]" operator="!=" value="[AGENT]"/>
603                        <RecentEvent occurred="True" subject="[target]" target="[AGENT]" action="UserSpeech" parameters="suggestcopingstrategy,*"/>
604                </PreConditions>
605                <Effects>
606                        <Effect probability="1">
607                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],Question,[target],askforadvice2nd)"/>
608                        </Effect>
609                </Effects>
610        </Action>
611        <!-- Specific askagain question -->
612        <Action name="Question([target],askagain)">
613                <PreConditions>
614                        <Property name="[target]" operator="!=" value="[AGENT]"/>
615                        <RecentEvent occurred="True" subject="[AGENT]" target="[target]" action="Question" parameters="askforadvice"/>
616                        <RecentEvent occurred="False" subject="[target]" target="[AGENT]" action="UserSpeech" parameters="suggestcopingstrategy,*"/>
617                </PreConditions>
618                <Effects>
619                        <Effect probability="1">
620                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],Question,[target],askagain)"/>
621                        </Effect>
622                </Effects>
623        </Action>
624
625        <!-- Group related questions -->
626        <Action name="Question([target],[question],[group])">
627                <PreConditions>
628                        <Property name="[target]" operator="!=" value="[AGENT]"/>
629                        <Property name="[question]" operator="!=" value="joingroupconvince"/>
630                        <Property name="[group](isGroup)" operator="=" value="True"/>
631                </PreConditions>
632                <Effects>
633                        <Effect probability="1">
634                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],Question,[target],[question],[group])"/>
635                        </Effect>
636                </Effects>
637        </Action>
638        <!-- General positive Reply SpeechAct. It's probability of execution by another agent is a little higher because this Reply is incentivated
639              by a question -->
640        <Action name="Reply([target],[question],positiveanswer)" probability="0.5">
641                <PreConditions>
642                        <Property name="[target]" operator="!=" value="[AGENT]"/>
643                        <Property name="[question]" operator="!=" value="joingroupquestionnegativeanswerobject"/>
644                        <Property name="SpeechContext()" operator="=" value="#EVENT([target],Question,[AGENT],[question])"/>
645                </PreConditions>
646                <Effects>
647                        <Effect probability="1">
648                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],Reply,[target],[question],positiveanswer)"/>
649                        </Effect>
650                </Effects>
651        </Action>
652        <!-- General negative Reply SpeechAct. It's probability of execution by another agent is a little higher because this Reply is incentivated
653              by a question. Additionally, saying no has some likelihood of getting hurt. -->
654        <Action name="Reply([target],[question],negativeanswer)" probability="0.5">
655                <PreConditions>
656                        <Property name="[target]" operator="!=" value="[AGENT]"/>
657                        <Property name="[question]" operator="!=" value="joinparty"/>
658                        <Property name="SpeechContext()" operator="=" value="#EVENT([target],Question,[AGENT],[question])"/>
659                </PreConditions>
660                <Effects>
661                        <Effect probability="0.4">
662                                <Property name="[AGENT](atRisk)" operator="=" value="True"/>
663                        </Effect>
664                        <Effect probability="1">
665                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],Reply,[target],[question],positiveanswer)"/>
666                        </Effect>
667                </Effects>
668        </Action>
669        <!-- Specific negative Reply to a joinparty question. This operator reflects that if someone tries to sabotage the partyinvitation
670                the cancel the negative reply will be much more likely. It is still possible to use the generic Reply for this purpose, but the likelihood
671                  is quite small -->
672        <Action name="Reply([target],joinparty,negativeanswer)" probability="0.8">
673                <PreConditions>
674                        <Property name="SpeechContext()" operator="=" value="#EVENT([target],Question,[AGENT],joinparty)"/>
675                        <Property name="[target]" operator="!=" value="[AGENT]"/>
676                        <RecentEvent occurred="True" subject="[saboteur]" action="SpeechAct" target="[AGENT]" parameters="partyinvitationsabotagehost,[target]"/>
677                </PreConditions>
678                <Effects>
679                        <Effect probability="1">
680                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],Reply,[target],joinparty,negativeanswer)"/>
681                        </Effect>
682                </Effects>
683        </Action>
684        <!-- Reply SpeechAct used for replying to joingroup questions. It's probability of execution by another agent is a little higher because this Reply is incentivated
685              by a question -->
686        <Action name="Reply([target],joingroupquestion,[answer],[group])" probability="0.5">
687                <PreConditions>
688                        <Property name="[target]" operator="!=" value="[AGENT]"/>
689                        <Property name="[group](isGroup)" operator="=" value="True"/>
690                        <Property name="[AGENT](inGroup,[group])" operator="=" value="True"/>
691                        <RecentEvent subject="[target]" target="[group]" action="Question" parameters="joingroupquestion"/>
692                </PreConditions>
693                <Effects>
694                        <Effect probability="1">
695                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],Reply,[target],joingroupquestion,[answer],[group])"/>
696                        </Effect>
697                </Effects>
698        </Action>
699        <!-- Reply SpeechAct used for replying to joingroup questions. It's probability of execution by another agent is a little higher because this Reply is incentivated
700              by a question -->
701        <Action name="Reply([target],joingroupquestionpositiveanswerobject,[answer],[group])" probability="0.5">
702                <PreConditions>
703                        <Property name="[target]" operator="!=" value="[AGENT]"/>
704                        <Property name="[group](isGroup)" operator="=" value="True"/>
705                        <Property name="[AGENT](inGroup,[group])" operator="=" value="True"/>
706                        <RecentEvent subject="[target]" target="[AGENT]" action="Question" parameters="joingroupquestionpositiveanswerobject,[group]"/>
707                </PreConditions>
708                <Effects>
709                        <Effect probability="1">
710                                <Property name="SpeechContext()" operator="=" value="#EVENT([AGENT],Reply,[target],joingroupquestionpositiveanswerobject,[answer],[group])"/>
711                        </Effect>
712                </Effects>
713        </Action>
714        <!-- Inference Operators -->
715        <!-- InvitedToParty = True inference -->
716        <Action name="InferenceOperator1([Inviter],[Invited])">
717                <PreConditions>
718                        <RecentEvent occurred="True" subject="[Invited]" action="Reply" target="[Inviter]" parameters="partyinvitation,positiveanswer"/>
719                </PreConditions>
720                <Effects>
721                        <Effect probability="1">
722                                <Property name="InvitedToParty([Inviter],[Invited])" operator="=" value="True"/>
723                        </Effect>
724                </Effects>
725        </Action>
726        <Action name="InferenceOperator2([Inviter],[Invited])">
727                <PreConditions>
728                        <RecentEvent occurred="True" subject="[Inviter]" action="Reply" target="[Invited]" parameters="joinparty,positiveanswer"/>
729                </PreConditions>
730                <Effects>
731                        <Effect probability="1">
732                                <Property name="InvitedToParty([Inviter],[Invited])" operator="=" value="True"/>
733                        </Effect>
734                </Effects>
735        </Action>
736        <!-- invitedToParty = False inference -->
737        <Action name="InferenceOperator3([Inviter],[Invited])">
738                <PreConditions>
739                        <RecentEvent occurred="True" subject="[Inviter]" action="SpeechAct" target="[Invited]" parameters="partyinvitationwithdraw"/>
740                </PreConditions>
741                <Effects>
742                        <Effect probability="1">
743                                <Property name="InvitedToParty([Inviter],[Invited])" operator="=" value="False"/>
744                        </Effect>
745                </Effects>
746        </Action>
747        <Action name="InferenceOperator4([Inviter],[Invited])">
748                <PreConditions>
749                        <RecentEvent occurred="True" subject="[Inviter]" action="Reply" target="[Invited]" parameters="joinparty,negativeanswer"/>
750                </PreConditions>
751                <Effects>
752                        <Effect probability="1">
753                                <Property name="InvitedToParty([Inviter],[Invited])" operator="=" value="False"/>
754                        </Effect>
755                </Effects>
756        </Action>
757        <!-- NeedToCope inferences -->
758        <!-- I need to cope if I'm distressed -->
759        <Action name="InferenceNeedToCopeDistress()">
760                <PreConditions>
761                        <EmotionCondition emotion="Distress" min-intensity="3"/>
762                </PreConditions>
763                <Effects>
764                        <Effect probability="1.0">
765                                <Property name="[SELF](needToCope)" operator="=" value="True"/>
766                        </Effect>
767                </Effects>
768        </Action>
769        <Action name="InferenceNeedToCopeDistress()">
770                <PreConditions>
771                        <EmotionCondition active="False" emotion="Distress" min-intensity="2"/>
772                </PreConditions>
773                <Effects>
774                        <Effect probability="1.0">
775                                <Property name="[SELF](needToCope)" operator="=" value="False"/>
776                        </Effect>
777                </Effects>
778        </Action>
779        <!-- user conversation inferences -->
780        <Action name="InferenceAskIfKeepFailed(user)">
781                <PreConditions>
782                        <!--<RecentEvent occurred="False" subject="User" action="UserSpeech" target="[SELF]" parameters="no" />-->
783                        <RecentEvent occurred="True" subject="[SELF]" action="fail" target="AskIfKeepStrategy" />
784                        <Property name="stopInference(askifkeepfailed)" operator="!=" value="True"/>
785                </PreConditions>
786                <Effects>
787                        <Effect probability="1.0">
788                                <Property name="[SELF](copingStrategy)" operator="=" value="False"/>
789                                <Property name="stopInference(askifkeepfailed)" operator="=" value="True"/>
790                        </Effect>
791                </Effects>
792        </Action>
793       
794        <Action name="InferenceAskIfKeepFailed2([target],[coping])">
795                <PreConditions>
796                        <RecentEvent occurred="False" subject="[SELF]" action="fail" target="AskIfKeepStrategy" />
797                </PreConditions>
798                <Effects>
799                        <Effect probability="1.0">
800                                <Property name="stopInference(askifkeepfailed)" operator="=" value="False"/>
801                        </Effect>
802                </Effects>
803        </Action>
804       
805        <Action name="InferenceCopingStrategy([target],[coping])">
806                <PreConditions>
807                        <Property name="SpeechContext()" operator="=" value="#EVENT(User,UserSpeech,[target],suggestcopingstrategy,[coping])"/>
808                        <Property name="[target](canChangeCoping)" operator="=" value="True"/>
809                </PreConditions>
810                <Effects>
811                        <Effect probability="1.0">
812                                <Property name="[target](canChangeCoping)" operator="=" value="False"/>
813                                <Property name="[target](copingStrategy)" operator="=" value="[coping]"/>
814                        </Effect>
815                </Effects>
816        </Action>
817       
818        <Action name="InferenceCopingStrategy2([target],[coping])">
819                <PreConditions>
820                        <Property name="SpeechContext()" operator="=" value="#EVENT([target],CopingSpeech,User,suggestcopingstrategy,[coping])"/>
821                </PreConditions>
822                <Effects>
823                        <Effect probability="1.0">
824                                <Property name="[target](canChangeCoping)" operator="=" value="False"/>
825                                <Property name="[target](copingStrategy)" operator="=" value="[coping]"/>
826                        </Effect>
827                </Effects>
828        </Action>
829       
830        <!--<Action name="InferenceCopingStrategy3([target],[coping])">
831                <PreConditions>
832                        <Property name="SpeechContext()" operator="=" value="#EVENT(User,UserSpeech,[target],yes,[coping])"/>
833                        <Property name="[coping]" operator="!=" value="null" />
834                        <Property name="[target](canChangeCoping)" operator="=" value="True"/>
835                </PreConditions>
836                <Effects>
837                        <Effect probability="1.0">
838                                <Property name="[target](canChangeCoping)" operator="=" value="False"/>
839                               
840                        </Effect>
841                </Effects>
842        </Action>-->
843       
844        <Action name="InferenceStrategyConfirmed([target],[coping])">
845                <PreConditions>
846                        <Property name="SpeechContext()" operator="=" value="#EVENT(User,UserSpeech,[target],yes,[coping])"/>
847                        <Property name="[coping]" operator="!=" value="null" />
848                </PreConditions>
849                <Effects>
850                        <Effect probability="1.0">
851                                <Property name="[target](canChangeCoping)" operator="=" value="False"/>
852                                <Property name="[target](copingStrategy)" operator="=" value="[coping]"/>
853                                <Property name="[target](confirmedStrategy)" operator="=" value="True"/>
854                        </Effect>
855                </Effects>
856        </Action>
857       
858        <Action name="InferenceStrategyDisconfirmed([target])">
859                <PreConditions>
860                        <Property name="SpeechContext()" operator="=" value="#EVENT(User,UserSpeech,[target],no)"/>
861                        <Property name="[target](canChangeCoping)" operator="=" value="True"/>
862                </PreConditions>
863                <Effects>
864                        <Effect probability="1.0">
865                                <Property name="[target](canChangeCoping)" operator="=" value="False"/>
866                                <Property name="[target](confirmedStrategy)" operator="=" value="False"/>
867                                <Property name="[target](copingStrategy)" operator="=" value="False"/>
868                        </Effect>
869                </Effects>
870        </Action>
871       
872        <Action name="InferenceStrategyDeclined([target],[coping])">
873                <PreConditions>
874                        <Property name="SpeechContext()" operator="=" value="#EVENT([target],CopingSpeech,User,declinecopingstrategy,[coping])"/>
875                </PreConditions>
876                <Effects>
877                        <Effect probability="1.0">
878                                <Property name="[target](confirmedStrategy)" operator="=" value="False"/>
879                                <Property name="[target](copingStrategy)" operator="=" value="False"/>
880                        </Effect>
881                </Effects>
882        </Action>
883       
884        <Action name="InferenceCannotKeep([target])">
885                <PreConditions>
886                        <Property name="SpeechContext()" operator="=" value="#EVENT([target],CopingSpeech,User,cannotkeepcopingstrategy,[cs])"/>
887                </PreConditions>
888                <Effects>
889                        <Effect probability="1.0">
890                                <Property name="[target](confirmedStrategy)" operator="=" value="False"/>
891                                <Property name="[target](copingStrategy)" operator="=" value="False"/>
892                        </Effect>
893                </Effects>
894        </Action>
895       
896        <Action name="InferenceCanChangeCoping1([target])">
897                <PreConditions>
898                        <Property name="SpeechContext()" operator="=" value="#EVENT([target],CopingSpeech,User,confirmcopingstrategy,[cs])"/>
899                </PreConditions>
900                <Effects>
901                        <Effect probability="1.0">
902                                <Property name="[target](canChangeCoping)" operator="=" value="True"/>
903                        </Effect>
904                </Effects>
905        </Action>
906       
907        <Action name="InferenceCanChangeCoping2([target])">
908                <PreConditions>
909                        <Property name="SpeechContext()" operator="=" value="#EVENT([target],CopingSpeech,User,askifkeepcopingstrategy,[cs])"/>
910                </PreConditions>
911                <Effects>
912                        <Effect probability="1.0">
913                                <Property name="[target](canChangeCoping)" operator="=" value="True"/>
914                        </Effect>
915                </Effects>
916        </Action>
917       
918        <Action name="InferenceCanChangeCoping3([target])">
919                <PreConditions>
920                        <Property name="SpeechContext()" operator="=" value="#EVENT([target],Question,User,askforadvice)"/>
921                </PreConditions>
922                <Effects>
923                        <Effect probability="1.0">
924                                <Property name="[target](canChangeCoping)" operator="=" value="True"/>
925                        </Effect>
926                </Effects>
927        </Action>
928       
929        <Action name="InferenceCanChangeCoping4([target])">
930                <PreConditions>
931                        <Property name="SpeechContext()" operator="=" value="#EVENT([target],Question,User,askforadvice2nd)"/>
932                </PreConditions>
933                <Effects>
934                        <Effect probability="1.0">
935                                <Property name="[target](canChangeCoping)" operator="=" value="True"/>
936                        </Effect>
937                </Effects>
938        </Action>
939
940        <Action name="InferenceAskReason([target])">
941                <PreConditions>
942                        <RecentEvent occurred="True" subject="[SELF]" action="activate" target="AskCopingStrategy"/>
943                        <Property name="SpeechContext()" operator="=" value="#EVENT([SELF],Question,[target],askforreason)"/>
944                </PreConditions>
945                <Effects>
946                        <Effect probability="1.0">
947                                <Property name="[SELF](askedwhy,[target])" operator="=" value="True"/>
948                        </Effect>
949                </Effects>
950        </Action>
951        <Action name="InferenceAskWhyKeep([target])">
952                <PreConditions>
953                        <RecentEvent occurred="False" subject="[SELF]" action="activate" target="AskCopingStrategy" />
954                        <Property name="SpeechContext()" operator="=" value="#EVENT([SELF],Question,[target],askwhykeep)"/>
955                </PreConditions>
956                <Effects>
957                        <Effect probability="1.0">
958                                <Property name="[SELF](askedwhy,[target])" operator="=" value="True"/>
959                        </Effect>
960                </Effects>
961        </Action>
962
963        <!-- grande martelada .. -->
964        <Action name="InferenceMarteladaNotAskWhy(user)">
965                <PreConditions>
966                        <RecentEvent occurred="True" subject="[SELF]" action="activate" target="WaitForReason" />
967                </PreConditions>
968                <Effects>
969                        <Effect probability="1.0">
970                                <Property name="[SELF](askedwhy,User)" operator="=" value="False"/>
971                        </Effect>
972                </Effects>
973        </Action>
974        <!-- fim da martelada -->
975
976
977       
978        <!-- the following operators deal with the counting of coping strategies selected -->
979        <Action name="InferenceIgnoreSelected()">
980                <PreConditions>
981                        <RecentEvent occurred="True" subject="[SELF]" action="activate" target="Ignore"/>
982                        <Property name="stopInference(ignore)" operator="!=" value="True"/>
983                </PreConditions>
984                <Effects>
985                        <Effect probability="1.0">
986                                <Property name="stopInference(ignore)" operator="=" value="True"/>
987                                <Property name="Increment(ignore)" operator="=" value="True"/>
988                        </Effect>
989                </Effects>
990        </Action>
991        <Action name="InferenceIgnoreUnSelected()">
992                <PreConditions>
993                        <RecentEvent occurred="False" subject="[SELF]" action="activate" target="Ignore"/>
994                </PreConditions>
995                <Effects>
996                        <Effect probability="1.0">
997                                <Property name="stopInference(ignore)" operator="=" value="False"/>
998                        </Effect>
999                </Effects>
1000        </Action>
1001        <Action name="InferenceStandUpSelected()">
1002                <PreConditions>
1003                        <RecentEvent occurred="True" subject="[SELF]" action="activate" target="StandUp"/>
1004                        <Property name="stopInference(standup)" operator="!=" value="True"/>
1005                </PreConditions>
1006                <Effects>
1007                        <Effect probability="1.0">
1008                                <Property name="stopInference(standup)" operator="=" value="True"/>
1009                                <Property name="Increment(standup)" operator="=" value="True"/>
1010                        </Effect>
1011                </Effects>
1012        </Action>
1013        <Action name="InferenceStandUpUnSelected()">
1014                <PreConditions>
1015                        <RecentEvent occurred="False" subject="[SELF]" action="activate" target="StandUp"/>
1016                </PreConditions>
1017                <Effects>
1018                        <Effect probability="1.0">
1019                                <Property name="stopInference(standup)" operator="=" value="False"/>
1020                        </Effect>
1021                </Effects>
1022        </Action>
1023        <Action name="InferenceMakeNewFriendSelected()">
1024                <PreConditions>
1025                        <RecentEvent occurred="True" subject="[SELF]" action="activate" target="MakeNewFriend"/>
1026                        <Property name="stopInference(makenewfriend)" operator="!=" value="True"/>
1027                </PreConditions>
1028                <Effects>
1029                        <Effect probability="1.0">
1030                                <Property name="stopInference(makenewfriend)" operator="=" value="True"/>
1031                                <Property name="Increment(makenewfriend)" operator="=" value="True"/>
1032                        </Effect>
1033                </Effects>
1034        </Action>
1035        <Action name="InferenceMakeNewFriendUnSelected()">
1036                <PreConditions>
1037                        <RecentEvent occurred="False" subject="[SELF]" action="activate" target="MakeNewFriend"/>
1038                </PreConditions>
1039                <Effects>
1040                        <Effect probability="1.0">
1041                                <Property name="stopInference(makenewfriend)" operator="=" value="False"/>
1042                        </Effect>
1043                </Effects>
1044        </Action>
1045        <Action name="InferenceTellFriendSelected()">
1046                <PreConditions>
1047                        <RecentEvent occurred="True" subject="[SELF]" action="activate" target="TellFriend"/>
1048                        <Property name="stopInference(tellfriend)" operator="!=" value="True"/>
1049                </PreConditions>
1050                <Effects>
1051                        <Effect probability="1.0">
1052                                <Property name="stopInference(tellfriend)" operator="=" value="True"/>
1053                                <Property name="Increment(tellfriend)" operator="=" value="True"/>
1054                        </Effect>
1055                </Effects>
1056        </Action>
1057        <Action name="InferenceTellFriendUnSelected()">
1058                <PreConditions>
1059                        <RecentEvent occurred="False" subject="[SELF]" action="activate" target="TellFriend"/>
1060                </PreConditions>
1061                <Effects>
1062                        <Effect probability="1.0">
1063                                <Property name="stopInference(tellfriend)" operator="=" value="False"/>
1064                        </Effect>
1065                </Effects>
1066        </Action>
1067        <Action name="InferenceWalkAwaySelected()">
1068                <PreConditions>
1069                        <RecentEvent occurred="True" subject="[SELF]" action="activate" target="WalkAway"/>
1070                        <Property name="stopInference(walkaway)" operator="!=" value="True"/>
1071                </PreConditions>
1072                <Effects>
1073                        <Effect probability="1.0">
1074                                <Property name="stopInference(walkaway)" operator="=" value="True"/>
1075                                <Property name="Increment(walkaway)" operator="=" value="True"/>
1076                        </Effect>
1077                </Effects>
1078        </Action>
1079        <Action name="InferenceWalkAwayUnSelected()">
1080                <PreConditions>
1081                        <RecentEvent occurred="False" subject="[SELF]" action="activate" target="WalkAway"/>
1082                </PreConditions>
1083                <Effects>
1084                        <Effect probability="1.0">
1085                                <Property name="stopInference(walkAway)" operator="=" value="False"/>
1086                        </Effect>
1087                </Effects>
1088        </Action>
1089        <Action name="InferenceRunAwaySelected()">
1090                <PreConditions>
1091                        <RecentEvent occurred="True" subject="[SELF]" action="activate" target="RunAway"/>
1092                        <Property name="stopInference(runaway)" operator="!=" value="True"/>
1093                </PreConditions>
1094                <Effects>
1095                        <Effect probability="1.0">
1096                                <Property name="stopInference(runaway)" operator="=" value="True"/>
1097                                <Property name="Increment(runaway)" operator="=" value="True"/>
1098                        </Effect>
1099                </Effects>
1100        </Action>
1101        <Action name="InferenceRunAwayUnSelected()">
1102                <PreConditions>
1103                        <RecentEvent occurred="False" subject="[SELF]" action="activate" target="RunAway"/>
1104                </PreConditions>
1105                <Effects>
1106                        <Effect probability="1.0">
1107                                <Property name="stopInference(runaway)" operator="=" value="False"/>
1108                        </Effect>
1109                </Effects>
1110        </Action>
1111        <Action name="InferenceLaughOffSelected()">
1112                <PreConditions>
1113                        <RecentEvent occurred="True" subject="[SELF]" action="activate" target="LaughOff"/>
1114                        <Property name="stopInference(laughoff)" operator="!=" value="True"/>
1115                </PreConditions>
1116                <Effects>
1117                        <Effect probability="1.0">
1118                                <Property name="stopInference(laughoff)" operator="=" value="True"/>
1119                                <Property name="Increment(laughoff)" operator="=" value="True"/>
1120                        </Effect>
1121                </Effects>
1122        </Action>
1123        <Action name="InferenceLaughOffUnSelected()">
1124                <PreConditions>
1125                        <RecentEvent occurred="False" subject="[SELF]" action="activate" target="LaughOff"/>
1126                </PreConditions>
1127                <Effects>
1128                        <Effect probability="1.0">
1129                                <Property name="stopInference(laughoff)" operator="=" value="False"/>
1130                        </Effect>
1131                </Effects>
1132        </Action>
1133        <Action name="InferenceFightBackSelected()">
1134                <PreConditions>
1135                        <RecentEvent occurred="True" subject="[SELF]" action="activate" target="FightBack"/>
1136                        <Property name="stopInference(fightback)" operator="!=" value="True"/>
1137                </PreConditions>
1138                <Effects>
1139                        <Effect probability="1.0">
1140                                <Property name="stopInference(fightback)" operator="=" value="True"/>
1141                                <Property name="Increment(fightback)" operator="=" value="True"/>
1142                        </Effect>
1143                </Effects>
1144        </Action>
1145        <Action name="InferenceFightBackUnSelected()">
1146                <PreConditions>
1147                        <RecentEvent occurred="False" subject="[SELF]" action="activate" target="FightBack"/>
1148                </PreConditions>
1149                <Effects>
1150                        <Effect probability="1.0">
1151                                <Property name="stopInference(fightback)" operator="=" value="False"/>
1152                        </Effect>
1153                </Effects>
1154        </Action>
1155        <Action name="InferenceInsultSelected()">
1156                <PreConditions>
1157                        <RecentEvent occurred="True" subject="[SELF]" action="activate" target="Insult"/>
1158                        <Property name="stopInference(insult)" operator="!=" value="True"/>
1159                </PreConditions>
1160                <Effects>
1161                        <Effect probability="1.0">
1162                                <Property name="stopInference(insult)" operator="=" value="True"/>
1163                                <Property name="Increment(insult)" operator="=" value="True"/>
1164                        </Effect>
1165                </Effects>
1166        </Action>
1167        <Action name="InferenceInsultUnSelected()">
1168                <PreConditions>
1169                        <RecentEvent occurred="False" subject="[SELF]" action="activate" target="Insult"/>
1170                </PreConditions>
1171                <Effects>
1172                        <Effect probability="1.0">
1173                                <Property name="stopInference(insult)" operator="=" value="False"/>
1174                        </Effect>
1175                </Effects>
1176        </Action>
1177        <Action name="InferenceIncrementCS1([coping])">
1178                <PreConditions>
1179                        <Property name="Increment([coping])" operator="=" value="True"/>
1180                        <Property name="[SELF](numberOfTries,[coping])" operator="=" value="0"/>
1181                </PreConditions>
1182                <Effects>
1183                        <Effect probability="1.0">
1184                                <Property name="Increment([coping])" operator="=" value="False"/>
1185                                <Property name="[SELF](numberOfTries,[coping])" operator="=" value="1"/>
1186                        </Effect>
1187                </Effects>
1188        </Action>
1189        <Action name="InferenceIncrementCS2([coping])">
1190                <PreConditions>
1191                        <Property name="Increment([coping])" operator="=" value="True"/>
1192                        <Property name="[SELF](numberOfTries,[coping])" operator="=" value="1"/>
1193                </PreConditions>
1194                <Effects>
1195                        <Effect probability="1.0">
1196                                <Property name="Increment([coping])" operator="=" value="False"/>
1197                                <Property name="[SELF](numberOfTries,[coping])" operator="=" value="2"/>
1198                        </Effect>
1199                </Effects>
1200        </Action>
1201        <Action name="InferenceIncrementCS3([coping])">
1202                <PreConditions>
1203                        <Property name="Increment([coping])" operator="=" value="True"/>
1204                        <Property name="[SELF](numberOfTries,[coping])" operator="=" value="2"/>
1205                </PreConditions>
1206                <Effects>
1207                        <Effect probability="1.0">
1208                                <Property name="Increment([coping])" operator="=" value="False"/>
1209                                <Property name="[SELF](numberOfTries,[coping])" operator="=" value="3"/>
1210                        </Effect>
1211                </Effects>
1212        </Action>
1213        <Action name="InferenceIncrementCS4([coping])">
1214                <PreConditions>
1215                        <Property name="Increment([coping])" operator="=" value="True"/>
1216                        <Property name="[SELF](numberOfTries,[coping])" operator="=" value="3"/>
1217                </PreConditions>
1218                <Effects>
1219                        <Effect probability="1.0">
1220                                <Property name="Increment([coping])" operator="=" value="False"/>
1221                                <Property name="[SELF](numberOfTries,[coping])" operator="=" value="4"/>
1222                        </Effect>
1223                </Effects>
1224        </Action>
1225        <Action name="InferenceIncrementCS5([coping])">
1226                <PreConditions>
1227                        <Property name="Increment([coping])" operator="=" value="True"/>
1228                        <Property name="[SELF](numberOfTries,[coping])" operator="=" value="4"/>
1229                </PreConditions>
1230                <Effects>
1231                        <Effect probability="1.0">
1232                                <Property name="Increment([coping])" operator="=" value="False"/>
1233                                <Property name="[SELF](numberOfTries,[coping])" operator="=" value="5"/>
1234                        </Effect>
1235                </Effects>
1236        </Action>
1237        <Action name="InferenceIncrementCS6([coping])">
1238                <PreConditions>
1239                        <Property name="Increment([coping])" operator="=" value="True"/>
1240                        <Property name="[SELF](numberOfTries,[coping])" operator="=" value="5"/>
1241                </PreConditions>
1242                <Effects>
1243                        <Effect probability="1.0">
1244                                <Property name="Increment([coping])" operator="=" value="False"/>
1245                                <Property name="[SELF](numberOfTries,[coping])" operator="=" value="6"/>
1246                        </Effect>
1247                </Effects>
1248        </Action>
1249        <!-- Annoyed inferences -->
1250        <Action name="InferenceAnnoyed1([target])">
1251                <PreConditions>
1252                        <RecentEvent occurred="True" subject="[target]" action="SpeechAct" target="[any]" parameters="protest"/>
1253                </PreConditions>
1254                <Effects>
1255                        <Effect probability="1.0">
1256                                <Property name="[target](annoyed)" operator="=" value="True"/>
1257                        </Effect>
1258                </Effects>
1259        </Action>
1260        <Action name="InferenceAnnoyed2([target])">
1261                <PreConditions>
1262                        <RecentEvent occurred="True" subject="[target]" action="cry"/>
1263                </PreConditions>
1264                <Effects>
1265                        <Effect probability="1.0">
1266                                <Property name="[target](annoyed)" operator="=" value="True"/>
1267                        </Effect>
1268                </Effects>
1269        </Action>
1270        <Action name="InferenceAnnoyed3([target])">
1271                <PreConditions>
1272                        <RecentEvent occurred="True" subject="[target]" action="SpeechAct" target="[any]" parameters="insult"/>
1273                </PreConditions>
1274                <Effects>
1275                        <Effect probability="1.0">
1276                                <Property name="[target](annoyed)" operator="=" value="True"/>
1277                        </Effect>
1278                </Effects>
1279        </Action>
1280        <Action name="InferenceAnnoyed4([target])">
1281                <PreConditions>
1282                        <RecentEvent occurred="True" subject="[target]" action="Question" target="[any]" parameters="threatfightback"/>
1283                </PreConditions>
1284                <Effects>
1285                        <Effect probability="1.0">
1286                                <Property name="[target](annoyed)" operator="=" value="True"/>
1287                        </Effect>
1288                </Effects>
1289        </Action>
1290        <!-- Inference operators for the "join group" situation that involves 3 agents, i.e. trying to join a groupOf2 -->
1291        <Action name="InferenceGroup1([JoinAgent],[GroupAgent1],[GroupAgent2],[group])">
1292                <PreConditions>
1293                        <Property name="[group](isGroupOf2)" operator="=" value="True"/>
1294                        <Property name="[GroupAgent1](role)" operator="=" value="Bully"/>
1295                        <Property name="[GroupAgent2](role)" operator="=" value="Defender"/>
1296                        <Property name="[JoinAgent](inGroup,[group])" operator="=" value="Pending"/>
1297                        <Property name="[GroupAgent1](inGroup,[group])" operator="=" value="True"/>
1298                        <Property name="[GroupAgent2](inGroup,[group])" operator="=" value="True"/>
1299                        <RecentEvent occurred="True" subject="[GroupAgent1]" action="Reply" target="[JoinAgent]" parameters="joingroupquestion,positiveanswer,[group]"/>
1300                        <RecentEvent occurred="True" subject="[GroupAgent2]" action="Reply" target="[JoinAgent]" parameters="joingroupquestion,positiveanswer,[group]"/>
1301                </PreConditions>
1302                <Effects>
1303                        <Effect probability="1">
1304                                <Property name="[JoinAgent](inGroup,[group])" operator="=" value="True"/>
1305                        </Effect>
1306                </Effects>
1307        </Action>
1308        <Action name="InferenceGroup2([JoinAgent],[GroupAgent1],[group])">
1309                <PreConditions>
1310                        <Property name="[group](isGroupOf2)" operator="=" value="True"/>
1311                        <Property name="[GroupAgent1](role)" operator="=" value="Bully"/>
1312                        <Property name="[GroupAgent2](role)" operator="=" value="Defender"/>
1313                        <Property name="[JoinAgent](inGroup,[group])" operator="=" value="Pending"/>
1314                        <Property name="[GroupAgent1](inGroup,[group])" operator="=" value="True"/>
1315                        <Property name="[GroupAgent2](inGroup,[group])" operator="=" value="True"/>
1316                        <RecentEvent occurred="True" subject="[GroupAgent1]" action="Reply" target="[JoinAgent]" parameters="joingroupquestion,negativeanswer,[group]"/>
1317                        <RecentEvent occurred="True" subject="[GroupAgent2]" action="Reply" target="[JoinAgent]" parameters="joingroupquestion,negativeanswer,[group]"/>
1318                </PreConditions>
1319                <Effects>
1320                        <Effect probability="1">
1321                                <Property name="[JoinAgent](inGroup,[group])" operator="=" value="False"/>
1322                        </Effect>
1323                        <Effect probability="1">
1324                                <Property name="[JoinAgent](needToCope)" operator="=" value="True"/>
1325                        </Effect>
1326                </Effects>
1327        </Action>
1328        <!-- For the next inference operators we will use the variables AgentPos and AgentNeg. All inferences
1329                  refer to situations where, one agent tries to overpower the other in the question, of whether the
1330                  victim should be allowed to join. AgentPos is the agent who (initially) wants the victim to join (usually Defender),
1331                  AgentNeg, the one who does not want that.
1332                  The overpowered property reads like this:
1333
1334                  Helper(GroupAprovalOverpowered,Bully) = True means the helper could overpower the bully, John is in the group.
1335                        This is used when the bully started objecting.
1336                  Helper(GroupAprovalOverpowered,Bully) = False means the helper could NOT overpower the bully, John is NOT in the group.
1337                        This is used when the bully started objecting.
1338                  Bully(GroupAprovalOverpowered,Helper) = True means the bully could overpower the helper, John is NOT in the group.
1339                        This is used when the helper started objecting.
1340                  Bully(GroupAprovalOverpowered,Helper) = True means the bully could NOT overpower the helper, John is in the group.
1341                        This is used when the helper started objecting.
1342 -->
1343        <Action name="InferenceGroup3([JoinAgent],[AgentNeg],[group])">
1344                <PreConditions>
1345                        <Property name="[group](isGroupOf2)" operator="=" value="True"/>
1346                        <Property name="[AgentNeg](role)" operator="=" value="Bully"/>
1347                        <Property name="[AgentPos](role)" operator="=" value="Defender"/>
1348                        <Property name="[JoinAgent](inGroup,[group])" operator="=" value="Pending"/>
1349                        <Property name="[AgentNeg](inGroup,[group])" operator="=" value="True"/>
1350                        <Property name="[AgentPos](inGroup,[group])" operator="=" value="True"/>
1351                        <RecentEvent occurred="True" subject="[AgentNeg]" action="Reply" target="[JoinAgent]" parameters="joingroupquestion,negativeanswer,[group]"/>
1352                        <RecentEvent occurred="True" subject="[AgentPos]" action="Reply" target="[JoinAgent]" parameters="joingroupquestion,positiveanswer,[group]"/>
1353                        <Property name="[AgentPos](groupApprovalOverPowered,[AgentNeg],[group])" operator="=" value="False"/>
1354                </PreConditions>
1355                <Effects>
1356                        <Effect probability="1">
1357                                <Property name="[JoinAgent](inGroup,[group])" operator="=" value="False"/>
1358                        </Effect>
1359                        <Effect probability="1">
1360                                <Property name="[JoinAgent](needToCope)" operator="=" value="True"/>
1361                        </Effect>
1362                </Effects>
1363        </Action>
1364        <Action name="InferenceGroup4([JoinAgent],[AgentNeg],[group])">
1365                <PreConditions>
1366                        <Property name="[group](isGroupOf2)" operator="=" value="True"/>
1367                        <Property name="[AgentNeg](role)" operator="=" value="Bully"/>
1368                        <Property name="[AgentPos](role)" operator="=" value="Defender"/>
1369                        <Property name="[JoinAgent](inGroup,[group])" operator="=" value="Pending"/>
1370                        <Property name="[AgentNeg](inGroup,[group])" operator="=" value="True"/>
1371                        <Property name="[AgentPos](inGroup,[group])" operator="=" value="True"/>
1372                        <RecentEvent occurred="True" subject="[AgentNeg]" action="Reply" target="[JoinAgent]" parameters="joingroupquestion,negativeanswer,[group]"/>
1373                        <RecentEvent occurred="True" subject="[AgentPos]" action="Reply" target="[JoinAgent]" parameters="joingroupquestion,positiveanswer,[group]"/>
1374                        <Property name="[AgentPos](groupApprovalOverPowered,[AgentNeg],[group])" operator="=" value="True"/>
1375                </PreConditions>
1376                <Effects>
1377                        <Effect probability="1">
1378                                <Property name="[JoinAgent](inGroup,[group])" operator="=" value="True"/>
1379                        </Effect>
1380                </Effects>
1381        </Action>
1382        <Action name="InferenceGroup5([JoinAgent],[AgentNeg],[group])">
1383                <PreConditions>
1384                        <Property name="[group](isGroupOf2)" operator="=" value="True"/>
1385                        <Property name="[AgentNeg](role)" operator="=" value="Bully"/>
1386                        <Property name="[AgentPos](role)" operator="=" value="Defender"/>
1387                        <Property name="[JoinAgent](inGroup,[group])" operator="=" value="Pending"/>
1388                        <Property name="[AgentNeg](inGroup,[group])" operator="=" value="True"/>
1389                        <Property name="[AgentPos](inGroup,[group])" operator="=" value="True"/>
1390                        <RecentEvent occurred="True" subject="[AgentNeg]" action="Reply" target="[JoinAgent]" parameters="joingroupquestion,negativeanswer,[group]"/>
1391                        <RecentEvent occurred="True" subject="[AgentPos]" action="Reply" target="[JoinAgent]" parameters="joingroupquestion,positiveanswer,[group]"/>
1392                        <Property name="[AgentNeg](groupApprovalOverPowered,[AgentPos],[group])" operator="=" value="True"/>
1393                </PreConditions>
1394                <Effects>
1395                        <Effect probability="1">
1396                                <Property name="[JoinAgent](inGroup,[group])" operator="=" value="False"/>
1397                        </Effect>
1398                        <Effect probability="1">
1399                                <Property name="[JoinAgent](needToCope)" operator="=" value="True"/>
1400                        </Effect>
1401                </Effects>
1402        </Action>
1403        <Action name="InferenceGroup6([JoinAgent],[AgentNeg],[group])">
1404                <PreConditions>
1405                        <Property name="[group](isGroupOf2)" operator="=" value="True"/>
1406                        <Property name="[AgentNeg](role)" operator="=" value="Bully"/>
1407                        <Property name="[AgentPos](role)" operator="=" value="Defender"/>
1408                        <Property name="[JoinAgent](inGroup,[group])" operator="=" value="Pending"/>
1409                        <Property name="[AgentNeg](inGroup,[group])" operator="=" value="True"/>
1410                        <Property name="[AgentPos](inGroup,[group])" operator="=" value="True"/>
1411                        <RecentEvent occurred="True" subject="[AgentNeg]" action="Reply" target="[JoinAgent]" parameters="joingroupquestion,negativeanswer,[group]"/>
1412                        <RecentEvent occurred="True" subject="[AgentPos]" action="Reply" target="[JoinAgent]" parameters="joingroupquestion,positiveanswer,[group]"/>
1413                        <Property name="[AgentNeg](groupApprovalOverPowered,[AgentPos],[group])" operator="=" value="False"/>
1414                </PreConditions>
1415                <Effects>
1416                        <Effect probability="1">
1417                                <Property name="[JoinAgent](inGroup,[group])" operator="=" value="True"/>
1418                        </Effect>
1419                </Effects>
1420        </Action>
1421        <Action name="InferenceGroup11([AgentNeg],[AgentPos],[group])">
1422                <PreConditions>
1423                        <Property name="[AgentNeg](role)" operator="=" value="Bully"/>
1424                        <Property name="[AgentPos](role)" operator="=" value="Defender"/>
1425                        <RecentEvent subject="[AgentPos]" target="[AgentNeg]" action="SpeechAct" parameters="joingroupquestionnegativeanswerobjectacceptanswer,[group]"/>
1426                </PreConditions>
1427                <Effects>
1428                        <Effect probability="1">
1429                                <Property name="[AgentNeg](groupApprovalOverPowered,[AgentPos],[group])" operator="=" value="False"/>
1430                        </Effect>
1431                </Effects>
1432        </Action>
1433        <Action name="InferenceGroup12([AgentNeg],[AgentPos],[group])">
1434                <PreConditions>
1435                        <Property name="[AgentNeg](role)" operator="=" value="Bully"/>
1436                        <Property name="[AgentPos](role)" operator="=" value="Defender"/>
1437                        <RecentEvent subject="[AgentPos]" target="[AgentNeg]" action="SpeechAct" parameters="joingroupquestionthreatleavepositiveanswer,[group]"/>
1438                </PreConditions>
1439                <Effects>
1440                        <Effect probability="1">
1441                                <Property name="[AgentNeg](groupApprovalOverPowered,[AgentPos],[group])" operator="=" value="True"/>
1442                        </Effect>
1443                </Effects>
1444        </Action>
1445        <Action name="InferenceGroup13([AgentNeg],[AgentPos],[group])">
1446                <PreConditions>
1447                        <Property name="[AgentNeg](role)" operator="=" value="Bully"/>
1448                        <Property name="[AgentPos](role)" operator="=" value="Defender"/>
1449                        <RecentEvent subject="[AgentPos]" target="[AgentNeg]" action="SpeechAct" parameters="joingroupquestionthreatleavenegativeanswer,[group]"/>
1450                </PreConditions>
1451                <Effects>
1452                        <Effect probability="1">
1453                                <Property name="[AgentNeg](groupApprovalOverPowered,[AgentPos],[group])" operator="=" value="False"/>
1454                        </Effect>
1455                </Effects>
1456        </Action>
1457        <Action name="InferenceGroup16([AgentPos],[AgentNeg],[group])">
1458                <PreConditions>
1459                        <Property name="[AgentNeg](role)" operator="=" value="Bully"/>
1460                        <Property name="[AgentPos](role)" operator="=" value="Defender"/>
1461                        <RecentEvent subject="[AgentPos]" target="[AgentNeg]" action="Reply" parameters="joingroupquestionpositiveanswerobject,negativeanswer,[group]"/>
1462                </PreConditions>
1463                <Effects>
1464                        <Effect probability="1">
1465                                <Property name="[AgentPos](groupApprovalOverPowered,[AgentNeg],[group])" operator="=" value="True"/>
1466                        </Effect>
1467                </Effects>
1468        </Action>
1469        <Action name="InferenceGroup17([AgentPos],[AgentNeg],[group])">
1470                <PreConditions>
1471                        <Property name="[AgentNeg](role)" operator="=" value="Bully"/>
1472                        <Property name="[AgentPos](role)" operator="=" value="Defender"/>
1473                        <RecentEvent subject="[AgentPos]" target="[AgentNeg]" action="Reply" parameters="joingroupquestionpositiveanswerobject,positiveanswer,[group]"/>
1474                </PreConditions>
1475                <Effects>
1476                        <Effect probability="1">
1477                                <Property name="[AgentPos](groupApprovalOverPowered,[AgentNeg],[group])" operator="=" value="False"/>
1478                        </Effect>
1479                </Effects>
1480        </Action>
1481        <!-- Inference operators for the "join group" situation that involves 2 agents,  i.e. trying to join a groupOf1 -->
1482        <Action name="InferenceGroup8([JoinAgent],[GroupAgent],[group])">
1483                <PreConditions>
1484                        <Property name="[group](isGroupOf1)" operator="=" value="True"/>
1485                        <Property name="[JoinAgent](inGroup,[group])" operator="=" value="Pending"/>
1486                        <Property name="[GroupAgent](inGroup,[group])" operator="=" value="True"/>
1487                        <RecentEvent subject="[GroupAgent]" target="[JoinAgent]" action="Reply" parameters="joingroupquestion,positiveanswer,[group]"/>
1488                </PreConditions>
1489                <Effects>
1490                        <Effect probability="1">
1491                                <Property name="[JoinAgent](inGroup,[group])" operator="=" value="True"/>
1492                        </Effect>
1493                </Effects>
1494        </Action>
1495        <Action name="InferenceGroup9([JoinAgent],[GroupAgent],[group])">
1496                <PreConditions>
1497                        <Property name="[group](isGroupOf1)" operator="=" value="True"/>
1498                        <Property name="[JoinAgent](inGroup,[group])" operator="=" value="Pending"/>
1499                        <Property name="[GroupAgent](inGroup,[group])" operator="=" value="True"/>
1500                        <RecentEvent subject="[GroupAgent]" target="[JoinAgent]" action="Reply" parameters="joingroupconvince,positiveanswer,[group]"/>
1501                </PreConditions>
1502                <Effects>
1503                        <Effect probability="1">
1504                                <Property name="[JoinAgent](inGroup,[group])" operator="=" value="True"/>
1505                        </Effect>
1506                </Effects>
1507        </Action>
1508        <Action name="InferenceGroup10([JoinAgent],[GroupAgent],[group])">
1509                <PreConditions>
1510                        <Property name="[group](isGroupOf1)" operator="=" value="True"/>
1511                        <Property name="[JoinAgent](inGroup,[group])" operator="=" value="Pending"/>
1512                        <Property name="[GroupAgent](inGroup,[group])" operator="=" value="True"/>
1513                        <RecentEvent subject="[GroupAgent]" target="[JoinAgent]" action="Reply" parameters="joingroupconvince,negativeanswer,[group]"/>
1514                </PreConditions>
1515                <Effects>
1516                        <Effect probability="1">
1517                                <Property name="[JoinAgent](inGroup,[group])" operator="=" value="False"/>
1518                        </Effect>
1519                        <Effect probability="1">
1520                                <Property name="[JoinAgent](needToCope)" operator="=" value="True"/>
1521                        </Effect>
1522                </Effects>
1523        </Action>
1524        <!-- Friendship inferences -->
1525        <Action name="InferenceFriends([ag1],[ag2])">
1526                <PreConditions>
1527                        <RecentEvent occurred="True" subject="[ag1]" target="[ag2]" action="Reply" parameters="makefriend,positiveanswer"/>
1528                </PreConditions>
1529                <Effects>
1530                        <Effect probability="1">
1531                                <Property name="[ag1](friend,[ag2])" operator="=" value="True"/>
1532                                <Property name="[ag2](friend,[ag1])" operator="=" value="True"/>
1533                        </Effect>
1534                </Effects>
1535        </Action>
1536        <!-- Helper inferences -->
1537        <Action name="InferenceHelper1([ag1],[ag2])">
1538                <PreConditions>
1539                        <RecentEvent occurred="True" subject="[ag1]" target="[ag2]" action="Reply" parameters="askforhelp,positiveanswer"/>
1540                </PreConditions>
1541                <Effects>
1542                        <Effect probability="1">
1543                                <Property name="[ag1](helper,[ag2])" operator="=" value="True"/>
1544                        </Effect>
1545                </Effects>
1546        </Action>
1547        <Action name="InferenceHelper([ag1],[ag2])">
1548                <PreConditions>
1549                        <RecentEvent occurred="True" subject="[ag1]" target="[ag2]" action="Reply" parameters="helpprotection,positiveanswer"/>
1550                </PreConditions>
1551                <Effects>
1552                        <Effect probability="1">
1553                                <Property name="[ag2](helper,[ag1])" operator="=" value="True"/>
1554                        </Effect>
1555                </Effects>
1556        </Action>
1557</DomainActions>
Note: See TracBrowser for help on using the repository browser.