|
From: <jom...@us...> - 2008-03-31 19:25:04
|
Revision: 1182
http://jason.svn.sourceforge.net/jason/?rev=1182&view=rev
Author: jomifred
Date: 2008-03-31 12:25:02 -0700 (Mon, 31 Mar 2008)
Log Message:
-----------
rename some methods:
BB: getRelevant(Literal l) -> getCandidateBeliefs(Literal l, Unifier u)
PL: isRelevant(Trigger te) -> hasCandidatePlan(Trigger te)
getAllRelevant(Trigger te) -> getCandidatePlans(Trigger te)
Modified Paths:
--------------
trunk/demos/persistent-belief-base/VoidBB.java
trunk/demos/tell-rule/rules/get_rules.java
trunk/examples/gold-miners-II/agent/UniqueBelsBB.java
trunk/src/jason/asSemantics/Agent.java
trunk/src/jason/asSemantics/TransitionSystem.java
trunk/src/jason/asSyntax/Literal.java
trunk/src/jason/asSyntax/PlanLibrary.java
trunk/src/jason/bb/BeliefBase.java
trunk/src/jason/bb/DefaultBeliefBase.java
trunk/src/jason/bb/JDBCPersistentBB.java
trunk/src/test/BeliefBaseTest.java
trunk/src/test/PlanTest.java
trunk/src/test/RuleTest.java
trunk/src/test/VarTermTest.java
Modified: trunk/demos/persistent-belief-base/VoidBB.java
===================================================================
--- trunk/demos/persistent-belief-base/VoidBB.java 2008-03-30 20:41:40 UTC (rev 1181)
+++ trunk/demos/persistent-belief-base/VoidBB.java 2008-03-31 19:25:02 UTC (rev 1182)
@@ -55,6 +55,10 @@
return true;
}
+ public Iterator<Literal> getCandidateBeliefs(Literal l, Unifier u) {
+ return new ArrayList<Literal>().iterator();
+ }
+
public Iterator<Literal> getRelevant(Literal l) {
return new ArrayList<Literal>().iterator();
}
Modified: trunk/demos/tell-rule/rules/get_rules.java
===================================================================
--- trunk/demos/tell-rule/rules/get_rules.java 2008-03-30 20:41:40 UTC (rev 1181)
+++ trunk/demos/tell-rule/rules/get_rules.java 2008-03-31 19:25:02 UTC (rev 1182)
@@ -22,7 +22,7 @@
public Object execute(TransitionSystem ts, Unifier un, Term[] args) throws Exception {
try {
Literal pattern = (Literal)args[0];
- Iterator<Literal> i = ts.getAg().getBB().getRelevant(pattern);
+ Iterator<Literal> i = ts.getAg().getBB().getCandidateBeliefs(pattern, un);
ListTerm result = new ListTermImpl();
while (i.hasNext()) {
Literal l = i.next();
Modified: trunk/examples/gold-miners-II/agent/UniqueBelsBB.java
===================================================================
--- trunk/examples/gold-miners-II/agent/UniqueBelsBB.java 2008-03-30 20:41:40 UTC (rev 1181)
+++ trunk/examples/gold-miners-II/agent/UniqueBelsBB.java 2008-03-31 19:25:02 UTC (rev 1182)
@@ -44,7 +44,7 @@
Literal linbb = null;
boolean remove = false;
- Iterator<Literal> relevant = getRelevant(bel);
+ Iterator<Literal> relevant = getCandidateBeliefs(bel, null);
if (relevant != null) {
while (relevant.hasNext() && !remove) {
linbb = relevant.next();
Modified: trunk/src/jason/asSemantics/Agent.java
===================================================================
--- trunk/src/jason/asSemantics/Agent.java 2008-03-30 20:41:40 UTC (rev 1181)
+++ trunk/src/jason/asSemantics/Agent.java 2008-03-31 19:25:02 UTC (rev 1182)
@@ -457,7 +457,7 @@
perceptsInBB.remove(); // remove l as perception from BB
Trigger te = new Trigger(TEOperator.del, TEType.belief, l);
- if (ts.getC().hasListener() || pl.isRelevant(te)) {
+ if (ts.getC().hasListener() || pl.hasCandidatePlan(te)) {
l = (Literal)l.clone();
l.clearAnnots();
l.addAnnot(BeliefBase.TPercept);
@@ -519,7 +519,7 @@
* The unifier <i>un</i> is updated by the method.
*/
public Literal findBel(Literal bel, Unifier un) {
- Iterator<Literal> relB = bb.getRelevant(bel);
+ Iterator<Literal> relB = bb.getCandidateBeliefs(bel, un);
if (relB != null) {
while (relB.hasNext()) {
Literal b = relB.next();
@@ -628,7 +628,7 @@
public void abolish(Literal bel, Unifier un) throws RevisionFailedException {
List<Literal> toDel = new ArrayList<Literal>();
- Iterator<Literal> il = getBB().getRelevant(bel);
+ Iterator<Literal> il = getBB().getCandidateBeliefs(bel, un);
if (il != null) {
while (il.hasNext()) {
Literal inBB = il.next();
Modified: trunk/src/jason/asSemantics/TransitionSystem.java
===================================================================
--- trunk/src/jason/asSemantics/TransitionSystem.java 2008-03-30 20:41:40 UTC (rev 1181)
+++ trunk/src/jason/asSemantics/TransitionSystem.java 2008-03-31 19:25:02 UTC (rev 1182)
@@ -297,7 +297,7 @@
// get all relevant plans for the selected event
//Trigger te = (Trigger) conf.C.SE.trigger.clone();
- List<Plan> candidateRPs = conf.ag.pl.getAllRelevant(conf.C.SE.trigger);
+ List<Plan> candidateRPs = conf.ag.pl.getCandidatePlans(conf.C.SE.trigger);
if (candidateRPs != null) {
for (Plan pl : candidateRPs) {
Unifier relUn = pl.isRelevant(conf.C.SE.trigger);
@@ -486,7 +486,7 @@
if (body.isLiteral()) { // in case body is a var with content that is not a literal (note the VarTerm pass in the instanceof Literal)
body.makeVarsAnnon();
Trigger te = new Trigger(TEOperator.add, TEType.test, body);
- if (ag.getPL().isRelevant(te)) {
+ if (ag.getPL().hasCandidatePlan(te)) {
Event evt = new Event(te, conf.C.SI);
if (logger.isLoggable(Level.FINE)) logger.fine("Test Goal '" + h + "' failed as simple query. Generating internal event for it: "+te);
conf.C.addEvent(evt);
@@ -655,7 +655,7 @@
public List<Option> relevantPlans(Trigger teP) throws JasonException {
Trigger te = (Trigger) teP.clone();
List<Option> rp = null;
- List<Plan> candidateRPs = conf.ag.pl.getAllRelevant(te);
+ List<Plan> candidateRPs = conf.ag.pl.getCandidatePlans(te);
if (candidateRPs != null) {
for (Plan pl : candidateRPs) {
Unifier relUn = pl.isRelevant(te);
@@ -707,10 +707,12 @@
for (Literal ladd: result[0]) {
Trigger te = new Trigger(TEOperator.add, TEType.belief, ladd);
updateEvents(new Event(te, focus));
+ focus = Intention.EmptyInt;
}
for (Literal lrem: result[1]) {
Trigger te = new Trigger(TEOperator.del, TEType.belief, lrem);
updateEvents(new Event(te, focus));
+ focus = Intention.EmptyInt;
}
}
@@ -719,7 +721,7 @@
// Note: we have to add events even if they are not relevant to
// a) allow the user to override selectOption and then provide an "unknown" plan; or then
// b) create the failure event (it is done by SelRelPlan)
- if (e.isInternal() || C.hasListener() || ag.getPL().isRelevant(e.trigger)) {
+ if (e.isInternal() || C.hasListener() || ag.getPL().hasCandidatePlan(e.trigger)) {
C.addEvent(e);
if (logger.isLoggable(Level.FINE)) logger.fine("Added event " + e);
}
@@ -794,14 +796,14 @@
Trigger failTrigger = new Trigger(TEOperator.del, tevent.getType(), tevent.getLiteral());
if (i != Intention.EmptyInt) {
ListIterator<IntendedMeans> ii = i.iterator();
- while (!getAg().getPL().isRelevant(failTrigger) && ii.hasPrevious()) {
+ while (!getAg().getPL().hasCandidatePlan(failTrigger) && ii.hasPrevious()) {
IntendedMeans im = ii.previous();
tevent = im.getTrigger();
failTrigger = new Trigger(TEOperator.del, tevent.getType(), tevent.getLiteral());
}
}
// if some failure handling plan is found
- if (tevent.isGoal() && getAg().getPL().isRelevant(failTrigger)) {
+ if (tevent.isGoal() && getAg().getPL().hasCandidatePlan(failTrigger)) {
return new Event(failTrigger, i);
}
return null;
Modified: trunk/src/jason/asSyntax/Literal.java
===================================================================
--- trunk/src/jason/asSyntax/Literal.java 2008-03-30 20:41:40 UTC (rev 1181)
+++ trunk/src/jason/asSyntax/Literal.java 2008-03-31 19:25:02 UTC (rev 1182)
@@ -126,7 +126,7 @@
* Returns an iterator for all unifiers that are logCons.
*/
public Iterator<Unifier> logicalConsequence(final Agent ag, final Unifier un) {
- final Iterator<Literal> il = ag.getBB().getRelevant(this);
+ final Iterator<Literal> il = ag.getBB().getCandidateBeliefs(this, un);
if (il == null) // no relevant bels
return LogExpr.EMPTY_UNIF_LIST.iterator();
Modified: trunk/src/jason/asSyntax/PlanLibrary.java
===================================================================
--- trunk/src/jason/asSyntax/PlanLibrary.java 2008-03-30 20:41:40 UTC (rev 1181)
+++ trunk/src/jason/asSyntax/PlanLibrary.java 2008-03-31 19:25:02 UTC (rev 1182)
@@ -233,12 +233,23 @@
return p;
}
+ /** @deprecated use hasCandidatePlan(te) instead */
public boolean isRelevant(Trigger te) {
- List<Plan> l = getAllRelevant(te);
+ return hasCandidatePlan(te);
+ }
+
+ public boolean hasCandidatePlan(Trigger te) {
+ List<Plan> l = getCandidatePlans(te);
return l != null && ! l.isEmpty();
}
+
+ /** @deprecated use getCandidatePlans(te) instead */
public List<Plan> getAllRelevant(Trigger te) {
+ return getCandidatePlans(te);
+ }
+
+ public List<Plan> getCandidatePlans(Trigger te) {
List<Plan> l = relPlans.get(te.getPredicateIndicator());
if ((l == null || l.isEmpty()) && !varPlans.isEmpty()) { // no rel plan, try varPlan
l = new ArrayList<Plan>();
Modified: trunk/src/jason/bb/BeliefBase.java
===================================================================
--- trunk/src/jason/bb/BeliefBase.java 2008-03-30 20:41:40 UTC (rev 1181)
+++ trunk/src/jason/bb/BeliefBase.java 2008-03-31 19:25:02 UTC (rev 1182)
@@ -24,10 +24,11 @@
package jason.bb;
import jason.asSemantics.Agent;
+import jason.asSemantics.Unifier;
+import jason.asSyntax.DefaultTerm;
import jason.asSyntax.Literal;
import jason.asSyntax.PredicateIndicator;
import jason.asSyntax.Term;
-import jason.asSyntax.DefaultTerm;
import java.util.Iterator;
@@ -76,12 +77,18 @@
/**
* Returns an iterator for all literals relevant for l's predicate
* indicator, if l is a var, returns all beliefs.<br>
+ *
+ * The unifier <i>u</i> may contain values for variables in <i>l</i>.
*
* Example, if BB={a(10),a(20),a(2,1),b(f)}, then
- * <code>getRelevant(a(5))</code> = {{a(10),a(20)}.<br>
- * if BB={a(10),a(20)}, then <code>getRelevant(X)</code> =
- * {{a(10),a(20)}.
+ * <code>getCandidateBeliefs(a(5), {})</code> = {{a(10),a(20)}.<br>
+ * if BB={a(10),a(20)}, then <code>getCandidateBeliefs(X)</code> =
+ * {{a(10),a(20)}. The <code>getCandidateBeliefs(a(X), {X -> 5})</code>
+ * should also return {{a(10),a(20)}.<br>
*/
+ public Iterator<Literal> getCandidateBeliefs(Literal l, Unifier u);
+
+ /** @deprecated use getCandidateBeliefs(l,null) instead */
public Iterator<Literal> getRelevant(Literal l);
/**
Modified: trunk/src/jason/bb/DefaultBeliefBase.java
===================================================================
--- trunk/src/jason/bb/DefaultBeliefBase.java 2008-03-30 20:41:40 UTC (rev 1181)
+++ trunk/src/jason/bb/DefaultBeliefBase.java 2008-03-31 19:25:02 UTC (rev 1182)
@@ -24,6 +24,7 @@
package jason.bb;
import jason.asSemantics.Agent;
+import jason.asSemantics.Unifier;
import jason.asSyntax.Literal;
import jason.asSyntax.PredicateIndicator;
@@ -222,7 +223,7 @@
}
}
- public Iterator<Literal> getRelevant(Literal l) {
+ public Iterator<Literal> getCandidateBeliefs(Literal l, Unifier u) {
if (l.isVar()) {
// all bels are relevant
return iterator();
@@ -235,6 +236,11 @@
}
}
}
+
+ /** @deprecated use getCandidateBeliefs(l,null) instead */
+ public Iterator<Literal> getRelevant(Literal l) {
+ return getCandidateBeliefs(l, null);
+ }
public String toString() {
return belsMap.toString();
Modified: trunk/src/jason/bb/JDBCPersistentBB.java
===================================================================
--- trunk/src/jason/bb/JDBCPersistentBB.java 2008-03-30 20:41:40 UTC (rev 1181)
+++ trunk/src/jason/bb/JDBCPersistentBB.java 2008-03-31 19:25:02 UTC (rev 1182)
@@ -1,6 +1,7 @@
package jason.bb;
import jason.asSemantics.Agent;
+import jason.asSemantics.Unifier;
import jason.asSyntax.DefaultTerm;
import jason.asSyntax.ListTerm;
import jason.asSyntax.ListTermImpl;
@@ -318,10 +319,10 @@
@Override
- public Iterator<Literal> getRelevant(Literal l) {
+ public Iterator<Literal> getCandidateBeliefs(Literal l, Unifier u) {
final PredicateIndicator pi = l.getPredicateIndicator();
if (belsDB.get(pi) == null)
- return super.getRelevant(l);
+ return super.getCandidateBeliefs(l, u);
if (l.isVar()) {
// all bels are relevant
Modified: trunk/src/test/BeliefBaseTest.java
===================================================================
--- trunk/src/test/BeliefBaseTest.java 2008-03-30 20:41:40 UTC (rev 1181)
+++ trunk/src/test/BeliefBaseTest.java 2008-03-31 19:25:02 UTC (rev 1182)
@@ -119,7 +119,7 @@
l5 = new Literal(true, new Pred("garb"));
l5.addTerm(new Structure("r1"));
assertTrue(bb.remove(l5));
- assertEquals(bb.getRelevant(l5), null);
+ assertEquals(bb.getCandidateBeliefs(l5, null), null);
assertEquals(bb.size(), 3);
l4 = new Literal(true, new Pred("pos"));
@@ -127,7 +127,7 @@
l4.addTerm(new Structure("6"));
l4.addAnnot(BeliefBase.TPercept);
assertTrue(bb.remove(l4));
- assertEquals(iteratorSize(bb.getRelevant(l4)), 1);
+ assertEquals(iteratorSize(bb.getCandidateBeliefs(l4, null)), 1);
assertEquals(bb.size(), 2);
assertEquals(iteratorSize(bb.iterator()), 2);
@@ -141,7 +141,7 @@
l4.addTerm(new Structure("2"));
l4.addAnnot(BeliefBase.TPercept);
assertTrue(bb.remove(l4));
- assertEquals(bb.getRelevant(l4), null);
+ assertEquals(bb.getCandidateBeliefs(l4, null), null);
assertEquals(bb.size(), 1);
assertEquals(iteratorSize(bb.getPercepts()), 1);
@@ -513,7 +513,7 @@
//while (ir.hasNext()) {
// System.out.println(ir.next());
//}
- assertEquals(iteratorSize(bb.getRelevant(Literal.parseLiteral("book_author(_,_)"))),5);
+ assertEquals(iteratorSize(bb.getCandidateBeliefs(Literal.parseLiteral("book_author(_,_)"),null)),5);
bb.stop();
}
Modified: trunk/src/test/PlanTest.java
===================================================================
--- trunk/src/test/PlanTest.java 2008-03-30 20:41:40 UTC (rev 1181)
+++ trunk/src/test/PlanTest.java 2008-03-31 19:25:02 UTC (rev 1182)
@@ -42,16 +42,16 @@
pl.add(Plan.parse("+!X <- .print(a)."));
- List<Plan> pls = pl.getAllRelevant(Trigger.parseTrigger("+p(3)"));
+ List<Plan> pls = pl.getCandidatePlans(Trigger.parseTrigger("+p(3)"));
assertEquals(2, pls.size());
- pls = pl.getAllRelevant(Trigger.parseTrigger("+!p(3)"));
+ pls = pl.getCandidatePlans(Trigger.parseTrigger("+!p(3)"));
assertEquals(3, pls.size());
- pls = pl.getAllRelevant(Trigger.parseTrigger("+!bla"));
+ pls = pl.getCandidatePlans(Trigger.parseTrigger("+!bla"));
assertEquals(1, pls.size());
- pls = pl.getAllRelevant(Trigger.parseTrigger("+bla"));
+ pls = pl.getCandidatePlans(Trigger.parseTrigger("+bla"));
assertEquals(0, pls.size());
}
Modified: trunk/src/test/RuleTest.java
===================================================================
--- trunk/src/test/RuleTest.java 2008-03-30 20:41:40 UTC (rev 1181)
+++ trunk/src/test/RuleTest.java 2008-03-31 19:25:02 UTC (rev 1182)
@@ -119,7 +119,7 @@
assertEquals(u.get("M").toString(),"20");
Literal cons = Literal.parseLiteral("min([op(5),op(3),op(8),op(1),op(40)],op(1000),op(M))");
- Iterator<Literal> il = ag.getBB().getRelevant(cons);
+ Iterator<Literal> il = ag.getBB().getCandidateBeliefs(cons, null);
assertEquals(3,iteratorSize(il));
iun = cons.logicalConsequence(ag, new Unifier());
Modified: trunk/src/test/VarTermTest.java
===================================================================
--- trunk/src/test/VarTermTest.java 2008-03-30 20:41:40 UTC (rev 1181)
+++ trunk/src/test/VarTermTest.java 2008-03-31 19:25:02 UTC (rev 1182)
@@ -336,7 +336,7 @@
Unifier u = new Unifier();
VarTerm v1 = VarTerm.parseVar("P[d]");
- assertEquals(2, iteratorSize(ag.getBB().getRelevant(v1)));
+ assertEquals(2, iteratorSize(ag.getBB().getCandidateBeliefs(v1, null)));
Iterator<Unifier> i = v1.logicalConsequence(ag, u);
assertTrue(i.hasNext());
u = i.next(); // u = {P[d]=b2}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|