1:-include(library('ec_planner/ec_test_incl')). 2:-expects_dialect(pfc). 3 % loading(always,'examples/Mueller2006/Chapter6/CarryingABook1.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%; Example: Carrying a Book (Effect Axioms) 15%; 16%; @book{Mueller:2006, 17%; author = "Erik T. Mueller", 18%; year = "2006", 19%; title = "Commonsense Reasoning", 20%; address = "San Francisco", 21%; publisher = "Morgan Kaufmann/Elsevier", 22%; } 23%; 24%; 25 26% option modeldiff on 27:- set_ec_option(modeldiff, on). 28 29% load foundations/Root.e 30 31% load foundations/EC.e 32 33% sort object 34==> sort(object). 35 36% sort agent: object 37==> subsort(agent,object). 38 39% sort room 40==> sort(room). 41 42% object Book 43==> t(object,book). 44 45% agent Nathan 46==> t(agent,nathan). 47 48% room LivingRoom, Kitchen 49==> t(room,livingRoom). 50==> t(room,kitchen). 51 52% event LetGoOf(agent,object) 53 % event(letGoOf(agent,object)). 54==> mpred_prop(letGoOf(agent,object),event). 55==> meta_argtypes(letGoOf(agent,object)). 56 57% event PickUp(agent,object) 58 % event(pickUp(agent,object)). 59==> mpred_prop(pickUp(agent,object),event). 60==> meta_argtypes(pickUp(agent,object)). 61 62% event Walk(agent,room,room) 63 % event(walk(agent,room,room)). 64==> mpred_prop(walk(agent,room,room),event). 65==> meta_argtypes(walk(agent,room,room)). 66 67% fluent InRoom(object,room) 68 % fluent(inRoom(object,room)). 69==> mpred_prop(inRoom(object,room),fluent). 70==> meta_argtypes(inRoom(object,room)). 71 72% fluent Holding(agent,object) 73 % fluent(holding(agent,object)). 74==> mpred_prop(holding(agent,object),fluent). 75==> meta_argtypes(holding(agent,object)). 76 77 78% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:42 79%; Sigma 80% [agent,room1,room2,time] 81% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:45 82% Initiates(Walk(agent,room1,room2),InRoom(agent,room2),time). 83axiom(initiates(walk(Agent, Room1, Room2), inRoom(Agent, Room2), Time), 84 []). 85 86 87% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:47 88% [agent,room1,room2,time] 89% room1!=% room2 -> 90% Terminates(Walk(agent,room1,room2),InRoom(agent,room1),time). 91% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:49 92axiom(terminates(walk(Agent, Room1, Room2), inRoom(Agent, Room1), Time), 93 [{dif(Room1, Room2)}]). 94 95 96% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:51 97% [agent,object,room,time] 98% HoldsAt(InRoom(agent,room),time) & 99% HoldsAt(InRoom(object,room),time) -> 100% Initiates(PickUp(agent,object),Holding(agent,object),time). 101% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:54 102axiom(initiates(pickUp(Agent, Object), holding(Agent, Object), Time), 103 104 [ holds_at(inRoom(Agent, Room), Time), 105 holds_at(inRoom(Object, Room), Time) 106 ]). 107 108 109% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:56 110% [agent,object,time] 111% HoldsAt(Holding(agent,object),time) -> 112% Terminates(LetGoOf(agent,object),Holding(agent,object),time). 113% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:58 114axiom(terminates(letGoOf(Agent, Object), holding(Agent, Object), Time), 115 [holds_at(holding(Agent, Object), Time)]). 116 117 118% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:60 119% [agent,object,room1,room2,time] 120% HoldsAt(Holding(agent,object),time) -> 121% Initiates(Walk(agent,room1,room2),InRoom(object,room2),time). 122% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:62 123axiom(initiates(walk(Agent, Room1, Room2), inRoom(Object, Room2), Time), 124 [holds_at(holding(Agent, Object), Time)]). 125 126 127% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:64 128% [agent,object,room1,room2,time] 129% HoldsAt(Holding(agent,object),time) & 130% room1!=room2 -> 131% Terminates(Walk(agent,room1,room2),InRoom(object,room1),time). 132% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:67 133axiom(terminates(walk(Agent, Room1, Room2), inRoom(Object, Room1), Time), 134 135 [ holds_at(holding(Agent, Object), Time), 136 { dif(Room1, Room2) 137 } 138 ]). 139 140 141% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:69 142%; Delta 143 144 145% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:71 146% Happens(PickUp(Nathan,Book),0). 147axiom(happens(pickUp(nathan, book), t), 148 [is_time(0)]). 149 150 151% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:72 152% Happens(Walk(Nathan,LivingRoom,Kitchen),1). 153axiom(happens(walk(nathan, livingRoom, kitchen), start), 154 [is_time(1), b(t, start), ignore(t+1=start)]). 155 156 157% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:74 158%; Psi 159% [object,room1,room2,time] 160% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:77 161% HoldsAt(InRoom(object,room1),time) & 162% HoldsAt(InRoom(object,room2),time) -> 163% room1=room2. 164% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:79 165axiom(Room1=Room2, 166 167 [ holds_at(inRoom(Object, Room1), Time), 168 holds_at(inRoom(Object, Room2), Time) 169 ]). 170 171 172% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:81 173%; Gamma 174 175 176% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:83 177% HoldsAt(InRoom(Nathan,LivingRoom),0). 178axiom(initially(inRoom(nathan, livingRoom)), 179 []). 180 181 182% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:84 183% HoldsAt(InRoom(Book,LivingRoom),0). 184axiom(initially(inRoom(book, livingRoom)), 185 []). 186 187 188% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:86 189%; added: 190 191 192% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:87 193% !HoldsAt(Holding(Nathan,Book),0). 194 % not(initially(holding(nathan,book))). 195axiom(not(initially(holding(nathan, book))), 196 []). 197 198 199% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:88 200% [agent,time] 201 % !HoldsAt(Holding(agent,agent),time). 202 % not(holds_at(holding(Agent,Agent),Time)). 203axiom(not(holds_at(holding(Holding_Param, Holding_Param), Time2)), 204 []). 205 206% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:90 207% completion Happens 208% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:91 209==> completion(happens). 210 211% range time 0 2 212% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:93 213==> range(time,0,2). 214 215% range offset 1 1 216% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter6/CarryingABook1.e:94 217==> range(offset,1,1). 218%; End of file.