:-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/ecasp-decreasoner/KitchenSink_M25.e',99). :- call_pel_directive(translate(unskipped, '/pack/logicmoo_ec/ext/ec_sources/examples/ecasp-decreasoner/KitchenSink_M5.pel')). :-include(library('ec_planner/ec_test_incl')). :-expects_dialect(ecalc). :- call_pel_directive(translate(begining, '/pack/logicmoo_ec/ext/ec_sources/examples/ecasp-decreasoner/KitchenSink_M5.pel')). %; %; Copyright (c) 2005 IBM Corporation and others. %; All rights reserved. This program and the accompanying materials %; are made available under the terms of the Common Public License v1.0 %; which accompanies this distribution, and is available at %; http://www.eclipse.org/legal/cpl-v10.html %; %; Contributors: %; IBM - Initial implementation %; %; @inproceedings{Shanahan:1990, %; author = "Murray Shanahan", %; year = "1990", %; title = "Representing continuous change in the event calculus", %; editor = "Luigia Carlucci Aiello", %; booktitle = "\uppercase{P}roceedings of the \uppercase{N}inth \uppercase{E}uropean \uppercase{C}onference on \uppercase{A}rtificial \uppercase{I}ntelligence", %; pages = "598--603", %; address = "London", %; publisher = "Pitman", %; } %; %; \fullciteA[pp. 326--329]{Shanahan:1997} %; %; @book{Shanahan:1997, %; author = "Murray Shanahan", %; year = "1997", %; title = "Solving the Frame Problem", %; address = "Cambridge, MA", %; publisher = "MIT Press", %; } %; %; deduction %; %; modifications from Shanahan's formulation: %; InitiallyP -> HoldsAt %; timestamps %; generalized (SkF6) %; :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/ecasp-decreasoner/KitchenSink_M5.e',40). % option trajectory on :- call_pel_directive(option(trajectory, on)). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/ecasp-decreasoner/KitchenSink_M5.e',42). % load foundations/Root.e :- call_pel_directive(load('foundations/Root.e')). % load foundations/EC.e :- call_pel_directive(load('foundations/EC.e')). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/ecasp-decreasoner/KitchenSink_M5.e',45). % sort height: integer subsort(height,integer). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/ecasp-decreasoner/KitchenSink_M5.e',47). % event TapOn() event(tapOn()). % event TapOff() event(tapOff()). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/ecasp-decreasoner/KitchenSink_M5.e',49). % event Overflow() event(overflow()). % fluent Filling() fluent(filling()). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/ecasp-decreasoner/KitchenSink_M5.e',51). % fluent Height(height) fluent(height(height)). % fluent Spilling() fluent(spilling()). % [time] % Initiates(TapOn(),Filling(),time). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/ecasp-decreasoner/KitchenSink_M5.e',54). initiates_at(tapOn(),filling(),Time). % [time] % Terminates(TapOff(),Filling(),time). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/ecasp-decreasoner/KitchenSink_M5.e',56). terminates_at(tapOff(),filling(),Time). %; should probably add: %;[time] Terminates(TapOff(),Spilling(),time). % [height,time] :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/ecasp-decreasoner/KitchenSink_M5.e',62). % Releases(TapOn(),Height(height),time). releases_at(tapOn(),height(Height),Time). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/ecasp-decreasoner/KitchenSink_M5.e',64). % [height,time] % HoldsAt(Height(height),time) -> % Initiates(TapOff(),Height(height),time). holds_at(height(Height), Time) -> initiates_at(tapOff(), height(Height), Time). % [time] % Terminates(Overflow(),Filling(),time). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/ecasp-decreasoner/KitchenSink_M5.e',67). terminates_at(overflow(),filling(),Time). % [height,time] % HoldsAt(Height(height),time) -> % Initiates(Overflow(),Height(height),time). holds_at(height(Height), Time) -> initiates_at(overflow(), height(Height), Time). % [time] % Initiates(Overflow(),Spilling(),time). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/ecasp-decreasoner/KitchenSink_M5.e',73). initiates_at(overflow(),spilling(),Time). % [height1,height2,offset,time] % HoldsAt(Height(height1),time) & % height2 = height1 + offset -> % Trajectory(Filling(),time,Height(height2),offset). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/ecasp-decreasoner/KitchenSink_M5.e',77). holds_at(height(Height1), Time), Height2=Height1+Offset -> trajectory(filling(), Time, height(Height2), Offset). % [height1,height2,time] % HoldsAt(Height(height1),time) & % HoldsAt(Height(height2),time) -> % height1 = height2. :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/ecasp-decreasoner/KitchenSink_M5.e',82). holds_at(height(Height1), Time), holds_at(height(Height2), Time) -> Height1=Height2. % [time] % HoldsAt(Height(3),time) & HoldsAt(Filling(),time) -> % Happens(Overflow(),time). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/ecasp-decreasoner/KitchenSink_M5.e',85). holds_at(height(3), Time), holds_at(filling(), Time) -> happens_at(overflow(), Time). % HoldsAt(Height(0),0). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/ecasp-decreasoner/KitchenSink_M5.e',88). holds_at(height(0),0). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/ecasp-decreasoner/KitchenSink_M5.e',90). % !HoldsAt(Filling(),0). holds_at(not(filling()),0). % !HoldsAt(Spilling(),0). holds_at(not(spilling()),0). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/ecasp-decreasoner/KitchenSink_M5.e',92). % Happens(TapOn(),0). happens_at(tapOn(),0). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/ecasp-decreasoner/KitchenSink_M5.e',94). % completion Happens :- call_pel_directive(completion(happens_at)). % range time 0 5 :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/ecasp-decreasoner/KitchenSink_M5.e',96). :- call_pel_directive(range(time, 0, 5)). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/ecasp-decreasoner/KitchenSink_M5.e',98). % range height 0 4 :- call_pel_directive(range(height, 0, 4)). % range offset 1 4 :- call_pel_directive(range(offset, 1, 4)). %; End of file. :- call_pel_directive(translate(ending, '/pack/logicmoo_ec/ext/ec_sources/examples/ecasp-decreasoner/KitchenSink_M5.pel')).