[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