public IEnumerator <TaskStatus> CreateProc(MentalTask bwxTask) { Task _bwxTask = null; Context _bwxContext = null; Message _bwxMsg; Clause _bwxClause = null; Atom _bwxSubject = null; TaskResult _bwxResult = null; Begin(bwxTask); _bwxContext = new Context(); Ent_RuleTestContext = new Entity("RuleTestContext", _bwxContext); _bwxContext.Add(new Clause(Ent_Belief, Ent_Bob, Ent_knows, Ent_Jack)); _bwxContext.Add(new Clause(Ent_Belief, Ent_Bob, Ent_knows, Ent_John)); _bwxContext.Add(new Clause(Ent_Belief, Ent_Bob, Ent_knows, Ent_Joe)); _bwxContext.Add(new Clause(Ent_Belief, Ent_Joe, Ent_plays, Ent_Guitar)); _bwxContext.Add(new Clause(Ent_Belief, Ent_Joe, Ent_likes, Ent_RockMusic)); _bwxContext.Add(new Clause(Ent_Belief, Ent_Jack, Ent_plays, Ent_Piano)); _bwxContext.Add(new Clause(Ent_Belief, Ent_Jack, Ent_likes, Ent_ClassicalMusic)); _bwxContext.Add(new Clause(Ent_Belief, Ent_John, Ent_plays, Ent_Guitar)); _bwxContext.Add(new Clause(Ent_Belief, Ent_John, Ent_likes, Ent_RockMusic)); _bwxMsg = new Message(MessageKind.Attempt, null, null, new Clause(Ent_Perform, Ent_Self, Ent_ruleTest, null) { { Ent_context, Ent_RuleTestContext } }); Post(bwxTask.Process, _bwxMsg); yield return(Succeed(bwxTask.Process, bwxTask.Message)); }
public IEnumerator <TaskStatus> IncrementProposeProc(MentalTask bwxTask, Atom g, int v1) { Task _bwxTask = null; Context _bwxContext = null; Message _bwxMsg; Clause _bwxClause = null; Atom _bwxSubject = null; TaskResult _bwxResult = null; Begin(bwxTask); { foreach (int v2 in bwxTask.Context.QuerySubjPred <int>(g, Ent_value)) { if (v1 == v2) { { yield return(Succeed(bwxTask.Process, bwxTask.Message)); } } } } _bwxMsg = new Message(MessageKind.Attempt, null, null, new Clause(Ent_Perform, Ent_Self, Ent_increment, g)); Propose(bwxTask.Process, _bwxMsg, null); yield return(Return(bwxTask.Process, bwxTask.Message)); yield return(Succeed(bwxTask.Process, bwxTask.Message)); }
public IEnumerator <TaskStatus> PayDriverProc(MentalTask bwxTask, Element origin, Element destination) { Task _bwxTask; Context _bwxContext; Message _bwxMsg; Clause _bwxClause; Element _bwxSubject; TaskResult _bwxResult; { _bwxClause = bwxTask.Context.Find(new ClausePattern(origin, Ent_distanceTo, destination)); if (_bwxClause != null) { float distance = (float)_bwxClause[Ent_distance]; { foreach (float cash in bwxTask.Context.QuerySubjPred <float>(Ent_Self, Ent_cash)) { if (cash >= 1.5 + .5 * distance) { _bwxMsg = new Message(MessageKind.Modify, bwxTask, null, new Clause(Ent_Belief, Ent_Self, Ent_cash, (float)(cash - (1.5 + .5 * distance)))); Post(bwxTask.Process, _bwxMsg); } } } } } yield return(Succeed(bwxTask.Process, bwxTask.Message)); }
public IEnumerator <TaskStatus> ImpasseProc(MentalTask bwxTask) { Task _bwxTask; Context _bwxContext; Message _bwxMsg; Clause _bwxClause; Element _bwxSubject; TaskResult _bwxResult; { ControlFlags _bwxQflags = ControlFlags.None; { foreach (Element g in bwxTask.Context.QueryType(Ent_Goal)) { if (bwxTask.Context.Exists(g, Ent_status, Ent_Active)) { _bwxQflags |= ControlFlags.PartialSuccess; _bwxMsg = new Message(MessageKind.Attempt, bwxTask, null, (Clause)g); Propose(bwxTask.Process, _bwxMsg, null); } else { _bwxQflags |= ControlFlags.PartialFailure; } } } if (_bwxQflags == ControlFlags.None || _bwxQflags == ControlFlags.PartialFailure) { bwxTask.Process.Halt(); } } yield return(Succeed(bwxTask.Process, bwxTask.Message)); }
public IEnumerator <TaskStatus> OntopElabProc(MentalTask bwxTask, Atom x, Atom y) { Task _bwxTask = null; Context _bwxContext = null; Message _bwxMsg; Clause _bwxClause = null; Atom _bwxSubject = null; TaskResult _bwxResult = null; Begin(bwxTask); { if (y.TypeCheck(Ent_Block) && bwxTask.Context.Exists(y, Ent_isClear, true)) { { _bwxMsg = new Message(MessageKind.Remove, null, null, new Clause(Ent_Belief, y, Ent_isClear, true)); Post(bwxTask.Process, _bwxMsg); } } } { if (bwxTask.Context.Exists(x, Ent_onTop, y)) { { _bwxMsg = new Message(MessageKind.Add, null, null, new Clause(Ent_Belief, y, Ent_beneath, x)); Post(bwxTask.Process, _bwxMsg); } } } yield return(Succeed(bwxTask.Process, bwxTask.Message)); }
public IEnumerator <TaskStatus> CreateProc(MentalTask bwxTask) { Task _bwxTask = null; Context _bwxContext = null; Message _bwxMsg; Clause _bwxClause = null; Atom _bwxSubject = null; TaskResult _bwxResult = null; Begin(bwxTask); _bwxContext = new Context(); Ent_BloxContext = new Entity("BloxContext", _bwxContext); _bwxContext.Add(new Clause(Ent_Belief, Ent_Table1, Ent_isClear, true)); _bwxContext.Add(new Clause(Ent_Belief, Ent_Block1, Ent_onTop, Ent_Table1)); _bwxContext.Add(new Clause(Ent_Belief, Ent_Block2, Ent_onTop, Ent_Block1)); _bwxContext.Add(new Clause(Ent_Belief, Ent_Block3, Ent_onTop, Ent_Block2)); _bwxContext.Add(new Clause(Ent_Belief, Ent_Block3, Ent_isClear, true)); _bwxContext.Add(new Clause(Ent_Perform, Ent_Self, Ent_stack, Ent_Block1) { { Ent_on, Ent_Block2 } }); _bwxContext.Add(new Clause(Ent_Perform, Ent_Self, Ent_stack, Ent_Block2) { { Ent_on, Ent_Block3 } }); _bwxMsg = new Message(MessageKind.Attempt, null, null, new Clause(Ent_Perform, Ent_Self, Ent_blox, null) { { Ent_context, Ent_BloxContext } }); Post(bwxTask.Process, _bwxMsg); yield return(Succeed(bwxTask.Process, bwxTask.Message)); }
public IEnumerator <TaskStatus> ClearProc(MentalTask bwxTask, Atom x) { Task _bwxTask = null; Context _bwxContext = null; Message _bwxMsg; Clause _bwxClause = null; Atom _bwxSubject = null; TaskResult _bwxResult = null; Begin(bwxTask); { foreach (Atom y in bwxTask.Context.QuerySubjPred <Atom>(x, Ent_beneath)) { foreach (Atom z in bwxTask.Context.QueryPredObj(Ent_isClear, true)) { if (z != x) { if (z != y) { { _bwxMsg = new Message(MessageKind.Attempt, null, null, new Clause(Ent_Perform, Ent_Self, Ent_stack, y) { { Ent_on, z } }); Propose(bwxTask.Process, _bwxMsg, null); } } } } } } yield return(Succeed(bwxTask.Process, bwxTask.Message)); }
public IEnumerator <TaskStatus> IncrementApplyProc(MentalTask bwxTask, Atom g) { Task _bwxTask = null; Context _bwxContext = null; Message _bwxMsg; Clause _bwxClause = null; Atom _bwxSubject = null; TaskResult _bwxResult = null; Begin(bwxTask); { foreach (int v1 in bwxTask.Context.QuerySubjPred <int>(g, Ent_value)) { { _bwxMsg = new Message(MessageKind.Remove, null, null, new Clause(Ent_Belief, g, Ent_value, v1)); Post(bwxTask.Process, _bwxMsg); var v2 = v1 + 1; _bwxMsg = new Message(MessageKind.Add, null, null, new Clause(Ent_Belief, g, Ent_value, v2)); Post(bwxTask.Process, _bwxMsg); Console.WriteLine("{0} ...", v2); } } } yield return(Succeed(bwxTask.Process, bwxTask.Message)); }
public IEnumerator <TaskStatus> CreateProc(MentalTask bwxTask) { Task _bwxTask; Context _bwxContext; Message _bwxMsg; Clause _bwxClause; Element _bwxSubject; TaskResult _bwxResult; _bwxContext = new Context(); Ent_TravelContext = new Entity("TravelContext", _bwxContext); _bwxSubject = Ent_Taxi1; _bwxSubject = Ent_Home1; _bwxClause = _bwxContext.Add(new Clause(Ent_Belief, _bwxSubject, Ent_distanceTo, (Element)(Ent_Restaurant1))); _bwxClause[Ent_distance] = (float)8; _bwxSubject = Ent_Restaurant1; _bwxSubject = Ent_Self; _bwxContext.Add(new Clause(Ent_Belief, _bwxSubject, Ent_location, (Element)(Ent_Home1))); _bwxContext.Add(new Clause(Ent_Belief, _bwxSubject, Ent_cash, (float)(20.0f))); _bwxContext.Add(new Clause(Ent_Perform, Ent_Self, Ent_travelTo, (Element)(Ent_Restaurant1))); _bwxResult = new TaskResult(bwxTask); _bwxMsg = new Message(MessageKind.Attempt, bwxTask, _bwxResult, new Clause(Ent_Perform, Ent_Self, Ent_travel, (Element)(null))); Post(bwxTask.Process, _bwxMsg); bwxTask.Process.ImportContext((Context)Ent_TravelContext.Object); yield return(TaskStatus.Suspended); if (_bwxResult.Status != TaskStatus.Succeeded) { yield return(Fail(bwxTask.Process, bwxTask.Message)); } yield return(Succeed(bwxTask.Process, bwxTask.Message)); }
public IEnumerator <TaskStatus> CreateProc(MentalTask bwxTask) { Task _bwxTask = null; Context _bwxContext = null; Message _bwxMsg; Clause _bwxClause = null; Atom _bwxSubject = null; TaskResult _bwxResult = null; Begin(bwxTask); ConsoleKeyInfo cki = Console.ReadKey(); var c = cki.KeyChar; { if (c == 'a') { _bwxMsg = new Message(MessageKind.Attempt, null, null, new Clause(Ent_Perform, Ent_Self, Ent_writeLine, 1)); Post(bwxTask.Process, _bwxMsg); } if (c == 'b') { _bwxMsg = new Message(MessageKind.Attempt, null, null, new Clause(Ent_Perform, Ent_Self, Ent_writeLine, 2)); Post(bwxTask.Process, _bwxMsg); } if (c == 'c') { _bwxMsg = new Message(MessageKind.Attempt, null, null, new Clause(Ent_Perform, Ent_Self, Ent_writeLine, 3)); Post(bwxTask.Process, _bwxMsg); } } yield return(Succeed(bwxTask.Process, bwxTask.Message)); }
public IEnumerator <TaskStatus> CreateProc(MentalTask bwxTask) { Task _bwxTask; Context _bwxContext; Message _bwxMsg; Clause _bwxClause; Element _bwxSubject; TaskResult _bwxResult; yield return(Succeed(bwxTask.Process, bwxTask.Message)); }
public IEnumerator <TaskStatus> CreateProc(MentalTask bwxTask) { Task _bwxTask = null; Context _bwxContext = null; Message _bwxMsg; Clause _bwxClause = null; Atom _bwxSubject = null; TaskResult _bwxResult = null; Begin(bwxTask); yield return(Succeed(bwxTask.Process, bwxTask.Message)); }
public IEnumerator <TaskStatus> NotGoalElabProc(MentalTask bwxTask, Element g) { Task _bwxTask; Context _bwxContext; Message _bwxMsg; Clause _bwxClause; Element _bwxSubject; TaskResult _bwxResult; _bwxMsg = new Message(MessageKind.Remove, bwxTask, null, new Clause(Ent_Belief, g, Ent_status, (Entity)(Ent_Active))); Post(bwxTask.Process, _bwxMsg); yield return(Succeed(bwxTask.Process, bwxTask.Message)); }
public IEnumerator <TaskStatus> BobLikesProc(MentalTask bwxTask, Atom x) { Task _bwxTask = null; Context _bwxContext = null; Message _bwxMsg; Clause _bwxClause = null; Atom _bwxSubject = null; TaskResult _bwxResult = null; Begin(bwxTask); Console.WriteLine("Bob likes " + x.ToString()); yield return(Succeed(bwxTask.Process, bwxTask.Message)); }
public IEnumerator <TaskStatus> CallTaxiProc(MentalTask bwxTask, Element origin) { Task _bwxTask; Context _bwxContext; Message _bwxMsg; Clause _bwxClause; Element _bwxSubject; TaskResult _bwxResult; _bwxMsg = new Message(MessageKind.Add, bwxTask, null, new Clause(Ent_Belief, Ent_Taxi1, Ent_location, (Element)(origin))); Post(bwxTask.Process, _bwxMsg); yield return(Succeed(bwxTask.Process, bwxTask.Message)); }
public IEnumerator <TaskStatus> CreateProc(MentalTask bwxTask) { Task _bwxTask = null; Context _bwxContext = null; Message _bwxMsg; Clause _bwxClause = null; Atom _bwxSubject = null; TaskResult _bwxResult = null; Begin(bwxTask); _bwxMsg = new Message(MessageKind.Attempt, null, null, new Clause(Ent_Perform, Ent_Self, Ent_sequenceTest, null)); Post(bwxTask.Process, _bwxMsg); yield return(Succeed(bwxTask.Process, bwxTask.Message)); }
public IEnumerator <TaskStatus> NotGoalElabProc(MentalTask bwxTask, Atom g) { Task _bwxTask = null; Context _bwxContext = null; Message _bwxMsg; Clause _bwxClause = null; Atom _bwxSubject = null; TaskResult _bwxResult = null; Begin(bwxTask); _bwxMsg = new Message(MessageKind.Remove, null, null, new Clause(Ent_Belief, g, Ent_status, Ent_Active)); Post(bwxTask.Process, _bwxMsg); yield return(Succeed(bwxTask.Process, bwxTask.Message)); }
public IEnumerator <TaskStatus> NotOnTopElabProc(MentalTask bwxTask, Atom x, Atom y) { Task _bwxTask = null; Context _bwxContext = null; Message _bwxMsg; Clause _bwxClause = null; Atom _bwxSubject = null; TaskResult _bwxResult = null; Begin(bwxTask); _bwxMsg = new Message(MessageKind.Remove, null, null, new Clause(Ent_Belief, y, Ent_beneath, x)); Post(bwxTask.Process, _bwxMsg); _bwxMsg = new Message(MessageKind.Add, null, null, new Clause(Ent_Belief, y, Ent_isClear, true)); Post(bwxTask.Process, _bwxMsg); yield return(Succeed(bwxTask.Process, bwxTask.Message)); }
public IEnumerator <TaskStatus> TravelByFootProc(MentalTask bwxTask, Element destination) { Task _bwxTask; Context _bwxContext; Message _bwxMsg; Clause _bwxClause; Element _bwxSubject; TaskResult _bwxResult; { ControlFlags _bwxQflags = ControlFlags.None; { foreach (Element origin in bwxTask.Context.QuerySubjPred <Element>(Ent_Self, Ent_location)) { _bwxClause = bwxTask.Context.Find(new ClausePattern(origin, Ent_distanceTo, destination)); if (_bwxClause != null) { if (_bwxClause != null && _bwxClause.Exists <float>(Ent_distance, (x) => x <= 2)) { _bwxQflags |= ControlFlags.PartialSuccess; } else { _bwxQflags |= ControlFlags.PartialFailure; } } } } if (_bwxQflags == ControlFlags.None || _bwxQflags == ControlFlags.PartialFailure) { yield return(Throw(bwxTask.Process, bwxTask.Message)); } } _bwxResult = new TaskResult(bwxTask); _bwxMsg = new Message(MessageKind.Attempt, bwxTask, _bwxResult, new Clause(Ent_Perform, Ent_Self, Ent_walkTo, (Element)(destination))); Propose(bwxTask.Process, _bwxMsg, null); yield return(TaskStatus.Suspended); if (_bwxResult.Status != TaskStatus.Succeeded) { yield return(Fail(bwxTask.Process, bwxTask.Message)); } yield return(Succeed(bwxTask.Process, bwxTask.Message)); }
public IEnumerator <TaskStatus> AchieveXonYProc(MentalTask bwxTask, Atom g, Atom x, Atom y) { Task _bwxTask = null; Context _bwxContext = null; Message _bwxMsg; Clause _bwxClause = null; Atom _bwxSubject = null; TaskResult _bwxResult = null; Begin(bwxTask); _bwxMsg = new Message(MessageKind.Attempt, null, null, new Clause(Ent_Perform, Ent_Self, Ent_stack, x) { { Ent_on, y } }); Post(bwxTask.Process, _bwxMsg); _bwxMsg = new Message(MessageKind.Remove, null, null, (Clause)g); Post(bwxTask.Process, _bwxMsg); yield return(Succeed(bwxTask.Process, bwxTask.Message)); }
public IEnumerator <TaskStatus> TravelByTaxi_1Proc(MentalTask bwxTask, Element destination, Element origin, float distance) { Task _bwxTask; Context _bwxContext; Message _bwxMsg; Clause _bwxClause; Element _bwxSubject; TaskResult _bwxResult; _bwxResult = new TaskResult(bwxTask); _bwxMsg = new Message(MessageKind.Attempt, bwxTask, _bwxResult, new Clause(Ent_Perform, Ent_Self, Ent_callTaxi, (Element)(origin))); Propose(bwxTask.Process, _bwxMsg, null); yield return(TaskStatus.Suspended); if (_bwxResult.Status != TaskStatus.Succeeded) { yield return(Fail(bwxTask.Process, bwxTask.Message)); } _bwxResult = new TaskResult(bwxTask); _bwxMsg = new Message(MessageKind.Attempt, bwxTask, _bwxResult, new Clause(Ent_Perform, Ent_Self, Ent_ride, (Element)(null))); _bwxMsg.Clause[Ent_from] = origin; _bwxMsg.Clause[Ent_to] = destination; Propose(bwxTask.Process, _bwxMsg, null); yield return(TaskStatus.Suspended); if (_bwxResult.Status != TaskStatus.Succeeded) { yield return(Fail(bwxTask.Process, bwxTask.Message)); } _bwxResult = new TaskResult(bwxTask); _bwxMsg = new Message(MessageKind.Attempt, bwxTask, _bwxResult, new Clause(Ent_Perform, Ent_Self, Ent_payDriver, (Element)(null))); _bwxMsg.Clause[Ent_from] = origin; _bwxMsg.Clause[Ent_to] = destination; Propose(bwxTask.Process, _bwxMsg, null); yield return(TaskStatus.Suspended); if (_bwxResult.Status != TaskStatus.Succeeded) { yield return(Fail(bwxTask.Process, bwxTask.Message)); } yield return(Succeed(bwxTask.Process, bwxTask.Message)); }
public IEnumerator <TaskStatus> CreateProc(MentalTask bwxTask) { Task _bwxTask = null; Context _bwxContext = null; Message _bwxMsg; Clause _bwxClause = null; Atom _bwxSubject = null; TaskResult _bwxResult = null; Begin(bwxTask); _bwxContext = new Context(); Ent_CountingContext = new Entity("CountingContext", _bwxContext); _bwxSubject = _bwxContext.Add(new Clause(Ent_Perform, Ent_Self, Ent_countTo, 5)); _bwxContext.Add(new Clause(Ent_Belief, _bwxSubject, Ent_value, 0)); _bwxMsg = new Message(MessageKind.Attempt, null, null, new Clause(Ent_Perform, Ent_Self, Ent_counting, null) { { Ent_context, Ent_CountingContext } }); Propose(bwxTask.Process, _bwxMsg, null); yield return(Succeed(bwxTask.Process, bwxTask.Message)); }
public IEnumerator <TaskStatus> TravelByTaxiProc(MentalTask bwxTask, Element destination) { Task _bwxTask; Context _bwxContext; Message _bwxMsg; Clause _bwxClause; Element _bwxSubject; TaskResult _bwxResult; { ControlFlags _bwxQflags = ControlFlags.None; { foreach (Element origin in bwxTask.Context.QuerySubjPred <Element>(Ent_Self, Ent_location)) { _bwxClause = bwxTask.Context.Find(new ClausePattern(origin, Ent_distanceTo, destination)); if (_bwxClause != null) { float distance = (float)_bwxClause[Ent_distance]; { if (bwxTask.Context.Exists <float>(Ent_Self, Ent_cash, (x) => x >= 1.5 + .5 * distance)) { _bwxQflags |= ControlFlags.PartialSuccess; _bwxMsg = new Message(MessageKind.Callback, bwxTask, null, new Clause(Ent_Clause, Ent_Self, Ent_callback, (MessageCallback)((__bwxContext, __bwxExpert, __bwxMessage) => { Method __bwxTask = new Method(__bwxContext, __bwxMessage); __bwxContext.ScheduleTask(__bwxTask, TravelByTaxi_1Proc(__bwxTask, destination, origin, distance)); }))); Post(bwxTask.Process, _bwxMsg); } else { _bwxQflags |= ControlFlags.PartialFailure; } } } } } if (_bwxQflags == ControlFlags.None || _bwxQflags == ControlFlags.PartialFailure) { yield return(Throw(bwxTask.Process, bwxTask.Message)); } } yield return(Succeed(bwxTask.Process, bwxTask.Message)); }
public IEnumerator <TaskStatus> RideProc(MentalTask bwxTask, Element origin, Element destination) { Task _bwxTask; Context _bwxContext; Message _bwxMsg; Clause _bwxClause; Element _bwxSubject; TaskResult _bwxResult; { if (bwxTask.Context.Exists(Ent_Taxi1, Ent_location, origin)) { if (bwxTask.Context.Exists(Ent_Self, Ent_location, origin)) { _bwxMsg = new Message(MessageKind.Modify, bwxTask, null, new Clause(Ent_Belief, Ent_Taxi1, Ent_location, (Element)(destination))); Post(bwxTask.Process, _bwxMsg); _bwxMsg = new Message(MessageKind.Modify, bwxTask, null, new Clause(Ent_Belief, Ent_Self, Ent_location, (Element)(destination))); Post(bwxTask.Process, _bwxMsg); } } } yield return(Succeed(bwxTask.Process, bwxTask.Message)); }
public IEnumerator <TaskStatus> FooProc(MentalTask bwxTask, Atom y) { Task _bwxTask = null; Context _bwxContext = null; Message _bwxMsg; Clause _bwxClause = null; Atom _bwxSubject = null; TaskResult _bwxResult = null; Begin(bwxTask); { if (bwxTask.Context.Exists(y, Ent_likes, Ent_RockMusic)) { if (bwxTask.Context.Exists(Ent_Bob, Ent_knows, y)) { { _bwxMsg = new Message(MessageKind.Add, null, null, new Clause(Ent_Belief, Ent_Bob, Ent_likes, y)); Post(bwxTask.Process, _bwxMsg); } } } } yield return(Succeed(bwxTask.Process, bwxTask.Message)); }
public IEnumerator <TaskStatus> StackProc(MentalTask bwxTask, Atom g, Atom x, Atom y) { Task _bwxTask = null; Context _bwxContext = null; Message _bwxMsg; Clause _bwxClause = null; Atom _bwxSubject = null; TaskResult _bwxResult = null; Begin(bwxTask); { ControlFlags _bwxQflags = ControlFlags.None; { if (!bwxTask.Context.Exists(x, Ent_isClear, true)) { _bwxQflags |= ControlFlags.PartialSuccess; { _bwxMsg = new Message(MessageKind.Attempt, null, null, new Clause(Ent_Perform, Ent_Self, Ent_clear, x)); Post(bwxTask.Process, _bwxMsg); } } else { _bwxQflags |= ControlFlags.PartialFailure; } } if (_bwxQflags == ControlFlags.PartialSuccess) { { yield return(Return(bwxTask.Process, bwxTask.Message)); } } } { ControlFlags _bwxQflags = ControlFlags.None; { if (!bwxTask.Context.Exists(y, Ent_isClear, true)) { _bwxQflags |= ControlFlags.PartialSuccess; { _bwxMsg = new Message(MessageKind.Attempt, null, null, new Clause(Ent_Perform, Ent_Self, Ent_clear, y)); Post(bwxTask.Process, _bwxMsg); } } else { _bwxQflags |= ControlFlags.PartialFailure; } } if (_bwxQflags == ControlFlags.PartialSuccess) { { yield return(Return(bwxTask.Process, bwxTask.Message)); } } } { foreach (Atom z in bwxTask.Context.QuerySubjPred <Atom>(x, Ent_onTop)) { { _bwxMsg = new Message(MessageKind.Remove, null, null, new Clause(Ent_Belief, x, Ent_onTop, z)); Post(bwxTask.Process, _bwxMsg); } } } _bwxMsg = new Message(MessageKind.Add, null, null, new Clause(Ent_Belief, x, Ent_onTop, y)); Post(bwxTask.Process, _bwxMsg); _bwxMsg = new Message(MessageKind.Remove, null, null, (Clause)g); Post(bwxTask.Process, _bwxMsg); yield return(Succeed(bwxTask.Process, bwxTask.Message)); }