[jboss-svn-commits] JBL Code SVN: r25405 - in labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools: common and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Feb 24 09:42:53 EST 2009
Author: dsotty
Date: 2009-02-24 09:42:53 -0500 (Tue, 24 Feb 2009)
New Revision: 25405
Modified:
labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/base/DefaultKnowledgeHelper.java
labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/base/SequentialKnowledgeHelper.java
labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java
labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/reteoo/ExistsNode.java
labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/reteoo/ObjectTypeNode.java
labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/reteoo/RightTuple.java
labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/reteoo/RuleTerminalNode.java
labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/reteoo/UncertainRightTuple.java
labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/spi/KnowledgeHelper.java
Log:
updates
Modified: labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/base/DefaultKnowledgeHelper.java
===================================================================
--- labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/base/DefaultKnowledgeHelper.java 2009-02-24 13:21:50 UTC (rev 25404)
+++ labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/base/DefaultKnowledgeHelper.java 2009-02-24 14:42:53 UTC (rev 25405)
@@ -256,6 +256,16 @@
}
+ public void insert(Object object,
+ ConstraintSignature sig, IUncertainDegree deg)
+ throws FactException {
+ Hashtable<ConstraintSignature, IUncertainDegree> priors = new Hashtable<ConstraintSignature, IUncertainDegree>();
+ priors.put(sig, deg);
+ this.insert(object, priors);
+
+ }
+
+
/* (non-Javadoc)
* @see org.drools.spi.KnowledgeHelper#insertLogical(java.lang.Object, java.util.Hashtable)
*/
Modified: labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/base/SequentialKnowledgeHelper.java
===================================================================
--- labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/base/SequentialKnowledgeHelper.java 2009-02-24 13:21:50 UTC (rev 25404)
+++ labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/base/SequentialKnowledgeHelper.java 2009-02-24 14:42:53 UTC (rev 25405)
@@ -225,6 +225,13 @@
// TODO Auto-generated method stub
}
+
+
+ public void insert(Object object, ConstraintSignature constrSig,
+ IUncertainDegree deg) throws FactException {
+ // TODO Auto-generated method stub
+
+ }
}
Modified: labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java
===================================================================
--- labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java 2009-02-24 13:21:50 UTC (rev 25404)
+++ labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java 2009-02-24 14:42:53 UTC (rev 25405)
@@ -988,7 +988,7 @@
*/
public FactHandle insert(final Object object, Hashtable<ConstraintSignature, IUncertainDegree> priors) throws FactException {
- if (priors == null);
+ if (priors == null)
priors = new Hashtable<ConstraintSignature, IUncertainDegree>();
return insert( EntryPoint.DEFAULT,
object,
@@ -1135,6 +1135,8 @@
try {
this.lock.lock();
// check for IDENTITY
+
+
handle = (InternalFactHandle) this.objectStore.getHandleForObject(object);
Modified: labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/reteoo/ExistsNode.java
===================================================================
--- labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/reteoo/ExistsNode.java 2009-02-24 13:21:50 UTC (rev 25404)
+++ labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/reteoo/ExistsNode.java 2009-02-24 14:42:53 UTC (rev 25405)
@@ -16,24 +16,32 @@
package org.drools.reteoo;
+import java.util.Collection;
import java.util.Deque;
+import java.util.HashSet;
import java.util.LinkedList;
+import java.util.Set;
import java.util.Vector;
import org.drools.IUncertainRuleBase;
import org.drools.RuntimeDroolsException;
import org.drools.WorkingMemory;
import org.drools.common.BetaConstraints;
+import org.drools.common.EmptyBetaConstraints;
import org.drools.common.InternalFactHandle;
import org.drools.common.InternalWorkingMemory;
+import org.drools.common.UncertainFactHandle;
import org.drools.reteoo.builder.BuildContext;
import org.drools.rule.Behavior;
+import org.drools.spi.FactHandleFactory;
import org.drools.spi.PropagationContext;
import org.drools.spi.Tuple;
+import org.drools.util.RightTupleList;
import uncertainty.factory.IDegreeFactory;
import uncertainty.predicates.IInducible;
import uncertainty.predicates.IInductor;
+import uncertainty.truthvals.Essence;
import uncertainty.truthvals.IUncertainDegree;
/**
@@ -203,7 +211,7 @@
if (degrees.size() > 0) {
existDegree = factory.getMaxOrOperator().eval(degrees.toArray(degsArray));
- //found = existDegree.toBoolean();
+ //found = existDegree.toBoolean();
found = true;
} else {
existDegree = factory.False();
@@ -224,10 +232,11 @@
IUncertainDegree mDeg = this.constraints.matchesCachedLeft(memory.getContext(), rightTuple.getFactHandle(), factory);
//if (! mDeg.toBoolean()) continue;
-// ((UncertainRightTuple) rightTuple).setDegree(mDeg);
+ if (! (this.constraints instanceof EmptyBetaConstraints))
+ ((UncertainRightTuple) rightTuple).setDegree(mDeg);
//JOIN constraints are empty here... ??
-
+
Deque<IUncertainDegree> tVal = ((UncertainRightTuple) rightTuple).getTruthVal();
@@ -249,7 +258,10 @@
degrees.add(constraint);
degrees.add(weight);
// }
-// ((UncertainRightTuple) rightTuple).resetDegree();
+
+ if (! (this.constraints instanceof EmptyBetaConstraints))
+ ((UncertainRightTuple) rightTuple).resetDegree();
+
//TODO : This is a trick , heresy
@@ -260,6 +272,7 @@
existDegree = factory.getInductionOperator().eval(degrees.toArray(degsArray));
+
found = true;
} else {
found = false;
@@ -291,7 +304,9 @@
// tuple is not blocked to propagate
RightTuple exisTuple = new UncertainRightTuple(leftTuple.getBlocker().getFactHandle(),
- existDegree,this);
+ existDegree,
+ this);
+
this.sink.propagateAssertLeftTuple( leftTuple,
exisTuple,
context,
@@ -321,7 +336,7 @@
tVal,
this );
-
+
final BetaMemory memory = (BetaMemory) workingMemory.getNodeMemory( this );
if ( !behavior.assertRightTuple( memory.getBehaviorContext(),
@@ -347,8 +362,6 @@
-
-
for ( LeftTuple leftTuple = memory.getLeftTupleMemory().getFirst( rightTuple ); leftTuple != null; ) {
// preserve next now, in case we remove this leftTuple
LeftTuple temp = (LeftTuple) leftTuple.getNext();
@@ -369,6 +382,7 @@
((UncertainRightTuple) right).resetDegree();
+
}
IUncertainDegree[] degsArray = new IUncertainDegree[degrees.size()];
IUncertainDegree existDegree = factory.getMaxOrOperator().eval(degrees.toArray(degsArray));
@@ -397,7 +411,14 @@
- RightTuple exisTuple = new UncertainRightTuple(rightTuple.getFactHandle(),existDegree,this);
+ //RightTuple exisTuple = new UncertainRightTuple(rightTuple.getFactHandle(),existDegree,this);
+ //TODO: Create a FactSet Handle???
+
+ RightTuple exisTuple = new UncertainRightTuple(rightTuple.getFactHandle(),existDegree,this);
+ //memory.getRightTupleMemory().add( exisTuple );
+
+
+
this.sink.propagateAssertLeftTuple( leftTuple,
exisTuple,
context,
@@ -429,7 +450,6 @@
* matches any left ReteTuple's that had no matches before, propagate
* tuple as an assertion.
*
- * TODO: Consider the uncertain assertion
*
*
* @param factHandle
@@ -583,7 +603,10 @@
behavior.retractRightTuple( memory.getBehaviorContext(),
rightTuple,
workingMemory );
- memory.getRightTupleMemory().remove( rightTuple );
+
+ if (memory.getRightTupleMemory().contains(rightTuple))
+ memory.getRightTupleMemory().remove( rightTuple );
+
if ( rightTuple.getBlocked() == null ) {
return;
Modified: labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/reteoo/ObjectTypeNode.java
===================================================================
--- labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/reteoo/ObjectTypeNode.java 2009-02-24 13:21:50 UTC (rev 25404)
+++ labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/reteoo/ObjectTypeNode.java 2009-02-24 14:42:53 UTC (rev 25405)
@@ -319,6 +319,8 @@
}
for ( RightTuple rightTuple = factHandle.getRightTuple(); rightTuple != null; rightTuple = (RightTuple) rightTuple.getHandleNext() ) {
+
+
rightTuple.getRightTupleSink().retractRightTuple( rightTuple,
context,
workingMemory );
Modified: labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/reteoo/RightTuple.java
===================================================================
--- labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/reteoo/RightTuple.java 2009-02-24 13:21:50 UTC (rev 25404)
+++ labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/reteoo/RightTuple.java 2009-02-24 14:42:53 UTC (rev 25405)
@@ -11,10 +11,10 @@
public class RightTuple
implements
Entry {
- private InternalFactHandle handle;
+ protected InternalFactHandle handle;
- private RightTuple handlePrevious;
- private RightTuple handleNext;
+ protected RightTuple handlePrevious;
+ protected RightTuple handleNext;
private RightTupleList memory;
@@ -25,14 +25,18 @@
private LeftTuple blocked;
- private RightTupleSink sink;
+ protected RightTupleSink sink;
- private int hashCode;
+ protected int hashCode;
+
+
public RightTuple() {
}
+
+
public RightTuple(InternalFactHandle handle,
RightTupleSink sink) {
this.handle = handle;
Modified: labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/reteoo/RuleTerminalNode.java
===================================================================
--- labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/reteoo/RuleTerminalNode.java 2009-02-24 13:21:50 UTC (rev 25404)
+++ labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/reteoo/RuleTerminalNode.java 2009-02-24 14:42:53 UTC (rev 25405)
@@ -592,8 +592,21 @@
if (rule.getSalience().getValue(leftTuple, null) == 111)
return factory.getEquivOperator().eval(argsV.toArray(args));
- if (rule.getSalience().getValue(leftTuple, null) == 103)
- return factory.getOrOperator().eval(argsV.toArray(args));
+ if (rule.getSalience().getValue(leftTuple, null) == 103) {
+ IUncertainDegree ans = factory.getOrOperator().eval(argsV.toArray(args));
+ return ans;
+ }
+
+
+ if (rule.getSalience().getValue(leftTuple, null) == 314) {
+ IUncertainDegree ans = factory.getMinAndOperator().eval(argsV.toArray(args));
+ return ans;
+ }
+
+ if (rule.getSalience().getValue(leftTuple, null) == 904345) {
+ IUncertainDegree ans = factory.getModusPonensOp().eval(argsV.toArray(args));
+ return ans;
+ }
return factory.getAndOperator().eval(argsV.toArray(args));
Modified: labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/reteoo/UncertainRightTuple.java
===================================================================
--- labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/reteoo/UncertainRightTuple.java 2009-02-24 13:21:50 UTC (rev 25404)
+++ labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/reteoo/UncertainRightTuple.java 2009-02-24 14:42:53 UTC (rev 25405)
@@ -6,6 +6,7 @@
import java.util.Deque;
import java.util.LinkedList;
+import org.drools.FactHandle;
import org.drools.common.InternalFactHandle;
import uncertainty.truthvals.IUncertainDegree;
@@ -20,8 +21,9 @@
public Deque<IUncertainDegree> getTruthVal() { return tVal; }
-
-
+
+ public UncertainRightTuple() { }
+
public UncertainRightTuple(InternalFactHandle handle,
Deque<IUncertainDegree> truthVal,
RightTupleSink sink) {
@@ -32,6 +34,7 @@
// System.out.println("UncertainRightTuple : U.Right Tuple has been created");
// System.out.println(this);
}
+
public UncertainRightTuple(InternalFactHandle handle,
IUncertainDegree truthVal,
@@ -55,6 +58,7 @@
tVal.removeLast();
}
+ @Override
public String toString() {
StringBuilder sb = new StringBuilder("Uncertain Right Tuple : ");
for (IUncertainDegree deg : tVal) {
Modified: labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/spi/KnowledgeHelper.java
===================================================================
--- labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/spi/KnowledgeHelper.java 2009-02-24 13:21:50 UTC (rev 25404)
+++ labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/spi/KnowledgeHelper.java 2009-02-24 14:42:53 UTC (rev 25405)
@@ -91,6 +91,9 @@
public void insert(Object object,
Hashtable<ConstraintSignature, IUncertainDegree> priors) throws FactException;
+ public void insert(Object object,
+ ConstraintSignature constrSig, IUncertainDegree deg) throws FactException;
+
void update(FactHandle handle,
Object newObject) throws FactException;
More information about the jboss-svn-commits
mailing list