Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## ix.iplan
Class Slip

    java.lang.Object
      ix.icore.IXAgent
          ix.ip2.Ip2
              ix.iplan.IPlan
                  ix.iplan.PlannerBase
                      ix.iplan.Slip

All Implemented Interfaces:
  Planner

    public class Slip

extends PlannerBase

Semi-linear planner.

Nested Class Summary
`(package private) static class` | `Slip.HavePlanException`
`(package private) static interface` | `Slip.ParameterMaker`
`(package private) class` | `Slip.PossibleConditionFinder`
`(package private) class` | `Slip.PossibleConstraintFinder`
`(package private) class` | `Slip.PossibleEffectFinder`
`(package private) class` | `Slip.PossiblesFinder`
`(package private) class` | `Slip.ReplanStep`
`(package private) static interface` | `Slip.Step`
`static class` | `Slip.StepLimitException`

Nested classes/interfaces inherited from class ix.ip2.Ip2
`Ip2.AddExtensionsHandler, Ip2.AddHandlersHandler`

Field Summary
`(package private) LListCollector` | `alternatives`
`(package private) DomainAnalyser` | `analysis`
`(package private) ContextBoolean` | `contextIsPoisoned`
`(package private) static Symbol` | `DEPTH_FIRST`
`(package private) int` | `hardStepLimit`
`(package private) LLQueue<java.lang.Object[]>` | `history`
`(package private) Slip.Step` | `invalidStep`
`(package private) IPlanModelManager` | `iplanMM`
`(package private) ContextMap<PNodeEnd,java.lang.Boolean>` | `isWaiting`
`static Keyword` | `K_ALL`
`static Keyword` | `K_NONE`
`(package private) boolean` | `liberalAchieveSemantics`
`(package private) Slip.ParameterMaker` | `makeInput`
`(package private) Slip.ParameterMaker` | `makeOutput`
`(package private) ContextMap<PNodeEnd,Status>` | `nodeEndStatusMap`
`(package private) ContextGensym.Generator` | `objectNameGenerator`
`(package private) boolean` | `pickAlternativesDepthFirst`
`static Symbol` | `S_ACHIEVABLE_CONDS`
`static Symbol` | `S_ACHIEVE`
`(package private) static Symbol` | `S_ACHIEVE_GOAL`
`(package private) static Symbol` | `S_ACHIEVE_PV`
`(package private) static Symbol` | `S_AT_END`
`static Symbol` | `S_CONDITION_TYPE`
`(package private) static Symbol` | `S_EQL`
`static Symbol` | `S_TRUE`
`static Symbol` | `S_USE_CONDITION_TYPES`
`static Symbol` | `S_USE_FOR_EFFECT`
`static Symbol` | `S_USE_FOR_EFFECTS`
`(package private) java.util.Map` | `savedInitialWorldState`
`(package private) static Symbol` | `SEARCH_PREFERENCE`
`(package private) boolean` | `singleStep`
`(package private) SlipStats` | `stats`
`(package private) int` | `stepLimit`
`(package private) SlipSingleStepper` | `stepper`
`(package private) Slip.Step` | `testStep`
`(package private) ContextMultiMap` | `unwaitTable`
`(package private) boolean` | `useConditionTypes`
`(package private) boolean` | `useDomainAnalysis`
`(package private) ContextHashMap` | `waitingForAchieveTable`

Fields inherited from class ix.ip2.Ip2
`activityViewer, agentTypeName, annotationViewer, controller, domain, frame, issueViewer, logoImage, logoLine1, logoLine2, modelManager, optionManager, resetHooks, showOptions, stateViewer`

Fields inherited from class ix.icore.IXAgent
`contactManager, displayName, eventLogger, exitHooks, initialDisplayName, ipcName, ipcStrategyName, iSimTimer, mainAgent, nameListeners, startupDate, startupHooks, symbolName, textFrame`

Constructor Summary
`Slip(boolean standAlone)`

