ubc.cs.JLog.Foundation
Class jUserGoal
java.lang.Object
ubc.cs.JLog.Foundation.jGoal
ubc.cs.JLog.Foundation.jUserGoal
- All Implemented Interfaces:
- iName, iNameArity
public class jUserGoal
- extends jGoal
Goal for getting user queries. jUserGoal
is designed as a goal stub so
that user queries have the same behavior as if they were the based off a rule.
Notably, cuts will work, and or predicates containing cuts
will also work. jUserGoal
assumes that it is the first goal (it is ok
to place it on the empty proved stack first without calling prove, the only goal with
this property).
No attempt is made to keep track of unified variables (for cuts), since a retry is
guarenteed to fail, and standard behavior is to not display variables if the query fails.
- Author:
- Glendon Holst
Fields inherited from class ubc.cs.JLog.Foundation.jGoal |
next |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
jUserGoal
public jUserGoal()
prove
public boolean prove(iGoalStack goals,
iGoalStack proved)
- Description copied from class:
jGoal
- Attempt to prove the goal represented by this
jGoal
.
Goal must not be on either stack to prove (pop off goals stack before prove call).
Goal must place itself on the appropriate stack before returning.
proved
stack if 'proved', goals
stack otherwise.
Since proved doesn't pop the stack we don't need a try/catch block.
Must be called at least once before calling retry
.
- Specified by:
prove
in class jGoal
- Parameters:
goals
- iGoalStack
containing goals yet to be proved.proved
- iGoalStack
containing evaluated goals (goals
that may already be proved, or awaiting their child goals
to be proved).
- Returns:
boolean
is true if this goal ended up on
proved
, false otherwise.
retry
public boolean retry(iGoalStack goals,
iGoalStack proved)
- Description copied from class:
jGoal
- Attempt to prove the goal represented by this
jGoal
.
Goal must not be on either stack to retry (pop off proved stack before retry call).
Goal must place itself on the goal stack, and normally need not pop either stack.
Since retry doesn't pop the stack we don't need a try/catch block.
- Specified by:
retry
in class jGoal
- Parameters:
goals
- iGoalStack
containing goals yet to be proved.proved
- iGoalStack
containing evaluated goals (goals
that may already be proved, or awaiting their child goals
to be proved).
- Returns:
boolean
is true if the prover should attempt
a prove on this goal, false otherwise.
getName
public java.lang.String getName()
- Description copied from interface:
iName
- Returns the name of this instance.
- Returns:
String
containing name of this instance.
getArity
public int getArity()
- Description copied from interface:
iNameArity
- Returns the arity of this instance.
- Returns:
int
whose value is the arity of this instance.
toString
public java.lang.String toString()
- Overrides:
toString
in class java.lang.Object