Package edu.tufts.hrilab.action.goal
Class Goal
java.lang.Object
edu.tufts.hrilab.action.goal.Goal
Goal encapsulates a goal Predicate, the ActionInterpreter in charge of
executing it and some additional information.-
Constructor Summary
ConstructorsConstructorDescriptionConstruct goal that defines the actor to achieve the goal, and the desired goal/action.Construct goal with explicit actor.Goal(Symbol actor, Symbol goalState, Observable observable) Goal constructor used to explicitly mark goal as an observation. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddListener(GoalListener listener) booleanbindPredicate(Context context) Binds goal predicate to values in context.voidcancel()Cancels goal execution (if currently being executed).getActor()getContextDescription(Predicate location) Get the current context being executed by an ActionInterpreter.longGet the set of resources that will be held by this goal during execution.longgetId()getInfo()Get copy of GoalInfo.Get the goal predicate.longGet the set of resources necessary to be available in order to execute this goal.Get the root context of this goal (not the root of the entire tree).longbooleanisAction()booleanReturns true if this goal was submitted as part of an action learning processbooleanbooleanvoidremoveListener(GoalListener listener) voidresume()Resumes goal execution (if currently suspended).booleansetActionInterpreter(ActionInterpreter interpreter) booleanSet goal status to ACTIVE and set start time.voidsetCurrentContext(Context context) Set the current context being executed by an ActionInterpreter.voidsetFailureStatus(GoalStatus status, Justification failureJustification) Alternate method to setStatus, to set failure condition before sending goal status notifications.voidsetHeldResources(Set<Resource> heldResources) Set the set of resources which will be held by this goal during execution.voidsetIsAction(boolean value) voidsetIsLearningGoal(boolean isLearningGoal) Set indication whether this goal is being used as a part of action learning.voidvoidsetPriority(long priority) voidsetPriorityTier(PriorityTier priorityTier) voidsetRequiredResources(Set<Resource> requiredResources) Set the set of resources which must be available for this goal during execution.voidsetRootContext(Context context) Set the root context of this goal (not the root of the entire tree).voidsetStatus(GoalStatus status) Set the status of this goal.voidsuspend()Suspends goal execution (if currently being executed).toString()
-
Constructor Details
-
Goal
Construct goal that defines the actor to achieve the goal, and the desired goal/action. This is the main method used when using the GoalManager submitGoal method.- Parameters:
goalState-
-
Goal
Construct goal with explicit actor. This is primarily used for creating goal instance from ASL- Parameters:
actor-goalState-
-
Goal
Goal constructor used to explicitly mark goal as an observation. It's possible to have an observation goal without the OBS(actor, state) predicate form. This is almost always the case for observations from conditions and effects checks.- Parameters:
actor- the actor doing the observing (can be null, if it can be inferred from predicate)goalState- the goal predicateobservable- enum specifying if goal is observable, and if so what type (true/false/default)
-
-
Method Details
-
getPredicate
Get the goal predicate. This can contain free variables, and it can also become bound depending on where in the goal execution process this method is called.- Returns:
-
bindPredicate
Binds goal predicate to values in context.- Parameters:
context- context providing bindings- Returns:
- true if predicate was bound using variables in context
-
getId
public long getId() -
isAction
public boolean isAction() -
setIsAction
public void setIsAction(boolean value) -
isObservation
public boolean isObservation() -
getObservableEnum
-
isPersistent
public boolean isPersistent() -
getActor
-
getFailConditions
-
getStatus
-
getStartTime
public long getStartTime() -
getEndTime
public long getEndTime() -
setRootContext
Set the root context of this goal (not the root of the entire tree).- Parameters:
context-
-
setCurrentContext
Set the current context being executed by an ActionInterpreter.- Parameters:
context-
-
getRootContext
Get the root context of this goal (not the root of the entire tree).- Returns:
-
getCurrentContext
Get the current context being executed by an ActionInterpreter.- Returns:
-
getContextDescription
-
setAsStarted
public boolean setAsStarted()Set goal status to ACTIVE and set start time. This method does not actually start goal execution.- Returns:
-
setStatus
Set the status of this goal. Does not directly change the actual execution of this goal.- Parameters:
status-
-
setFailureStatus
Alternate method to setStatus, to set failure condition before sending goal status notifications.- Parameters:
status-failureJustification-
-
setPriority
public void setPriority(long priority) -
getPriority
public long getPriority() -
setPriorityTier
-
getPriorityTier
-
getRequiredResources
Get the set of resources necessary to be available in order to execute this goal. Note: This set is specific to the subclass of ExecutionManager being used in the system and requires setRequiredResources to be called first (by the ExecutionManager). Will return null if the set of resources has not yet been computed by an ExecutionManager. -
setRequiredResources
Set the set of resources which must be available for this goal during execution. This method should only be called by the Execution Manager on submission. -
getHeldResources
Get the set of resources that will be held by this goal during execution. Note: This set is specific to the subclass of ExecutionManager being used in the system and requires setRequiredResources to be called first (by the ExecutionManager). Will return null if the set of resources has not yet been computed by an ExecutionManager. -
setHeldResources
Set the set of resources which will be held by this goal during execution. This method should only be called by the Execution Manager on submission. -
setIsLearningGoal
public void setIsLearningGoal(boolean isLearningGoal) Set indication whether this goal is being used as a part of action learning. This is important for reasoning in the ExecutionManager about whether the goal conflicts with active learning. -
isLearningGoal
public boolean isLearningGoal()Returns true if this goal was submitted as part of an action learning process -
cancel
public void cancel()Cancels goal execution (if currently being executed). If being executed, calls cancel on the ActionInterpreter which will set the status of this goal once execution has terminated. -
suspend
public void suspend()Suspends goal execution (if currently being executed). If being executed, calls suspend on the ActionInterpreter which will set the status of this goal once execution has fully suspended. -
resume
public void resume()Resumes goal execution (if currently suspended). Calls suspend on the ActionInterpreter which will set the status of this goal once execution has resumed. -
getActionInterpreter
-
setActionInterpreter
-
toString
-
setMetric
-
getMetric
-
getInfo
Get copy of GoalInfo.- Returns:
-
addListener
-
removeListener
-