Method Summary
`protected void` | `addHandlers()` Install any built-in issue and activity handlers.
`(package private) void` | `allComputeStatus(java.util.List nodeEnds)`
`(package private) boolean` | `allHaveStatus(java.util.List nodeEnds, Status status)`
`(package private) static boolean` | `canBeUsedForEffect(Constraint effect, Refinement r, Domain d)`
`(package private) void` | `cancelLocalChoices()`
`(package private) boolean` | `canExecBegin(PNodeEnd ne)`
`(package private) boolean` | `canExecEnd(PNodeEnd ne)`
`(package private) void` | `computeProperStatus(PNodeEnd end)`
`(package private) void` | `computeProperStatusValues()`
`(package private) void` | `computeStatus(PNodeEnd end)`
`(package private) void` | `createPlanContext()`
`(package private) void` | `describeAlternative(Alternative alt)`
`(package private) void` | `describeAlternatives()`
`(package private) void` | `describeLinks(PNodeEnd at, java.lang.String relation, java.util.List nodeEnds)`
`(package private) void` | `describeNodeEnd(PNodeEnd end)`
`(package private) void` | `describeNodeEnds()`
`(package private) void` | `describeNodeEnds(java.util.List nodeEnds)`
`(package private) boolean` | `domainSays(java.lang.String propname)`
`static boolean` | `domainUsesConditionTypes(Domain dom)`
`(package private) void` | `execBegin(PNodeEnd ne)`
`(package private) void` | `execEnd(PNodeEnd ne)`
`(package private) boolean` | `existsAchieversForCond(Constraint cond)`
`(package private) PNodeEnd` | `findExecutable()`
`(package private) PNodeEnd` | `findExecutable(java.util.Iterator i)`
`(package private) boolean` | `findFirstPlan()`
`(package private) boolean` | `findNextPlan()`
`(package private) void` | `finishedPlanning(boolean success)`
`(package private) Symbol` | `generateObjectName(Symbol typeName)`
`(package private) java.util.List` | `getAchieversForCond(Constraint cond)` Returns a list of ways to achieve a condition by introducing a node.
`(package private) PNodeEnd` | `getAtEndForGoal(ActivityItem goalNode)`
`(package private) PNodeEnd` | `getAtEndForGoal(PNodeEnd goalEnd)`
`(package private) java.util.List` | `getGoalAchievers(PNode goalNode)`
`(package private) PatternAssignment` | `getGoalCond(PNodeEnd ne)`
`(package private) java.util.Set` | `getPossibleConditions(PNodeEnd ne)`
`(package private) java.util.Set` | `getPossibleEffects(PNodeEnd ne)`
`(package private) java.util.Set` | `getPossibleOtherConstraints(PNodeEnd ne)`
`(package private) java.util.Set` | `getPossibleTopLevelConditions(PNodeEnd ne)`
`(package private) java.util.Set` | `getPossibleTopLevelEffects(PNodeEnd ne)`
`(package private) java.util.Set` | `getPossibleTopLevelOtherConstraints(PNodeEnd ne)`
`SlipStats` | `getStatistics()` Returns statistics gathered by the most recent `Planner.plan()` or `Planner.replan()`.
`(package private) Status` | `getStatus(PNodeEnd end)`
`static boolean` | `hasCondType(Constraint c, Symbol type)`
`(package private) void` | `history(java.lang.Object... words)`
`(package private) void` | `initStatusTable()`
`(package private) static boolean` | `isAchievableCondPattern(LList pattern, Domain decider)`
`(package private) boolean` | `isGoalNode(PNode n)`
`(package private) boolean` | `isGoalNode(PNodeEnd ne)`
`(package private) boolean` | `isWaitingForAchieve(PNode node)`
`static void` | `main(java.lang.String[] argv)` Standalone main program.
`(package private) ActivityItem` | `makeGoalNode(PatternAssignment goalCond, java.util.List achievers, PNodeEnd atNodeEnd)`
`(package private) IPlanModelManager` | `MM()`
`(package private) boolean` | `noPossibleTopLevelConstraints(PNodeEnd ne)`
`(package private) void` | `normalizeGoalNode(ActivityItem goalNode)`
`(package private) void` | `noteHistory()`
`(package private) Alternative` | `pickAlternative(java.lang.Object reason)`
`void` | `plan()` Finds a plan that is a completion of this planner's current plan and makes it the new current plan.
`(package private) boolean` | `planIsComplete()`
`(package private) void` | `planLoop()`
`(package private) Poison` | `poison(java.lang.Object reason)`
`(package private) boolean` | `possiblyInteracting(PNodeEnd w, PNodeEnd releaser)`
`(package private) boolean` | `possiblyInteractingCondsOrEffects(PNodeEnd selected, java.util.Set conds, java.util.Set effects, PNodeEnd ne)`
`(package private) boolean` | `possiblyInteractingConstraints(PNodeEnd selected, java.util.Set constraints, PNodeEnd ne)`
`(package private) void` | `postAlternative(Alternative alt)`
`(package private) boolean` | `preferDepthFirst()`
`protected void` | `processCommandLineArguments()` Command-line argument processing for arguments used by all versions of I-P2.
`(package private) void` | `recordAsWaitingForAchieve(PNode node)`
`(package private) void` | `recordInputsAndOutputs()`
`(package private) void` | `recordInputsAndOutputs(Refinement ref, Activity act)`
`(package private) void` | `recordParameters(Symbol refKey, Symbol actKey, Refinement ref, Activity act, Slip.ParameterMaker m)`
`(package private) void` | `releaseWaitingEnds(PNodeEnd ne)`
`void` | `replan()` Finds the next in a series of plans that are completions of the plan that was current when `Planner.plan()` was most recently called.
`void` | `reset()` Called to restore the initial state.
`void` | `setDomain(Domain dom)` Sets this planner's domain.
`(package private) void` | `setNextStep(Slip.Step s)`
`(package private) void` | `setProperStatus(PNode node)`
`(package private) void` | `setProperStatus(PNodeEnd end, Status status)`
`(package private) void` | `setStatus(PNodeEnd end, Status status)`
`void` | `setStepLimit(int limit)`
`void` | `startup()` Completes setup and initialization.
`(package private) void` | `stepLimitReached(boolean isHardLimit)`
`(package private) void` | `testStatusPropagation()`
`(package private) void` | `tryUnwaiting(PNodeEnd w, PNodeEnd releaser)`

