1:-include(library('ec_planner/ec_test_incl')). 2:-expects_dialect(pfc). 3 % loading(always,'ecnet/OMSpace.e'). 4 5 6% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:0 7%; 8%; Copyright (c) 2005 IBM Corporation and others. 9%; All rights reserved. This program and the accompanying materials 10%; are made available under the terms of the Common Public License v1.0 11%; which accompanies this distribution, and is available at 12%; http://www.eclipse.org/legal/cpl-v10.html 13%; 14%; Contributors: 15%; IBM - Initial implementation 16%; 17%; OMSpace: object-scale metric space 18%; 19%; The OMSpace representation deals with metric space at 20%; the scale of objects. 21%; 22%; @article{Morgenstern:2001, 23%; author = "Morgenstern, Leora", 24%; year = "2001", 25%; title = "Mid-sized axiomatizations of commonsense problems: A case study in egg cracking", 26%; journal = "Studia Logica", 27%; volume = "67", 28%; pages = "333--384", 29%; } 30%; 31%; @article{Shanahan:2003, 32%; author = "Shanahan, Murray", 33%; year = "2004", 34%; title = "An attempt to formalise a non-trivial benchmark problem in common sense reasoning", 35%; journal = "Artificial Intelligence", 36%; volume = "153", 37%; pages = "141--165", 38%; } 39%; 40 41% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:34 42% sort height: integer 43% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:35 44==> subsort(height,integer). 45 46% sort distance: integer 47% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:36 48==> subsort(distance,integer). 49%; Height 50%; The height of object is height. 51 52% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:40 53% fluent Height(object,height) 54 % fluent(height(object,height)). 55% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:41 56==> mpred_prop(height(object,height),fluent). 57==> meta_argtypes(height(object,height)). 58 59 60% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:42 61%; State constraint represent the fact that each 62%; object has a unique height: 63% [object,height1,height2,time] 64% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:45 65% HoldsAt(Height(object,height1),time) & 66% HoldsAt(Height(object,height2),time) -> 67% height1=height2. 68% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:47 69axiom(Height1=Height2, 70 71 [ holds_at(height(Object, Height1), Time), 72 holds_at(height(Object, Height2), Time) 73 ]). 74 75 76% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:49 77% [object,time] 78% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:50 79% {height}% HoldsAt(Height(object,height),time). 80 81 /* exists([Height], 82 holds_at(height(Object,Height),Time)). 83 */ 84 85 /* holds_at(height(Height_Param, Some_Param), Time4) :- 86 some(Some_Param, '$kolem_Fn_147'(Height_Param, Time4)). 87 */ 88% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:51 89axiom(holds_at(height(Height_Param, Some_Param), Time4), 90 [some(Some_Param, '$kolem_Fn_147'(Height_Param, Time4))]). 91 92 /* not(some(Some_Param8, '$kolem_Fn_147'(Fn_147_Param, Time7))) :- 93 not(holds_at(height(Fn_147_Param, Some_Param8), Time7)). 94 */ 95axiom(not(some(Some_Param8, '$kolem_Fn_147'(Fn_147_Param, Time7))), 96 [not(holds_at(height(Fn_147_Param, Some_Param8), Time7))]). 97 98 99% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:53 100%; falling 101%; physobj1 is falling from physobj2 to physobj3. 102 103% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:56 104% fluent FallingFromTo(physobj,physobj,physobj) 105 % fluent(fallingFromTo(physobj,physobj,physobj)). 106% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:57 107==> mpred_prop(fallingFromTo(physobj,physobj,physobj),fluent). 108==> meta_argtypes(fallingFromTo(physobj,physobj,physobj)). 109 110 111% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:57 112%; physobj1 starts falling from physobj2 to physobj3. 113 114% event StartFallingFromTo(physobj,physobj,physobj) 115 % event(startFallingFromTo(physobj,physobj,physobj)). 116% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:59 117==> mpred_prop(startFallingFromTo(physobj,physobj,physobj),event). 118==> meta_argtypes(startFallingFromTo(physobj,physobj,physobj)). 119 120 121% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:59 122%; physobj1 collides with physobj2. 123 124% event CollideWith(physobj,physobj) 125 % event(collideWith(physobj,physobj)). 126% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:61 127==> mpred_prop(collideWith(physobj,physobj),event). 128==> meta_argtypes(collideWith(physobj,physobj)). 129 130 131% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:62 132%; An effect axiom states that if a first physical object starts 133%; falling from a second physical object to a third physical 134%; object, the first physical object will be falling from the 135%; second physical object to the third physical object: 136% [physobj1,physobj2,physobj3,time] 137% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:67 138% Initiates(StartFallingFromTo(physobj1,physobj2,physobj3), 139% FallingFromTo(physobj1,physobj2,physobj3), 140% time). 141% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:69 142axiom(initiates(startFallingFromTo(Physobj1, Physobj2, Physobj3), fallingFromTo(Physobj1, Physobj2, Physobj3), Time), 143 []). 144 145 146% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:71 147%; A precondition axiom states that for 148%; a first physical object to start 149%; falling from a second physical object to a third physical 150%; object, 151%; the height of the first physical object and the 152%; second physical object must be the same. 153% [physobj1,physobj2,physobj3,height1,height2,time] 154% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:78 155% Happens(StartFallingFromTo(physobj1,physobj2,physobj3),time) & 156% HoldsAt(Height(physobj1,height1),time) & 157% HoldsAt(Height(physobj2,height2),time) -> 158% height1=height2. 159% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:81 160axiom(Height1=Height2, 161 162 [ happens(startFallingFromTo(Physobj1, Physobj2, Physobj3), 163 Time), 164 holds_at(height(Physobj1, Height1), Time), 165 holds_at(height(Physobj2, Height2), Time) 166 ]). 167 168 169% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:83 170%; A state constraint says that a physical object 171%; cannot fall from itself, cannot fall to itself, 172%; and cannot fall from and to the same physical object: 173% [physobj1,physobj2,physobj3,time] 174% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:87 175% HoldsAt(FallingFromTo(physobj1,physobj2,physobj3),time) -> 176% physobj1!=physobj2 & 177% physobj1!=physobj3 & 178% physobj2!=physobj3. 179 180 /* if(holds_at(fallingFromTo(Physobj1, Physobj2, Physobj3), 181 Time), 182 (Physobj1\=Physobj2, Physobj1\=Physobj3, Physobj2\=Physobj3)). 183 */ 184 185 /* not(holds_at(fallingFromTo(FallingFromTo_Param, Dif_Param, FallingFromTo_Ret), Time4)) :- 186 ( not({dif(FallingFromTo_Param, Dif_Param)}) 187 ; not({dif(FallingFromTo_Param, FallingFromTo_Ret)}) 188 ; not({dif(Dif_Param, FallingFromTo_Ret)}) 189 ). 190 */ 191% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:90 192axiom(not(holds_at(fallingFromTo(FallingFromTo_Param, Dif_Param, FallingFromTo_Ret), Time4)), 193 [not({dif(FallingFromTo_Param, Dif_Param)})]). 194axiom(not(holds_at(fallingFromTo(FallingFromTo_Param, Dif_Param, FallingFromTo_Ret), Time4)), 195 [not({dif(FallingFromTo_Param, FallingFromTo_Ret)})]). 196axiom(not(holds_at(fallingFromTo(FallingFromTo_Param, Dif_Param, FallingFromTo_Ret), Time4)), 197 [not({dif(Dif_Param, FallingFromTo_Ret)})]). 198 199 /* { dif(Dif_Param9, Dif_Ret) 200 } :- 201 holds_at(fallingFromTo(Dif_Param9, 202 Dif_Ret, 203 FallingFromTo_Ret11), 204 Time8). 205 */ 206axiom({ dif(Dif_Param9, Dif_Ret) 207}, 208 209 [ holds_at(fallingFromTo(Dif_Param9, 210 Dif_Ret, 211 FallingFromTo_Ret11), 212 Time8) 213 ]). 214 215 /* { dif(Dif_Param13, Dif_Ret14) 216 } :- 217 holds_at(fallingFromTo(Dif_Param13, _, Dif_Ret14), 218 Time12). 219 */ 220axiom({ dif(Dif_Param13, Dif_Ret14) 221}, 222 223 [ holds_at(fallingFromTo(Dif_Param13, _, Dif_Ret14), 224 Time12) 225 ]). 226 227 /* { dif(Dif_Param16, Dif_Ret18) 228 } :- 229 holds_at(fallingFromTo(FallingFromTo_Param17, 230 Dif_Param16, 231 Dif_Ret18), 232 Time15). 233 */ 234axiom({ dif(Dif_Param16, Dif_Ret18) 235}, 236 237 [ holds_at(fallingFromTo(FallingFromTo_Param17, 238 Dif_Param16, 239 Dif_Ret18), 240 Time15) 241 ]). 242 243 244% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:92 245%; A state constraint says that the sky cannot fall: 246% [sky,physobj1,physobj2,time] 247% !HoldsAt(FallingFromTo(sky,physobj1,physobj2),time). 248 249 /* not(holds_at(fallingFromTo(Sky,Physobj1,Physobj2), 250 Time)). 251 */ 252% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:94 253axiom(not(holds_at(fallingFromTo(FallingFromTo_Param, _, FallingFromTo_Ret), Time4)), 254 []). 255 256 257% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:96 258%; A releases axiom states that if 259%; if a first physical object starts 260%; falling from a second physical object to a third physical 261%; object, the height of the first physical object 262%; will be released from inertia: 263% [physobj1,physobj2,physobj3,height,time] 264% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:102 265% Releases(StartFallingFromTo(physobj1,physobj2,physobj3), 266% Height(physobj1,height), 267% time). 268% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:104 269axiom(releases(startFallingFromTo(Physobj1, Physobj2, Physobj3), height(Physobj1, Height), Time), 270 []). 271 272 273% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:106 274%; A trajectory axiom states that 275%; if a first physical object starts falling 276%; from a second physical object 277%; to a third physical object 278%; at a time and 279%; the first physical object has a height at the time, 280%; then the first physical object will have a height 281%; equal to the height minus an offset 282%; at a time equal to the time plus the offset: 283% [physobj1,physobj2,physobj3,height1,height2,offset,time] 284% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:116 285% HoldsAt(Height(physobj1,height1),time) & 286% height2=height1-offset -> 287% Trajectory(FallingFromTo(physobj1,physobj2,physobj3),time, 288% Height(physobj1,height2),offset). 289% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:119 290axiom(trajectory(fallingFromTo(Physobj1, Physobj2, Physobj3), Time, height(Physobj1, Height2), Offset), 291 292 [ holds_at(height(Physobj1, Height1), Time), 293 equals(Height2, Height1-Offset) 294 ]). 295 296 297% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:121 298%; A trigger axiom states that 299%; if a first physical object is falling 300%; from a second physical object 301%; to a third physical object and 302%; the height of the first physical object 303%; is the same as the height of the third physical object, 304%; the first physical object collides with the 305%; third physical object: 306% [physobj1,physobj2,physobj3,height,time] 307% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:130 308% HoldsAt(FallingFromTo(physobj1,physobj2,physobj3),time) & 309% HoldsAt(Height(physobj1,height),time) & 310% HoldsAt(Height(physobj3,height),time) -> 311% Happens(CollideWith(physobj1,physobj3),time). 312% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:133 313axiom(happens(collideWith(Physobj1, Physobj3), Time), 314 315 [ holds_at(fallingFromTo(Physobj1, Physobj2, Physobj3), 316 Time), 317 holds_at(height(Physobj1, Height), Time), 318 holds_at(height(Physobj3, Height), Time) 319 ]). 320 321 322% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:135 323%; An effect axiom states that 324%; if a first physical object is falling 325%; from a second physical object 326%; to a third physical object and 327%; the first physical object collides with 328%; the third physical object, 329%; the first physical object will be on the third physical object: 330% [physobj1,physobj2,physobj3,time] 331% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:143 332% HoldsAt(FallingFromTo(physobj1,physobj2,physobj3),time) -> 333% Initiates(CollideWith(physobj1,physobj3), 334% On(physobj1,physobj3), 335% time). 336% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:146 337axiom(initiates(collideWith(Physobj1, Physobj3), on(Physobj1, Physobj3), Time), 338 339 [ holds_at(fallingFromTo(Physobj1, Physobj2, Physobj3), 340 Time) 341 ]). 342 343 344% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:148 345%; An effect axiom states that 346%; if a physical object collides with another 347%; physical object, 348%; the height of the first physical object will 349%; be the height of the second physical object: 350% [physobj1,physobj2,height,time] 351% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:154 352% HoldsAt(Height(physobj2,height),time) -> 353% Initiates(CollideWith(physobj1,physobj2), 354% Height(physobj1,height), 355% time). 356% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:157 357axiom(initiates(collideWith(Physobj1, Physobj2), height(Physobj1, Height), Time), 358 [holds_at(height(Physobj2, Height), Time)]). 359 360 361% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:159 362%;[physobj1,physobj2,height1,height2,time] 363%;HoldsAt(Height(physobj2,height1),time) & 364%;height1 != height2 -> 365%;Terminates(CollideWith(physobj1,physobj2), 366%; Height(physobj1,height2), 367%; time). 368%; An effect axiom states that 369%; if a first physical object is falling 370%; from a second physical object 371%; to a third physical object and 372%; the first physical object collides with 373%; the third physical object, 374%; the first physical object will no longer be 375%; falling from the second physical object to the 376%; third physical object: 377% [physobj1,physobj2,physobj3,time] 378% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:176 379% HoldsAt(FallingFromTo(physobj1,physobj2,physobj3),time) -> 380% Terminates(CollideWith(physobj1,physobj3), 381% FallingFromTo(physobj1,physobj2,physobj3), 382% time). 383% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:179 384axiom(terminates(collideWith(Physobj1, Physobj3), fallingFromTo(Physobj1, Physobj2, Physobj3), Time), 385 386 [ holds_at(fallingFromTo(Physobj1, Physobj2, Physobj3), 387 Time) 388 ]). 389 390 391% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:181 392%; flying 393%; agent is flying from physobj1 to physobj2. 394 395% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:184 396% fluent FlyingFromTo(agent,physobj,physobj) 397 % fluent(flyingFromTo(agent,physobj,physobj)). 398% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:185 399==> mpred_prop(flyingFromTo(agent,physobj,physobj),fluent). 400==> meta_argtypes(flyingFromTo(agent,physobj,physobj)). 401 402 403% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:185 404%; agent starts flying from physobj1 to physobj2. 405 406% event StartFlyingFromTo(agent,physobj,physobj) 407 % event(startFlyingFromTo(agent,physobj,physobj)). 408% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:187 409==> mpred_prop(startFlyingFromTo(agent,physobj,physobj),event). 410==> meta_argtypes(startFlyingFromTo(agent,physobj,physobj)). 411 412 413% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:187 414%; agent reaches physobj. 415 416% event Reach(agent,physobj) 417 % event(reach(agent,physobj)). 418% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:189 419==> mpred_prop(reach(agent,physobj),event). 420==> meta_argtypes(reach(agent,physobj)). 421 422 423% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:190 424%; An effect axiom states that if an agent starts 425%; flying from a physical object to another physical object, 426%; the agent will be flying from the first physical object 427%; to the second physical object: 428% [agent,physobj1,physobj2,time] 429% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:195 430% Initiates(StartFlyingFromTo(agent,physobj1,physobj2), 431% FlyingFromTo(agent,physobj1,physobj2), 432% time). 433% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:197 434axiom(initiates(startFlyingFromTo(Agent, Physobj1, Physobj2), flyingFromTo(Agent, Physobj1, Physobj2), Time), 435 []). 436 437 438% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:199 439%; A precondition axiom states that for 440%; an agent to start flying from a physical object to 441%; another physical object, 442%; the height of the agent and 443%; the first physical object must be the same: 444% [agent,physobj1,physobj2,height1,height2,time] 445% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:205 446% Happens(StartFlyingFromTo(agent,physobj1,physobj2),time) & 447% HoldsAt(Height(agent,height1),time) & 448% HoldsAt(Height(physobj1,height2),time) -> 449% height1=height2. 450% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:208 451axiom(Height1=Height2, 452 453 [ happens(startFlyingFromTo(Agent, Physobj1, Physobj2), 454 Time), 455 holds_at(height(Agent, Height1), Time), 456 holds_at(height(Physobj1, Height2), Time) 457 ]). 458 459 460% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:210 461%; A state constraint says that an agent 462%; cannot fly from and to the same physical object: 463% [agent,physobj1,physobj2,time] 464% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:213 465% HoldsAt(FlyingFromTo(agent,physobj1,physobj2),time) -> 466% physobj1!=physobj2. 467% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:214 468axiom(Physobj1\=Physobj2, 469 470 [ holds_at(flyingFromTo(Agent, Physobj1, Physobj2), 471 Time) 472 ]). 473 474 475% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:216 476%; A releases axiom states that if an agent 477%; starts flying from a physical object to another 478%; physical object, the height of the agent will 479%; be released from inertia: 480% [agent,physobj1,physobj2,height,time] 481% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:221 482% Releases(StartFlyingFromTo(agent,physobj1,physobj2), 483% Height(agent,height), 484% time). 485% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:223 486axiom(releases(startFlyingFromTo(Agent, Physobj1, Physobj2), height(Agent, Height), Time), 487 []). 488 489 490% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:225 491%; A trajectory axiom states that 492%; if an agent starts flying from 493%; from a physical object 494%; to another physical object 495%; at a time and 496%; the agent has a height at the time, 497%; then the agent will have a height 498%; equal to the height plus an offset 499%; at a time equal to the time plus the offset: 500% [agent,physobj1,physobj2,height1,height2,offset,time] 501% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:235 502% HoldsAt(Height(agent,height1),time) & 503% height2=height1+offset -> 504% Trajectory(FlyingFromTo(agent,physobj1,physobj2),time, 505% Height(agent,height2),offset). 506% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:238 507axiom(trajectory(flyingFromTo(Agent, Physobj1, Physobj2), Time, height(Agent, Height2), Offset), 508 509 [ holds_at(height(Agent, Height1), Time), 510 equals(Height2, Height1+Offset) 511 ]). 512 513 514% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:240 515%; A trigger axiom states that 516%; if an agent is flying 517%; from a physical object 518%; to another physical object and 519%; the height of the agent 520%; is the same as the height of the second physical object, 521%; the agent reaches the second physical object: 522% [agent,physobj1,physobj2,height,time] 523% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:248 524% HoldsAt(FlyingFromTo(agent,physobj1,physobj2),time) & 525% HoldsAt(Height(agent,height),time) & 526% HoldsAt(Height(physobj2,height),time) -> 527% Happens(Reach(agent,physobj2),time). 528% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:251 529axiom(happens(reach(Agent, Physobj2), Time), 530 531 [ holds_at(flyingFromTo(Agent, Physobj1, Physobj2), 532 Time), 533 holds_at(height(Agent, Height), Time), 534 holds_at(height(Physobj2, Height), Time) 535 ]). 536 537 538% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:253 539%; An effect axiom states that 540%; if an agent reaches a physical object, 541%; the height of the agent will be the 542%; height of the physical object: 543% [agent,physobj,height,time] 544% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:258 545% HoldsAt(Height(physobj,height),time) -> 546% Initiates(Reach(agent,physobj),Height(agent,height),time). 547% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:259 548axiom(initiates(reach(Agent, Physobj), height(Agent, Height), Time), 549 [holds_at(height(Physobj, Height), Time)]). 550 551 552% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:261 553%;[agent,physobj,height1,height2,time] 554%;HoldsAt(Height(physobj,height1),time) & 555%;height1!=height2 -> 556%;Terminates(Reach(agent,physobj),Height(agent,height2),time). 557%; An effect axiom states that 558%; if an agent is flying 559%; from a physical object 560%; to another physical object and 561%; the agent reaches the second physical object, 562%; the agent will no longer be 563%; flying from the first physical object 564%; to the second physical object: 565% [agent,physobj1,physobj2,time] 566% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:275 567% HoldsAt(FlyingFromTo(agent,physobj1,physobj2),time) -> 568% Terminates(Reach(agent,physobj2), 569% FlyingFromTo(agent,physobj1,physobj2), 570% time). 571% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:278 572axiom(terminates(reach(Agent, Physobj2), flyingFromTo(Agent, Physobj1, Physobj2), Time), 573 574 [ holds_at(flyingFromTo(Agent, Physobj1, Physobj2), 575 Time) 576 ]). 577 578 579% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:280 580%; A releases axiom states that 581%; if an agent holds a physical object, 582%; the height of the physical object is released from inertia: 583% [agent,physobj,height,time] 584% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:284 585% Releases(Hold(agent,physobj),Height(physobj,height),time). 586axiom(releases(hold(Agent, Physobj), height(Physobj, Height), Time), 587 []). 588 589 590% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:286 591%;[agent,physobj,height1,height2,time] 592%;(!{object} PartOf(physobj,object)) & 593%;HoldsAt(Height(physobj,height1),time) & 594%;height1 != height2 -> 595%;Terminates(LetGoOf(agent,physobj),Height(physobj,height2),time). 596% [agent,physobj,height,time] 597% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:293 598% (!{object} PartOf(physobj,object)) & 599% HoldsAt(Height(physobj,height),time) -> 600% Initiates(LetGoOf(agent,physobj),Height(physobj,height),time). 601% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:295 602axiom(initiates(letGoOf(Agent, Physobj), height(Physobj, Height), Time), 603 604 [ not(partOf(Physobj, Object)), 605 holds_at(height(Physobj, Height), Time) 606 ]). 607 608 609% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:297 610%; A state constraint says that 611%; if an agent is holding a physical object and 612%; the height of the agent is height, 613%; the height of the physical object is height: 614% [agent,physobj,height,time] 615% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:302 616% HoldsAt(Holding(agent,physobj),time) & 617% HoldsAt(Height(agent,height),time) -> 618% HoldsAt(Height(physobj,height),time). 619% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:304 620axiom(holds_at(height(Physobj, Height), Time), 621 622 [ holds_at(holding(Agent, Physobj), Time), 623 holds_at(height(Agent, Height), Time) 624 ]). 625 626 627% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:306 628%; A state constraint says that if a physical object 629%; is part of an object, 630%; the height of the physical object 631%; is the same as the height of the object: 632% [physobj,object,height,time] 633% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:311 634% PartOf(physobj,object) & 635% HoldsAt(Height(object,height),time) -> 636% HoldsAt(Height(physobj,height),time). 637% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:313 638axiom(holds_at(height(Physobj, Height), Time), 639 640 [ partOf(Physobj, Object), 641 holds_at(height(Object, Height), Time) 642 ]). 643 644 645% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ecnet/OMSpace.e:315 646%;event Catch(agent,physobj) 647%;event HitFromTo(agent,physobj,object,object) 648%;fluent Distance(physobj,physobj,distance) 649%;fluent FlyingAcrossFromTo(physobj,object,object) 650%;[agent,physobj1,physobj2,physobj3,time] 651%;Initiates(HitFromTo(agent,physobj1,physobj2,physobj3), 652%; FlyingAcrossFromTo(physobj1,physobj2,physobj3), 653%; time). 654%;[agent,physobj1,physobj2,physobj3,distance,time] 655%;Releases(HitFromTo(agent,physobj1,physobj2,physobj3), 656%; Distance(physobj1,physobj2,distance), 657%; time). 658%;[agent,physobj1,physobj2,physobj3,distance,time] 659%;Releases(HitFromTo(agent,physobj1,physobj2,physobj3), 660%; Distance(physobj1,physobj3,distance), 661%; time). 662%;[physobj1,physobj2,physobj3,offset,time] 663%;Trajectory(FlyingAcrossFromTo(physobj1,physobj2,physobj3),time, 664%; Distance(physobj1,physobj2,offset),offset). 665%;[physobj1,physobj2,physobj3,distance1,distance2,offset,time] 666%;HoldsAt(Distance(physobj2,physobj3,distance1),time) & 667%;distance2 = distance1 - time -> 668%;Trajectory(FlyingAcrossFromTo(physobj1,physobj2,physobj3),time, 669%; Distance(physobj1,physobj3,distance2),offset). 670%;[agent,physobj1,physobj2,physobj3,time] 671%;HoldsAt(FlyingAcrossFromTo(physobj1,physobj2,physobj3),time) -> 672%;Initiates(Catch(agent,physobj1), 673%; Holding(agent,physobj1), 674%; time). 675%;[agent,physobj1,physobj2,physobj3,time] 676%;HoldsAt(FlyingAcrossFromTo(physobj1,physobj2,physobj3),time) -> 677%;Terminates(Catch(agent,physobj1), 678%; FlyingAcrossFromTo(physobj1,physobj2,physobj3), 679%; time). 680%; End of file.