1:-include(library('ec_planner/ec_test_incl')).    2:-expects_dialect(pfc).    3 %  loading(always,'ecnet/Feeling.e').
    4%;
    5%; Copyright (c) 2005 IBM Corporation and others.
    6%; All rights reserved. This program and the accompanying materials
    7%; are made available under the terms of the Common Public License v1.0
    8%; which accompanies this distribution, and is available at
    9%; http://www.eclipse.org/legal/cpl-v10.html
   10%;
   11%; Contributors:
   12%; IBM - Initial implementation
   13%;
   14%; feeling = emotion, attitude, ...
   15%;
   16%; The Feeling representation includes simple positive, neutral, and
   17%; negative emotions, and positive, neutral, and negative attitudes
   18%; toward objects.
   19%;
   20%; emotions
   21%; agent is happy.
   22
   23% fluent Happy(agent)
   24 %  fluent(happy(agent)).
   25==> mpred_prop(happy(agent),fluent).
   26==> meta_argtypes(happy(agent)).
   27
   28
   29% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:22
   30%; agent is emotionally neutral or calm.
   31
   32% fluent Calm(agent)
   33 %  fluent(calm(agent)).
   34% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:24
   35==> mpred_prop(calm(agent),fluent).
   36==> meta_argtypes(calm(agent)).
   37
   38
   39% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:25
   40%; agent is unhappy.
   41
   42% fluent Unhappy(agent)
   43 %  fluent(unhappy(agent)).
   44% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:27
   45==> mpred_prop(unhappy(agent),fluent).
   46==> meta_argtypes(unhappy(agent)).
   47
   48
   49% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:28
   50%; At any moment, an agent is in one of three emotional states:
   51
   52% xor Happy, Calm, Unhappy
   53% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:30
   54xor([happy,calm,unhappy]).
   55%; agent becomes happy.
   56
   57% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:32
   58% event BecomeHappy(agent)
   59 %  event(becomeHappy(agent)).
   60% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:33
   61==> mpred_prop(becomeHappy(agent),event).
   62==> meta_argtypes(becomeHappy(agent)).
   63
   64
   65% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:34
   66%; agent becomes calm.
   67
   68% event BecomeCalm(agent)
   69 %  event(becomeCalm(agent)).
   70% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:36
   71==> mpred_prop(becomeCalm(agent),event).
   72==> meta_argtypes(becomeCalm(agent)).
   73
   74
   75% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:37
   76%; agent becomes unhappy.
   77
   78% event BecomeUnhappy(agent)
   79 %  event(becomeUnhappy(agent)).
   80% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:39
   81==> mpred_prop(becomeUnhappy(agent),event).
   82==> meta_argtypes(becomeUnhappy(agent)).
   83
   84
   85% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:40
   86%; A number of effect and precondition axioms deal with the transitions
   87%; from one emotional state to another:
   88% [agent,time]
   89% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:43
   90% Initiates(BecomeHappy(agent),Happy(agent),time).
   91axiom(initiates(becomeHappy(Agent), happy(Agent), Time),
   92    []).
   93
   94
   95% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:45
   96% [agent,time]
   97% HoldsAt(Calm(agent),time) ->
   98% Terminates(BecomeHappy(agent),Calm(agent),time).
   99% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:47
  100axiom(terminates(becomeHappy(Agent), calm(Agent), Time),
  101    [holds_at(calm(Agent), Time)]).
  102
  103
  104% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:49
  105% [agent,time]
  106% HoldsAt(Unhappy(agent),time) ->
  107% Terminates(BecomeHappy(agent),Unhappy(agent),time).
  108% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:51
  109axiom(terminates(becomeHappy(Agent), unhappy(Agent), Time),
  110    [holds_at(unhappy(Agent), Time)]).
  111
  112
  113% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:53
  114% [agent,time]
  115% Happens(BecomeHappy(agent),time) ->
  116% !HoldsAt(Happy(agent),time).
  117% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:55
  118axiom(requires(becomeHappy(Agent), Time),
  119    [not(holds_at(happy(Agent), Time))]).
  120
  121
  122% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:57
  123% [agent,time]
  124% Initiates(BecomeCalm(agent),Calm(agent),time).
  125% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:58
  126axiom(initiates(becomeCalm(Agent), calm(Agent), Time),
  127    []).
  128
  129
  130% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:60
  131% [agent,time]
  132% HoldsAt(Happy(agent),time) ->
  133% Terminates(BecomeCalm(agent),Happy(agent),time).
  134% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:62
  135axiom(terminates(becomeCalm(Agent), happy(Agent), Time),
  136    [holds_at(happy(Agent), Time)]).
  137
  138
  139% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:64
  140% [agent,time]
  141% HoldsAt(Unhappy(agent),time) ->
  142% Terminates(BecomeCalm(agent),Unhappy(agent),time).
  143% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:66
  144axiom(terminates(becomeCalm(Agent), unhappy(Agent), Time),
  145    [holds_at(unhappy(Agent), Time)]).
  146
  147
  148% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:68
  149% [agent,time]
  150% Happens(BecomeCalm(agent),time) -> !HoldsAt(Calm(agent),time).
  151% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:69
  152axiom(requires(becomeCalm(Agent), Time),
  153    [not(holds_at(calm(Agent), Time))]).
  154
  155
  156% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:71
  157% [agent,time]
  158% Initiates(BecomeUnhappy(agent),Unhappy(agent),time).
  159% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:72
  160axiom(initiates(becomeUnhappy(Agent), unhappy(Agent), Time),
  161    []).
  162
  163
  164% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:74
  165% [agent,time]
  166% HoldsAt(Happy(agent),time) ->
  167% Terminates(BecomeUnhappy(agent),Happy(agent),time).
  168% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:76
  169axiom(terminates(becomeUnhappy(Agent), happy(Agent), Time),
  170    [holds_at(happy(Agent), Time)]).
  171
  172
  173% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:78
  174% [agent,time]
  175% HoldsAt(Calm(agent),time) ->
  176% Terminates(BecomeUnhappy(agent),Calm(agent),time).
  177% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:80
  178axiom(terminates(becomeUnhappy(Agent), calm(Agent), Time),
  179    [holds_at(calm(Agent), Time)]).
  180
  181
  182% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:82
  183% [agent,time]
  184% Happens(BecomeUnhappy(agent),time) -> !HoldsAt(Unhappy(agent),time).
  185% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:83
  186axiom(requires(becomeUnhappy(Agent), Time),
  187    [not(holds_at(unhappy(Agent), Time))]).
  188
  189
  190% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:85
  191%; anger
  192
  193% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:87
  194% fluent AngryAt(agent,agent)
  195 %  fluent(angryAt(agent,agent)).
  196% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:88
  197==> mpred_prop(angryAt(agent,agent),fluent).
  198==> meta_argtypes(angryAt(agent,agent)).
  199
  200% event BecomeAngryAt(agent,agent)
  201 %  event(becomeAngryAt(agent,agent)).
  202% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:90
  203==> mpred_prop(becomeAngryAt(agent,agent),event).
  204==> meta_argtypes(becomeAngryAt(agent,agent)).
  205
  206
  207% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:91
  208% [agent1,agent2,time]
  209% Initiates(BecomeAngryAt(agent1,agent2),AngryAt(agent1,agent2),time).
  210% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:92
  211axiom(initiates(becomeAngryAt(Agent1, Agent2), angryAt(Agent1, Agent2), Time),
  212    []).
  213
  214
  215% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:94
  216% [agent1,agent2,time]
  217% Terminates(BecomeHappy(agent1),AngryAt(agent1,agent2),time).
  218% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:95
  219axiom(terminates(becomeHappy(Agent1), angryAt(Agent1, Agent2), Time),
  220    []).
  221
  222
  223% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:97
  224% [agent1,agent2,time]
  225% Happens(BecomeAngryAt(agent1,agent2),time) ->
  226% Happens(BecomeUnhappy(agent1),time).
  227% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:99
  228axiom(happens(becomeUnhappy(Agent1), Time),
  229    [happens(becomeAngryAt(Agent1, Agent2), Time)]).
  230
  231
  232% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:101
  233%; attitudes
  234%; agent likes object.
  235
  236% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:104
  237% fluent Like(agent,object)
  238 %  fluent(like(agent,object)).
  239% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:105
  240==> mpred_prop(like(agent,object),fluent).
  241==> meta_argtypes(like(agent,object)).
  242
  243
  244% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:105
  245%; agent loves object.
  246
  247% fluent Love(agent,object)
  248 %  fluent(love(agent,object)).
  249% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:107
  250==> mpred_prop(love(agent,object),fluent).
  251==> meta_argtypes(love(agent,object)).
  252
  253
  254% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:107
  255%; agent dislikes object.
  256
  257% fluent Dislike(agent,object)
  258 %  fluent(dislike(agent,object)).
  259% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:109
  260==> mpred_prop(dislike(agent,object),fluent).
  261==> meta_argtypes(dislike(agent,object)).
  262
  263
  264% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:110
  265%; agent likes snow.
  266
  267% fluent LikeSnow(agent)
  268 %  fluent(likeSnow(agent)).
  269% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:112
  270==> mpred_prop(likeSnow(agent),fluent).
  271==> meta_argtypes(likeSnow(agent)).
  272
  273
  274% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:113
  275%; A trigger axiom states that
  276%; if an agent is awake, likes snow, and is in a room that
  277%; looks out onto a location where it is snowing, that agent
  278%; becomes happy:
  279% [agent,room,outside,time]
  280% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:118
  281% !HoldsAt(Happy(agent),time) &
  282% HoldsAt(Awake(agent),time) &
  283% HoldsAt(LikeSnow(agent),time) &
  284% HoldsAt(At(agent,room),time) &
  285% LookOutOnto(room)=outside &
  286% HoldsAt(Snowing(outside),time) ->
  287% Happens(BecomeHappy(agent),time).
  288% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:124
  289axiom(happens(becomeHappy(Agent), Time),
  290   
  291    [ not(holds_at(happy(Agent), Time)),
  292      holds_at(awake(Agent), Time),
  293      holds_at(likeSnow(Agent), Time),
  294      holds_at(at(Agent, Room), Time),
  295      equals(lookOutOnto(Room), Outside),
  296      holds_at(snowing(Outside), Time)
  297    ]).
  298
  299
  300% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:126
  301%; We introduced LikeSnow above since Like
  302%; can only be used to represent that an agent likes a
  303%; particular object, not snow in general.
  304
  305% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:130
  306% event Smile(agent)
  307 %  event(smile(agent)).
  308% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:131
  309==> mpred_prop(smile(agent),event).
  310==> meta_argtypes(smile(agent)).
  311
  312
  313% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/Feeling.e:132
  314%; End of file.