Methods inherited from class ix.iplan.PlannerBase
`completeStartup, handleInput, initOptions, isStandAlone, makeInstance, outputOwlSPlan, outputPlan, outputPlanPSGraphData, startServer`

Methods inherited from class ix.iplan.IPlan
`displayFrame, makeDefaultPlanner, makeIp2Frame, makeModelManager`

Methods inherited from class ix.ip2.Ip2
`addAboutInfo, addForwardingHandler, addHandlers, addResetHook, addTest, addTestMenuItems, addTool, clearAllButState, clearModel, do_reloadViewers, ensureTool, getActivityPatternSyntaxes, getAgentTypeName, getController, getDomain, getFrame, getIp2ModelManager, getModelManager, getOptionManager, getPlan, handleInputDirectly, handleNewActivity, handleNewChatMessage, handleNewConstraint, handleNewIssue, handleNewReport, isReloadingViewers, loadDomain, loadInitialPlan, loadPlan, loadPlan, loadPlan, makeActivityViewer, makeAnnotationViewer, makeController, makeIssueViewer, makeLogoPanel, makeStateViewer, makeViewer, readDomain, readDomain, reloadViewers, resetAllButState, resetViewers, savePlanAs`

Methods inherited from class ix.icore.IXAgent
`addAgentNameListener, addExitHook, addStartupHook, adjustLookAndFeel, displayMessage, do_mainStartup, exit, fireSymbolNameChanged, getAgent, getAgentDisplayName, getAgentIPCName, getAgentStartupDate, getAgentSymbolName, getContactManager, getEventLogger, getISimTimer, getKnownAgents, handleReceivedReport, installAgentExtensions, installAgentExtensions, isMainAgent, log, mainStartup, notePossibleNewContact, pre_handleInput, preprocessInput, reportInputException, setAgentSymbolName, setEventLogger, setupISimTimer`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface ix.iplan.Planner
`getPlan, loadPlan`

