1:-include(library('ec_planner/ec_test_incl')). 2:-expects_dialect(pfc). 3 % loading(always,'examples/Mueller2006/Chapter14/Vision.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%; @inproceedings{ShanahanRandell:2004, 15%; author = "Murray Shanahan and David A. Randell", 16%; year = "2004", 17%; title = "A logic-based formulation of active visual perception", 18%; editor = "Didier Dubois and Christopher A. Welty and Mary-Anne Williams", 19%; booktitle = "\uppercase{P}roceedings of the \uppercase{N}inth \uppercase{I}nternational \uppercase{C}onference on \uppercase{P}rinciples of \uppercase{K}nowledge \uppercase{R}epresentation and \uppercase{R}easoning", 20%; pages = "64--72", 21%; address = "Menlo Park, CA", 22%; publisher = "AAAI Press", 23%; } 24%; 25%; @book{Mueller:2006, 26%; author = "Erik T. Mueller", 27%; year = "2006", 28%; title = "Commonsense Reasoning", 29%; address = "San Francisco", 30%; publisher = "Morgan Kaufmann/Elsevier", 31%; } 32%; 33 34% option modeldiff on 35:- set_ec_option(modeldiff, on). 36 37% load foundations/Root.e 38 39% load foundations/EC.e 40 41% sort object 42==> sort(object). 43 44% sort shape 45==> sort(shape). 46 47% sort aspect 48==> sort(aspect). 49 50% object Object1 51==> t(object,object1). 52 53% aspect Aspect1, Aspect2, Aspect3 54==> t(aspect,aspect1). 55==> t(aspect,aspect2). 56==> t(aspect,aspect3). 57 58% shape Shape1, Shape2 59==> t(shape,shape1). 60==> t(shape,shape2). 61 62% predicate Shape(object,shape) 63 % predicate(shape(object,shape)). 64==> mpred_prop(shape(object,shape),predicate). 65==> meta_argtypes(shape(object,shape)). 66 67% predicate Arc(shape,aspect,aspect) 68 % predicate(arc(shape,aspect,aspect)). 69==> mpred_prop(arc(shape,aspect,aspect),predicate). 70==> meta_argtypes(arc(shape,aspect,aspect)). 71 72% fluent Aspect(object,aspect) 73 % fluent(aspect(object,aspect)). 74==> mpred_prop(aspect(object,aspect),fluent). 75==> meta_argtypes(aspect(object,aspect)). 76 77% event Change(object,aspect,aspect) 78 % event(change(object,aspect,aspect)). 79==> mpred_prop(change(object,aspect,aspect),event). 80==> meta_argtypes(change(object,aspect,aspect)). 81 82 83% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:48 84%; Sigma 85% [object,aspect1,aspect2,shape,time] 86% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:51 87% HoldsAt(Aspect(object,aspect1),time) & 88% Shape(object,shape) & 89% (Arc(shape,aspect1,aspect2) | 90% Arc(shape,aspect2,aspect1)) -> 91% Initiates(Change(object,aspect1,aspect2),Aspect(object,aspect2),time). 92% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:55 93axiom(initiates(change(Object, Aspect1, Aspect2), aspect(Object, Aspect2), Time), 94 95 [ arc(Shape, Aspect1, Aspect2), 96 holds_at(aspect(Object, Aspect1), Time), 97 shape(Object, Shape) 98 ]). 99axiom(initiates(change(Object, Aspect1, Aspect2), aspect(Object, Aspect2), Time), 100 101 [ arc(Shape, Aspect2, Aspect1), 102 holds_at(aspect(Object, Aspect1), Time), 103 shape(Object, Shape) 104 ]). 105 106 107% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:57 108% [object,aspect1,aspect2,shape,time] 109% HoldsAt(Aspect(object,aspect1),time) & 110% Shape(object,shape) & 111% (Arc(shape,aspect1,aspect2) | 112% Arc(shape,aspect2,aspect1)) -> 113% Terminates(Change(object,aspect1,aspect2),Aspect(object,aspect1),time). 114% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:62 115axiom(terminates(change(Object, Aspect1, Aspect2), aspect(Object, Aspect1), Time), 116 117 [ arc(Shape, Aspect1, Aspect2), 118 holds_at(aspect(Object, Aspect1), Time), 119 shape(Object, Shape) 120 ]). 121axiom(terminates(change(Object, Aspect1, Aspect2), aspect(Object, Aspect1), Time), 122 123 [ arc(Shape, Aspect2, Aspect1), 124 holds_at(aspect(Object, Aspect1), Time), 125 shape(Object, Shape) 126 ]). 127 128 129% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:64 130%; preconditions (added) 131% [object,aspect1,aspect2,time] 132% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:67 133% Happens(Change(object,aspect1,aspect2),time) -> 134% HoldsAt(Aspect(object,aspect1),time). 135% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:68 136axiom(requires(change(Object, Aspect1, Aspect2), Time), 137 [holds_at(aspect(Object, Aspect1), Time)]). 138 139 140% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:70 141% [object,aspect1,aspect2,aspect3,time] 142% Happens(Change(object,aspect1,aspect2),time) & 143% Happens(Change(object,aspect1,aspect3),time) -> 144% aspect2=aspect3. 145% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:73 146axiom(Aspect2=Aspect3, 147 148 [ happens(change(Object, Aspect1, Aspect2), Time), 149 happens(change(Object, Aspect1, Aspect3), Time) 150 ]). 151 152 153% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:75 154%; Psi 155% [object,shape1,shape2] 156% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:78 157% Shape(object,shape1) & 158% Shape(object,shape2) -> 159% shape1=shape2. 160% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:80 161axiom(Shape1=Shape2, 162 [shape(Object, Shape1), shape(Object, Shape2)]). 163 164 165% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:82 166% [object,aspect1,aspect2,time] 167% HoldsAt(Aspect(object,aspect1),time) & 168% HoldsAt(Aspect(object,aspect2),time) -> 169% aspect1=aspect2. 170% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:85 171axiom(Aspect1=Aspect2, 172 173 [ holds_at(aspect(Object, Aspect1), Time), 174 holds_at(aspect(Object, Aspect2), Time) 175 ]). 176 177 178% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:87 179% [aspect1,aspect2] 180% Arc(Shape1,aspect1,aspect2) <-> 181% (aspect1=Aspect1 & aspect2=Aspect2). 182 183 /* arc(shape1, Aspect1, Aspect2) <-> 184 Aspect1=aspect1, 185 Aspect2=aspect2. 186 */ 187% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:89 188axiom(arc(shape1, Aspect1, Aspect2), 189 [equals(Aspect1, aspect1), equals(Aspect2, aspect2)]). 190 191 /* if(arc(shape1, Aspect1, Aspect2), 192 (Aspect1=aspect1, Aspect2=aspect2)). 193 */ 194 195 /* not(arc(shape1, Equals_Param, Equals_Param3)) :- 196 ( not(equals(Equals_Param, aspect1)) 197 ; not(equals(Equals_Param3, aspect2)) 198 ). 199 */ 200axiom(not(arc(shape1, Equals_Param, Equals_Param3)), 201 [not(equals(Equals_Param, aspect1))]). 202axiom(not(arc(shape1, Equals_Param, Equals_Param3)), 203 [not(equals(Equals_Param3, aspect2))]). 204 205 /* equals(Equals_Param4, aspect1) :- 206 arc(shape1, Equals_Param4, Arc_Ret). 207 */ 208axiom(equals(Equals_Param4, aspect1), 209 [arc(shape1, Equals_Param4, Arc_Ret)]). 210 211 /* equals(Equals_Param6, aspect2) :- 212 arc(shape1, _, Equals_Param6). 213 */ 214axiom(equals(Equals_Param6, aspect2), 215 [arc(shape1, _, Equals_Param6)]). 216 217 218% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:91 219% [aspect1,aspect2] 220% Arc(Shape2,aspect1,aspect2) <-> 221% ((aspect1=Aspect1 & aspect2=Aspect3) | 222% (aspect1=Aspect3 & aspect2=Aspect2)). 223 224 /* arc(shape2, Aspect1, Aspect2) <-> 225 ( Aspect1=aspect1, 226 Aspect2=aspect3 227 ; Aspect1=aspect3, 228 Aspect2=aspect2 229 ). 230 */ 231% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:94 232axiom(arc(shape2, Aspect1, Aspect2), 233 [equals(Aspect1, aspect1), equals(Aspect2, aspect3)]). 234axiom(arc(shape2, Aspect1, Aspect2), 235 [equals(Aspect1, aspect3), equals(Aspect2, aspect2)]). 236 237 /* if(arc(shape2, Aspect1, Aspect2), 238 (Aspect1=aspect1, Aspect2=aspect3;Aspect1=aspect3, Aspect2=aspect2)). 239 */ 240 241 /* not(arc(shape2, Equals_Param, Equals_Param3)) :- 242 ( not(equals(Equals_Param, aspect1)) 243 ; not(equals(Equals_Param3, aspect3)) 244 ), 245 ( not(equals(Equals_Param, aspect3)) 246 ; not(equals(Equals_Param3, aspect2)) 247 ). 248 */ 249axiom(not(arc(shape2, Equals_Param, Equals_Param3)), 250 251 [ not(equals(Equals_Param, aspect3)), 252 not(equals(Equals_Param, aspect1)) 253 ]). 254axiom(not(arc(shape2, Equals_Param, Equals_Param3)), 255 256 [ not(equals(Equals_Param3, aspect2)), 257 not(equals(Equals_Param, aspect1)) 258 ]). 259axiom(not(arc(shape2, Equals_Param, Equals_Param3)), 260 261 [ not(equals(Equals_Param, aspect3)), 262 not(equals(Equals_Param3, aspect3)) 263 ]). 264axiom(not(arc(shape2, Equals_Param, Equals_Param3)), 265 266 [ not(equals(Equals_Param3, aspect2)), 267 not(equals(Equals_Param3, aspect3)) 268 ]). 269 270 /* equals(Equals_Param4, aspect1) :- 271 ( not(equals(Equals_Param4, aspect3)) 272 ; not(equals(Equals_Param5, aspect2)) 273 ), 274 arc(shape2, Equals_Param4, Equals_Param5). 275 */ 276axiom(equals(Equals_Param4, aspect1), 277 278 [ not(equals(Equals_Param4, aspect3)), 279 arc(shape2, Equals_Param4, Equals_Param5) 280 ]). 281axiom(equals(Equals_Param4, aspect1), 282 283 [ not(equals(Equals_Param5, aspect2)), 284 arc(shape2, Equals_Param4, Equals_Param5) 285 ]). 286 287 /* equals(Equals_Param6, aspect3) :- 288 ( not(equals(Equals_Param7, aspect3)) 289 ; not(equals(Equals_Param6, aspect2)) 290 ), 291 arc(shape2, Equals_Param7, Equals_Param6). 292 */ 293axiom(equals(Equals_Param6, aspect3), 294 295 [ not(equals(Equals_Param7, aspect3)), 296 arc(shape2, Equals_Param7, Equals_Param6) 297 ]). 298axiom(equals(Equals_Param6, aspect3), 299 300 [ not(equals(Equals_Param6, aspect2)), 301 arc(shape2, Equals_Param7, Equals_Param6) 302 ]). 303 304 /* equals(Equals_Param8, aspect3) :- 305 ( not(equals(Equals_Param8, aspect1)) 306 ; not(equals(Equals_Param9, aspect3)) 307 ), 308 arc(shape2, Equals_Param8, Equals_Param9). 309 */ 310axiom(equals(Equals_Param8, aspect3), 311 312 [ not(equals(Equals_Param8, aspect1)), 313 arc(shape2, Equals_Param8, Equals_Param9) 314 ]). 315axiom(equals(Equals_Param8, aspect3), 316 317 [ not(equals(Equals_Param9, aspect3)), 318 arc(shape2, Equals_Param8, Equals_Param9) 319 ]). 320 321 /* equals(Equals_Param10, aspect2) :- 322 ( not(equals(Equals_Param11, aspect1)) 323 ; not(equals(Equals_Param10, aspect3)) 324 ), 325 arc(shape2, Equals_Param11, Equals_Param10). 326 */ 327axiom(equals(Equals_Param10, aspect2), 328 329 [ not(equals(Equals_Param11, aspect1)), 330 arc(shape2, Equals_Param11, Equals_Param10) 331 ]). 332axiom(equals(Equals_Param10, aspect2), 333 334 [ not(equals(Equals_Param10, aspect3)), 335 arc(shape2, Equals_Param11, Equals_Param10) 336 ]). 337 338 339% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:96 340%; Gamma 341 342 343% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:98 344% HoldsAt(Aspect(Object1,Aspect1),0). 345axiom(initially(aspect(object1, aspect1)), 346 []). 347 348 349% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:99 350% HoldsAt(Aspect(Object1,Aspect2),1). 351holds_at(aspect(object1,aspect2),1). 352 353 354% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:101 355%;completion Delta Happens 356 357% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:103 358% range time 0 1 359% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:104 360==> range(time,0,1). 361 362% range offset 1 1 363% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/examples/Mueller2006/Chapter14/Vision.e:105 364==> range(offset,1,1). 365%; End of file.