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, ServiceSymbols

    public class Slip

extends PlannerBase
implements ServiceSymbols

Semi-linear planner.

Nested Class Summary
`(package private) static class` | `Slip.HavePlanException`
`(package private) static interface` | `Slip.ParameterMaker`
`(package private) class` | `Slip.ReplanStep`
`(package private) static class` | `Slip.StepLimitException`

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

Field Summary
`(package private) LListCollector` | `alternatives`
`(package private) DomainAnalyser` | `analysis`
`(package private) ContextBoolean` | `contextIsPoisoned`
`(package private) int` | `hardStepLimit`
`(package private) java.lang.Runnable` | `invalidStep`
`(package private) IPlanModelManager` | `iplanMM`
`(package private) static Keyword` | `K_ALL`
`(package private) static Keyword` | `K_NONE`
`(package private) Slip.ParameterMaker` | `makeInput`
`(package private) Slip.ParameterMaker` | `makeOutput`
`(package private) ContextHashMap` | `nodeEndStatusMap`
`(package private) ContextGensym.Generator` | `objectNameGenerator`
`(package private) static Symbol` | `S_ACHIEVABLE_CONDS`
`(package private) static Symbol` | `S_ACHIEVE_GOAL`
`(package private) static Symbol` | `S_ACHIEVE_PV`
`(package private) static Symbol` | `S_EQL`
`(package private) static Symbol` | `S_TRUE`
`(package private) static Symbol` | `S_USE_FOR_EFFECTS`
`(package private) java.util.Map` | `savedInitialWorldState`
`(package private) boolean` | `singleStep`
`(package private) SlipStats` | `stats`
`(package private) int` | `stepLimit`
`(package private) SlipSingleStepper` | `stepper`
`(package private) java.lang.Runnable` | `testStep`
`(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, knownAgents, nameListeners, startupDate, startupHooks, symbolName, textFrame, thisAgent`

Fields inherited from interface ix.iplan.ServiceSymbols
`S_INPUT_OBJECTS, S_INPUTS, S_NAME_MAP, S_OUTPUT_OBJECTS, S_OUTPUTS, S_OWL_S_PROCESS, S_TYPE`

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(LList pattern, Refinement r)`
`(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)`
`(package private) boolean` | `existsAchieversForCond(PatternAssignment pv)`
`(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(PatternAssignment pv)` Returns a list of ways to achieve a condition.
`(package private) java.util.List` | `getGoalAchievers(PNode goalNode)`
`(package private) PatternAssignment` | `getGoalCond(PNodeEnd ne)`
`PlanStats` | `getStatistics()` Returns statistics gathered by the most recent `Planner.plan()` or `Planner.replan()`.
`(package private) Status` | `getStatus(PNodeEnd end)`
`(package private) void` | `initStatusTable()`
`(package private) static boolean` | `isAchievableCond(LList pattern, Annotated decider)`
`(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)`
`(package private) java.util.List` | `makeParameters(java.util.List patternAssignments, MatchEnv env, Slip.ParameterMaker m)`
`(package private) IPlanModelManager` | `MM()`
`(package private) void` | `normalizeGoalNode(ActivityItem goalNode)`
`(package private) Alternative` | `pickAlternative()`
`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) void` | `postAlternative(Alternative alt)`
`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(Activity act)`
`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(java.lang.Runnable r)`
`(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()`

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

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

Methods inherited from class ix.ip2.Ip2
`addAboutInfo, addForwardingHandler, addHandlers, addResetHook, addTest, addTestMenuItems, addTool, clearAllButState, clearModel, do_reloadViewers, ensureTool, exit, 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, displayMessage, do_mainStartup, fireSymbolNameChanged, getAgent, getAgentDisplayName, getAgentIPCName, getAgentStartupDate, getAgentSymbolName, getContactManager, getEventLogger, getISimTimer, getKnownAgents, handleReceivedReport, installAgentExtensions, log, mainStartup, notePossibleNewContact, pre_handleInput, preprocessInput, reportInputException, setAgentSymbolName, 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

### alternatives

    LListCollector alternatives

### contextIsPoisoned

    ContextBoolean contextIsPoisoned

### nodeEndStatusMap

    ContextHashMap nodeEndStatusMap

### 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

    java.lang.Runnable invalidStep

### testStep

    java.lang.Runnable testStep

### S_TRUE

    static final Symbol S_TRUE

### K_ALL

    static final Keyword K_ALL

### K_NONE

    static final Keyword K_NONE

### S_ACHIEVABLE_CONDS

    static final Symbol S_ACHIEVABLE_CONDS

### S_USE_FOR_EFFECTS

    static final Symbol S_USE_FOR_EFFECTS

### 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_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 PlanStats 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(java.lang.Runnable r)

### 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 will be satisfied. (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`

### 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)

### pickAlternative

    Alternative pickAlternative()

### poison

    Poison poison(java.lang.Object reason)

### domainSays

    boolean domainSays(java.lang.String propname)

### isAchievableCond

    static boolean isAchievableCond(LList pattern,
                                    Annotated decider)

### canBeUsedForEffect

    static boolean canBeUsedForEffect(LList pattern,
                                      Refinement r)

### 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)

### recordInputsAndOutputs

    void recordInputsAndOutputs()

### recordInputsAndOutputs

    void recordInputsAndOutputs(Activity act)

### makeParameters

    java.util.List makeParameters(java.util.List patternAssignments,
                                  MatchEnv env,
                                  Slip.ParameterMaker m)

### isGoalNode

    boolean isGoalNode(PNodeEnd ne)

### getGoalCond

    PatternAssignment getGoalCond(PNodeEnd ne)

### makeGoalNode

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

### getGoalAchievers

    java.util.List getGoalAchievers(PNode goalNode)

### normalizeGoalNode

    void normalizeGoalNode(ActivityItem goalNode)

### recordAsWaitingForAchieve

    void recordAsWaitingForAchieve(PNode node)

### isWaitingForAchieve

    boolean isWaitingForAchieve(PNode node)

### getAchieversForCond

    java.util.List getAchieversForCond(PatternAssignment pv)

  Returns a list of ways to achieve a condition.

### existsAchieversForCond

    boolean existsAchieversForCond(PatternAssignment pv)

### 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