Field Detail

### iplanMM

    IPlanModelManager iplanMM

### analysis

    DomainAnalyser analysis

### useDomainAnalysis

    boolean useDomainAnalysis

### pickAlternativesDepthFirst

    boolean pickAlternativesDepthFirst

### useConditionTypes

    boolean useConditionTypes

### alternatives

    LListCollector alternatives

### contextIsPoisoned

    ContextBoolean contextIsPoisoned

### nodeEndStatusMap

    ContextMap<PNodeEnd,Status> nodeEndStatusMap

### isWaiting

    ContextMap<PNodeEnd,java.lang.Boolean> isWaiting

### unwaitTable

    ContextMultiMap unwaitTable

### history

    LLQueue<java.lang.Object[]> history

### savedInitialWorldState

    java.util.Map savedInitialWorldState

### stats

    SlipStats stats

### objectNameGenerator

    ContextGensym.Generator objectNameGenerator

### stepLimit

    int stepLimit

### hardStepLimit

    int hardStepLimit

### stepper

    SlipSingleStepper stepper

### singleStep

    boolean singleStep

### invalidStep

    Slip.Step invalidStep

### testStep

    Slip.Step testStep

### S_TRUE

    public static final Symbol S_TRUE

### SEARCH_PREFERENCE

    static final Symbol SEARCH_PREFERENCE

### DEPTH_FIRST

    static final Symbol DEPTH_FIRST

### liberalAchieveSemantics

    boolean liberalAchieveSemantics

### K_ALL

    public static final Keyword K_ALL

### K_NONE

    public static final Keyword K_NONE

### S_ACHIEVABLE_CONDS

    public static final Symbol S_ACHIEVABLE_CONDS

### S_USE_FOR_EFFECTS

    public static final Symbol S_USE_FOR_EFFECTS

### S_USE_CONDITION_TYPES

    public static final Symbol S_USE_CONDITION_TYPES

### S_CONDITION_TYPE

    public static final Symbol S_CONDITION_TYPE

### S_ACHIEVE

    public static final Symbol S_ACHIEVE

### S_USE_FOR_EFFECT

    public static final Symbol S_USE_FOR_EFFECT

### makeInput

    Slip.ParameterMaker makeInput

### makeOutput

    Slip.ParameterMaker makeOutput

### S_ACHIEVE_GOAL

    static final Symbol S_ACHIEVE_GOAL

### S_ACHIEVE_PV

    static final Symbol S_ACHIEVE_PV

### S_AT_END

    static final Symbol S_AT_END

### S_EQL

    static final Symbol S_EQL

### waitingForAchieveTable

    ContextHashMap waitingForAchieveTable

Constructor Detail

### Slip

    public Slip(boolean standAlone)

Method Detail

### MM

    IPlanModelManager MM()

### main

    public static void main(java.lang.String[] argv)

  Standalone main program. One plan in, one plan out; To specify the initial plan, use the `plan` command-line argument. The result will be written to the file specified by the `output` argument. If no output is specified, the user is asked by a dialog.

### startup

    public void startup()

  Completes setup and initialization.

  Overrides:
    `startup` in class `PlannerBase`

### processCommandLineArguments

    protected void processCommandLineArguments()

  Description copied from class: `Ip2`
  Command-line argument processing for arguments used by all versions of I-P2.

  Overrides:
    `processCommandLineArguments` in class `Ip2`
  See Also:
    `IFUtil.adjustLookAndFeel()`, `IPC.makeCommunicationStrategy(String methodName)`, `ContactManager.processCommandLineArguments()`, `Debug.on`, `Parameters`

### reset

    public void reset()

  Called to restore the initial state.

  Overrides:
    `reset` in class `Ip2`

### getStatistics

    public SlipStats getStatistics()

  Description copied from interface: `Planner`
  Returns statistics gathered by the most recent `Planner.plan()` or `Planner.replan()`.

  Specified by:
    `getStatistics` in interface `Planner`
  Overrides:
    `getStatistics` in class `PlannerBase`

