[jboss-svn-commits] JBL Code SVN: r22370 - in labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools: base and 4 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Sep 3 21:59:18 EDT 2008
Author: dsotty
Date: 2008-09-03 21:59:18 -0400 (Wed, 03 Sep 2008)
New Revision: 22370
Modified:
labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/WorkingMemoryEntryPoint.java
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/common/NamedEntryPoint.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/ReteooWorkingMemory.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/rule/VariableConstraint.java
labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/spi/KnowledgeHelper.java
Log:
New branch for uncertainty support in 5.x
Modified: labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/WorkingMemoryEntryPoint.java
===================================================================
--- labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/WorkingMemoryEntryPoint.java 2008-09-04 01:59:02 UTC (rev 22369)
+++ labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/WorkingMemoryEntryPoint.java 2008-09-04 01:59:18 UTC (rev 22370)
@@ -50,6 +50,10 @@
FactHandle insert(Object object, Hashtable<ConstraintSignature,IUncertainDegree> priors) throws FactException;
+ FactHandle insertLogical(Object object, Hashtable<ConstraintSignature,IUncertainDegree> priors) throws FactException;
+
+ FactHandle insertLogical(Object object, ConstraintSignature constrSig, IUncertainDegree deg);
+
/**
* Insert a fact registering JavaBean <code>PropertyChangeListeners</code>
* on the Object to automatically trigger <code>update</code> calls
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 2008-09-04 01:59:02 UTC (rev 22369)
+++ labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/base/DefaultKnowledgeHelper.java 2008-09-04 01:59:18 UTC (rev 22370)
@@ -18,8 +18,10 @@
import org.drools.FactException;
import org.drools.FactHandle;
+import org.drools.IUncertainRuleBase;
import org.drools.WorkingMemory;
import org.drools.common.InternalWorkingMemoryActions;
+import org.drools.common.UncertainFactHandle;
import org.drools.reteoo.UncertainAgendaItem;
import org.drools.rule.ConstraintSignature;
import org.drools.rule.Declaration;
@@ -252,6 +254,8 @@
this.workingMemory.insert(object, priors);
}
+
+
/* (non-Javadoc)
* @see org.drools.spi.KnowledgeHelper#insertLogical(java.lang.Object, java.util.Hashtable)
*/
@@ -261,6 +265,33 @@
this.workingMemory.insertLogical(object, priors, this.rule, this.activation);
}
+
+
+ public void insertLogical(Object object,
+ ConstraintSignature sig, IUncertainDegree deg)
+ throws FactException {
+ Hashtable<ConstraintSignature, IUncertainDegree> priors = new Hashtable<ConstraintSignature, IUncertainDegree>();
+ priors.put(sig, deg);
+ this.insertLogical(object, priors);
+
+ }
+
+
+ @Override
+ public IUncertainDegree getInfo(Object o, ConstraintSignature constrSig) {
+ Tuple tuple = this.tuple;
+
+ FactHandle[] handles = tuple.getFactHandles();
+ for (int j = handles.length-1; j >= 0; j--) {
+ UncertainFactHandle uFact = (UncertainFactHandle) handles[j];
+ //System.out.println(uFact.getObject());
+ if (uFact.getObject().equals(o)) {
+ return uFact.getPriors().get(constrSig);
+ }
+ }
+
+ return ((IUncertainRuleBase) workingMemory).getTruthFactory().Unknown();
+ }
}
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 2008-09-04 01:59:02 UTC (rev 22369)
+++ labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/base/SequentialKnowledgeHelper.java 2008-09-04 01:59:18 UTC (rev 22370)
@@ -212,6 +212,19 @@
}
+
+ @Override
+ public IUncertainDegree getInfo(Object o, ConstraintSignature constrSig) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void insertLogical(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 2008-09-04 01:59:02 UTC (rev 22369)
+++ labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java 2008-09-04 01:59:18 UTC (rev 22370)
@@ -1000,6 +1000,32 @@
priors);
}
+
+ public FactHandle insertLogical(final Object object, ConstraintSignature constrSig, IUncertainDegree deg) throws FactException {
+
+ Hashtable<ConstraintSignature, IUncertainDegree> priors = new Hashtable<ConstraintSignature, IUncertainDegree>();
+
+ return insertLogical( object, priors);
+ }
+
+
+
+
+
+ public FactHandle insertLogical(final Object object, Hashtable<ConstraintSignature, IUncertainDegree> priors) throws FactException {
+
+ if (priors == null);
+ priors = new Hashtable<ConstraintSignature, IUncertainDegree>();
+ return insert( EntryPoint.DEFAULT,
+ object,
+ 0,
+ false,
+ true,
+ null,
+ null,
+ priors);
+ }
+
/**
* Basic logical insertion
*
@@ -1020,6 +1046,8 @@
}
+
+
public FactHandle insertLogical(Object object,
long duration,
boolean dynamic, Rule rule, Activation activation,
@@ -1285,8 +1313,12 @@
boolean mergeWithExisting, boolean inhibitEvaluators) {
IUncertainInternalFactHandle uHandle = (IUncertainInternalFactHandle) handle;
- if (mergeWithExisting)
- uHandle.mergePriors(priors, ((IUncertainRuleBase) this.getRuleBase()).getTruthFactory());
+ if (mergeWithExisting) {
+ boolean infoChanged = uHandle.mergePriors(priors, ((IUncertainRuleBase) this.getRuleBase()).getTruthFactory());
+ if (! infoChanged)
+ return handle;
+ }
+
else
uHandle.setPriors(priors);
Modified: labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/common/NamedEntryPoint.java
===================================================================
--- labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/common/NamedEntryPoint.java 2008-09-04 01:59:02 UTC (rev 22369)
+++ labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/common/NamedEntryPoint.java 2008-09-04 01:59:18 UTC (rev 22370)
@@ -97,7 +97,29 @@
null,
null );
}
+
+
+ public FactHandle insertLogical(final Object object, Hashtable<ConstraintSignature, IUncertainDegree> priors) throws FactException {
+ return insert( object, /* Not-Dynamic */
+ priors,
+ false,
+ true,
+ null,
+ null );
+ }
+
+
+
+ public FactHandle insertLogical(final Object object, ConstraintSignature constrSig, IUncertainDegree deg) throws FactException {
+ Hashtable<ConstraintSignature, IUncertainDegree> priors = new Hashtable<ConstraintSignature, IUncertainDegree>();
+ priors.put(constrSig, deg);
+ return insertLogical( object, priors );
+ }
+
+
+
+
public FactHandle insert(final Object object,
final boolean dynamic) throws FactException {
return insert( 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 2008-09-04 01:59:02 UTC (rev 22369)
+++ labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/reteoo/ExistsNode.java 2008-09-04 01:59:18 UTC (rev 22370)
@@ -224,7 +224,7 @@
IUncertainDegree mDeg = this.constraints.matchesCachedLeft(memory.getContext(), rightTuple.getFactHandle(), factory);
//if (! mDeg.toBoolean()) continue;
- //((UncertainRightTuple) rightTuple).setDegree(mDeg);
+// ((UncertainRightTuple) rightTuple).setDegree(mDeg);
//JOIN constraints are empty here... ??
@@ -234,7 +234,10 @@
IUncertainDegree integrand = tVal.getLast();
IUncertainDegree constraint = tVal.getFirst();
IUncertainDegree weight = ((IInducible) rightTuple.getFactHandle().getObject()).getWeight();
-
+ if (weight == null)
+ weight = constraint;
+
+
//tVal should have two vals. The last is the integrand, the first the weight. ??
//IUncertainDegree inductVal = factory.getEquivModusPonensOp().eval(new IUncertainDegree[] {integrand, weight});
@@ -246,7 +249,7 @@
degrees.add(constraint);
degrees.add(weight);
// }
- //((UncertainRightTuple) rightTuple).resetDegree();
+// ((UncertainRightTuple) rightTuple).resetDegree();
//TODO : This is a trick , heresy
Modified: labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/reteoo/ReteooWorkingMemory.java
===================================================================
--- labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/reteoo/ReteooWorkingMemory.java 2008-09-04 01:59:02 UTC (rev 22369)
+++ labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/reteoo/ReteooWorkingMemory.java 2008-09-04 01:59:18 UTC (rev 22370)
@@ -23,6 +23,7 @@
import java.util.HashMap;
import java.util.List;
+import org.drools.FactHandle;
import org.drools.QueryResults;
import org.drools.SessionConfiguration;
import org.drools.base.DroolsQuery;
@@ -35,6 +36,7 @@
import org.drools.common.WorkingMemoryAction;
import org.drools.marshalling.MarshallerReaderContext;
import org.drools.marshalling.MarshallerWriteContext;
+import org.drools.rule.ConstraintSignature;
import org.drools.rule.EntryPoint;
import org.drools.rule.Package;
import org.drools.rule.Query;
@@ -42,6 +44,8 @@
import org.drools.spi.FactHandleFactory;
import org.drools.spi.PropagationContext;
+import uncertainty.truthvals.IUncertainDegree;
+
/**
* Implementation of <code>WorkingMemory</code>.
*
@@ -277,4 +281,6 @@
}
}
+
+
}
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 2008-09-04 01:59:02 UTC (rev 22369)
+++ labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/reteoo/RuleTerminalNode.java 2008-09-04 01:59:18 UTC (rev 22370)
@@ -591,6 +591,9 @@
//TODO : REmove this!!
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));
return factory.getAndOperator().eval(argsV.toArray(args));
Modified: labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/rule/VariableConstraint.java
===================================================================
--- labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/rule/VariableConstraint.java 2008-09-04 01:59:02 UTC (rev 22369)
+++ labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/rule/VariableConstraint.java 2008-09-04 01:59:18 UTC (rev 22370)
@@ -106,7 +106,7 @@
InternalWorkingMemory workingMemory, ContextEntry context) {
- System.out.println("VariableConstraint :: Trying to evaluate an Alpha-Constraint over Object ..."+handle.getObject().toString());
+// System.out.println("VariableConstraint :: Trying to evaluate an Alpha-Constraint over Object ..."+handle.getObject().toString());
UncertainFactHandle uHandle = (UncertainFactHandle) handle;
Hashtable<ConstraintSignature, IUncertainDegree> priors = uHandle.getPriors();
@@ -223,7 +223,7 @@
((ClassFieldReader) ((VariableRestriction) this.restriction).getRequiredDeclarations()[0].getExtractor()).getFieldName()
);
- System.out.println("VariableConstraint : transformed to signature "+cs);
+ //System.out.println("VariableConstraint : transformed to signature "+cs);
return cs;
}
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 2008-09-04 01:59:02 UTC (rev 22369)
+++ labs/jbossrules/branches/uncDrools5x/drools-core/src/main/java/org/drools/spi/KnowledgeHelper.java 2008-09-04 01:59:18 UTC (rev 22370)
@@ -85,6 +85,9 @@
public void insertLogical(Object object,
Hashtable<ConstraintSignature, IUncertainDegree> priors) throws FactException;
+ public void insertLogical(Object object,
+ ConstraintSignature constrSig, IUncertainDegree deg) throws FactException;
+
public void insert(Object object,
Hashtable<ConstraintSignature, IUncertainDegree> priors) throws FactException;
@@ -152,6 +155,14 @@
public void halt();
+
+
+
+
+
+
public IUncertainDegree getActivationDegree();
+
+ public IUncertainDegree getInfo(Object o, ConstraintSignature constrSig);
}
\ No newline at end of file
More information about the jboss-svn-commits
mailing list