[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