### generateObjectName

    Symbol generateObjectName(Symbol typeName)

### setStepLimit

    public void setStepLimit(int limit)

### setDomain

    public void setDomain(Domain dom)

  Description copied from interface: `Planner`
  Sets this planner's domain. This is normally done before plan() or replan() are called. The consequences of calling this method at other times are unspecified.

  Specified by:
    `setDomain` in interface `Planner`
  Overrides:
    `setDomain` in class `IPlan`

### addHandlers

    protected void addHandlers()

  Install any built-in issue and activity handlers.

  Overrides:
    `addHandlers` in class `PlannerBase`

### setNextStep

    void setNextStep(Slip.Step s)

### plan

    public void plan()

  Description copied from interface: `Planner`
  Finds a plan that is a completion of this planner's current plan and makes it the new current plan. The precise meaning of "completion" depends on the planner in question, but typically it will mean that all activities in the initial plan that might be expanded into subactions, using refinements in this planner's domain, will be expanded, and that all constraints in the initial plan or introduced by expansion would be satisfied if the plan were executed in a way that respected all of the ordering constraints. (Here, the initial plan is the plan that was current when plan() was called.)

  A successful call to plan() leaves this planner in a state in which `Planner.replan()` can be called.

  Specified by:
    `plan` in interface `Planner`
  Overrides:
    `plan` in class `PlannerBase`

### replan

    public void replan()

  Description copied from interface: `Planner`
  Finds the next in a series of plans that are completions of the plan that was current when `Planner.plan()` was most recently called. That completion then becomes the new current plan. You can think of this as reconsidering some choice made when producing earlier plans in the sequence and making different decision at that point. However, it is not guaranteed that the plan found in this way will be interestingly different from all of the earlier plans in the sequence.

  The replan() method should not be called if plan() has not been called or if this planner has thrown an exception.

  A successful call to replan() leaves this planner in a state in which `Planner.replan()` can be called again. plan() may be called instead, but this will begin a new sequence of plans based on this planner's now current plan, rather than on the plan that was the base for the previous sequence.

  Specified by:
    `replan` in interface `Planner`
  Overrides:
    `replan` in class `PlannerBase`

### findFirstPlan

    boolean findFirstPlan()

### findNextPlan

    boolean findNextPlan()

### planLoop

    void planLoop()

### stepLimitReached

    void stepLimitReached(boolean isHardLimit)

### finishedPlanning

    void finishedPlanning(boolean success)

### createPlanContext

    void createPlanContext()

### postAlternative

    void postAlternative(Alternative alt)

### cancelLocalChoices

    void cancelLocalChoices()

### pickAlternative

    Alternative pickAlternative(java.lang.Object reason)

### poison

    Poison poison(java.lang.Object reason)

### history

    void history(java.lang.Object... words)

### noteHistory

    void noteHistory()

### domainSays

    boolean domainSays(java.lang.String propname)

### preferDepthFirst

    boolean preferDepthFirst()

### domainUsesConditionTypes

    public static boolean domainUsesConditionTypes(Domain dom)

### hasCondType

    public static boolean hasCondType(Constraint c,
                                      Symbol type)

### isAchievableCondPattern

    static boolean isAchievableCondPattern(LList pattern,
                                           Domain decider)

### canBeUsedForEffect

    static boolean canBeUsedForEffect(Constraint effect,
                                      Refinement r,
                                      Domain d)

### testStatusPropagation

    void testStatusPropagation()

### findExecutable

    PNodeEnd findExecutable()

### findExecutable

    PNodeEnd findExecutable(java.util.Iterator i)

### planIsComplete

    boolean planIsComplete()

### getStatus

    Status getStatus(PNodeEnd end)

### setStatus

    void setStatus(PNodeEnd end,
                   Status status)

### computeStatus

    void computeStatus(PNodeEnd end)

### allComputeStatus

    void allComputeStatus(java.util.List nodeEnds)

### allHaveStatus

    boolean allHaveStatus(java.util.List nodeEnds,
                          Status status)

### initStatusTable

    void initStatusTable()

### computeProperStatusValues

    void computeProperStatusValues()

### computeProperStatus

    void computeProperStatus(PNodeEnd end)

### setProperStatus

    void setProperStatus(PNodeEnd end,
                         Status status)

### setProperStatus

    void setProperStatus(PNode node)

### canExecBegin

    boolean canExecBegin(PNodeEnd ne)

### execBegin

    void execBegin(PNodeEnd ne)

### canExecEnd

    boolean canExecEnd(PNodeEnd ne)

### execEnd

    void execEnd(PNodeEnd ne)

### releaseWaitingEnds

    void releaseWaitingEnds(PNodeEnd ne)

### tryUnwaiting

    void tryUnwaiting(PNodeEnd w,
                      PNodeEnd releaser)

### possiblyInteracting

    boolean possiblyInteracting(PNodeEnd w,
                                PNodeEnd releaser)

### possiblyInteractingCondsOrEffects

    boolean possiblyInteractingCondsOrEffects(PNodeEnd selected,
                                              java.util.Set conds,
                                              java.util.Set effects,
                                              PNodeEnd ne)

### possiblyInteractingConstraints

    boolean possiblyInteractingConstraints(PNodeEnd selected,
                                           java.util.Set constraints,
                                           PNodeEnd ne)

### recordInputsAndOutputs

    void recordInputsAndOutputs()

### recordInputsAndOutputs

    void recordInputsAndOutputs(Refinement ref,
                                Activity act)

### recordParameters

    void recordParameters(Symbol refKey,
                          Symbol actKey,
                          Refinement ref,
                          Activity act,
                          Slip.ParameterMaker m)

### isGoalNode

    boolean isGoalNode(PNodeEnd ne)

### isGoalNode

    boolean isGoalNode(PNode n)

### getGoalCond

    PatternAssignment getGoalCond(PNodeEnd ne)

### makeGoalNode

    ActivityItem makeGoalNode(PatternAssignment goalCond,
                              java.util.List achievers,
                              PNodeEnd atNodeEnd)

### getGoalAchievers

    java.util.List getGoalAchievers(PNode goalNode)

### getAtEndForGoal

    PNodeEnd getAtEndForGoal(PNodeEnd goalEnd)

### getAtEndForGoal

    PNodeEnd getAtEndForGoal(ActivityItem goalNode)

### normalizeGoalNode

    void normalizeGoalNode(ActivityItem goalNode)

### recordAsWaitingForAchieve

    void recordAsWaitingForAchieve(PNode node)

### isWaitingForAchieve

    boolean isWaitingForAchieve(PNode node)

### getAchieversForCond

    java.util.List getAchieversForCond(Constraint cond)

  Returns a list of ways to achieve a condition by introducing a node.

### existsAchieversForCond

    boolean existsAchieversForCond(Constraint cond)

### getPossibleTopLevelConditions

    java.util.Set getPossibleTopLevelConditions(PNodeEnd ne)

### getPossibleTopLevelEffects

    java.util.Set getPossibleTopLevelEffects(PNodeEnd ne)

### getPossibleTopLevelOtherConstraints

    java.util.Set getPossibleTopLevelOtherConstraints(PNodeEnd ne)

### noPossibleTopLevelConstraints

    boolean noPossibleTopLevelConstraints(PNodeEnd ne)

### getPossibleConditions

    java.util.Set getPossibleConditions(PNodeEnd ne)

### getPossibleEffects

    java.util.Set getPossibleEffects(PNodeEnd ne)

### getPossibleOtherConstraints

    java.util.Set getPossibleOtherConstraints(PNodeEnd ne)

### describeAlternatives

    void describeAlternatives()

### describeAlternative

    void describeAlternative(Alternative alt)

### describeNodeEnds

    void describeNodeEnds()

### describeNodeEnds

    void describeNodeEnds(java.util.List nodeEnds)

### describeNodeEnd

    void describeNodeEnd(PNodeEnd end)

### describeLinks

    void describeLinks(PNodeEnd at,
                       java.lang.String relation,
                       java.util.List nodeEnds)

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD