[jboss-svn-commits] JBL Code SVN: r26142 - in labs/jbossrules/branches/DroolsChance: drools-examples/drools-examples-drl/src and 4 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun Apr 19 11:59:08 EDT 2009


Author: dsotty
Date: 2009-04-19 11:59:07 -0400 (Sun, 19 Apr 2009)
New Revision: 26142

Added:
   labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/fuzzyTest.packagebuilder.conf
   labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/chance/
   labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/chance/Fan.java
   labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/chance/FuzzyTest0.java
   labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/chance/FuzzyTest1.java
   labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/chance/Room.java
   labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/chance/SpeedDomain.java
   labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/chance/TemperatureDomain.java
   labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/chance/Test.java
   labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/chance/TestGEB.java
   labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/chance/
   labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/chance/FuzzyTest0.drl
   labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/chance/FuzzyTest1.drl
   labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/chance/HelloWorld.drl
   labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/chance/TestGEB.drl
   labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/test.packagebuilder.conf
Modified:
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/builder/ImperfectReteooRuleBuilder.java
Log:
moved examples into appropriate sub-project

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/builder/ImperfectReteooRuleBuilder.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/builder/ImperfectReteooRuleBuilder.java	2009-04-19 14:38:51 UTC (rev 26141)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/builder/ImperfectReteooRuleBuilder.java	2009-04-19 15:59:07 UTC (rev 26142)
@@ -50,7 +50,7 @@
         this.getUtils().addBuilder( Accumulate.class,
                                new AccumulateBuilder() );
         this.getUtils().addBuilder( Forall.class,
-                               new ForallBuilder() );
+                               new ImperfectForallBuilder() );
         this.getUtils().addBuilder( EntryPoint.class,
                                new EntryPointBuilder() );
     }

Added: labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/fuzzyTest.packagebuilder.conf
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/fuzzyTest.packagebuilder.conf	                        (rev 0)
+++ labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/fuzzyTest.packagebuilder.conf	2009-04-19 15:59:07 UTC (rev 26142)
@@ -0,0 +1,49 @@
+drools.dialect.default = java
+drools.dialect.java = org.drools.rule.builder.dialect.java.JavaDialectConfiguration
+drools.dialect.java.compiler = ECLIPSE
+
+drools.dialect.mvel = org.drools.rule.builder.dialect.mvel.MVELDialectConfiguration
+drools.dialect.mvel.strict = true
+drools.dialect.mvel.langLevel = 4
+
+drools.accumulate.function.average = org.drools.base.accumulators.AverageAccumulateFunction
+drools.accumulate.function.max = org.drools.base.accumulators.MaxAccumulateFunction
+drools.accumulate.function.min = org.drools.base.accumulators.MinAccumulateFunction
+drools.accumulate.function.count = org.drools.base.accumulators.CountAccumulateFunction
+drools.accumulate.function.sum = org.drools.base.accumulators.SumAccumulateFunction
+
+drools.evaluator.coincides = org.drools.base.evaluators.CoincidesEvaluatorDefinition
+drools.evaluator.before = org.drools.base.evaluators.BeforeEvaluatorDefinition
+drools.evaluator.after = org.drools.base.evaluators.AfterEvaluatorDefinition
+drools.evaluator.meets = org.drools.base.evaluators.MeetsEvaluatorDefinition
+drools.evaluator.metby = org.drools.base.evaluators.MetByEvaluatorDefinition
+drools.evaluator.overlaps = org.drools.base.evaluators.OverlapsEvaluatorDefinition
+drools.evaluator.overlappedby = org.drools.base.evaluators.OverlappedByEvaluatorDefinition
+drools.evaluator.during = org.drools.base.evaluators.DuringEvaluatorDefinition
+drools.evaluator.includes = org.drools.base.evaluators.IncludesEvaluatorDefinition
+drools.evaluator.starts = org.drools.base.evaluators.StartsEvaluatorDefinition
+drools.evaluator.startedby = org.drools.base.evaluators.StartedByEvaluatorDefinition
+drools.evaluator.finishes = org.drools.base.evaluators.FinishesEvaluatorDefinition
+drools.evaluator.finishedby = org.drools.base.evaluators.FinishedByEvaluatorDefinition
+drools.evaluator.equality = org.drools.base.evaluators.EqualityEvaluatorsDefinition
+drools.evaluator.comparable = org.drools.base.evaluators.ComparableEvaluatorsDefinition
+drools.evaluator.set = org.drools.base.evaluators.SetEvaluatorsDefinition
+drools.evaluator.matches = org.drools.base.evaluators.MatchesEvaluatorsDefinition
+drools.evaluator.soundslike = org.drools.base.evaluators.SoundslikeEvaluatorsDefinition
+
+
+drools.imperfect.factory = org.drools.degrees.factory.SimpleFuzzyDegreeFactory
+
+
+drools.evaluator.seems = org.drools.fuzzy.evaluators.SeemsEvaluatorDefinition
+
+drools.evaluator.hot = org.drools.examples.chance.TemperatureDomain
+drools.evaluator.warm = org.drools.examples.chance.TemperatureDomain
+drools.evaluator.cool = org.drools.examples.chance.TemperatureDomain
+drools.evaluator.cold = org.drools.examples.chance.TemperatureDomain
+
+drools.evaluator.fast = org.drools.examples.chance.SpeedDomain
+drools.evaluator.slow = org.drools.examples.chance.SpeedDomain
+drools.evaluator.stop = org.drools.examples.chance.SpeedDomain
+
+

Added: labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/chance/Fan.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/chance/Fan.java	                        (rev 0)
+++ labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/chance/Fan.java	2009-04-19 15:59:07 UTC (rev 26142)
@@ -0,0 +1,65 @@
+package org.drools.examples.chance;
+
+import org.drools.degrees.IDegree;
+import org.drools.fuzzy.evaluators.IDynamicEvaluable;
+import org.drools.spi.Evaluator;
+
+
+public class Fan implements IDynamicEvaluable {
+	
+	private SpeedDomain speed = new SpeedDomain();
+	
+	private float price = 100.0f;
+	
+	public float getPrice() {
+		return price;
+	}
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	public boolean equals(Object other) {
+		return (other != null && other instanceof Fan);
+	}
+		
+	public int hashCode() {
+		return 37;
+	}
+	
+	
+	public Fan() {
+		
+	}
+
+	/**
+	 * @param speed the speed to set
+	 */
+	public void setSpeed(Double speed) {
+		this.speed.setValue(speed);
+	}
+	
+	public void setSpeed(String set, IDegree deg) {
+		this.speed.setValue(set,deg);
+	}
+	
+	
+	/**
+	 * @return the speed
+	 */
+	public Double getSpeed() {
+		return speed.getValue();
+	}
+
+	
+	public Evaluator getPred(String opId) {
+		return speed.getEvaluator(opId);
+	}
+	
+	
+}
\ No newline at end of file

Added: labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/chance/FuzzyTest0.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/chance/FuzzyTest0.java	                        (rev 0)
+++ labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/chance/FuzzyTest0.java	2009-04-19 15:59:07 UTC (rev 26142)
@@ -0,0 +1,188 @@
+package org.drools.examples.chance;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileWriter;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
+import org.drools.FactHandle;
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseConfiguration;
+import org.drools.KnowledgeBaseFactory;
+import org.drools.RuleBaseConfiguration;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderConfiguration;
+import org.drools.builder.KnowledgeBuilderFactory;
+import org.drools.builder.ResourceConfiguration;
+import org.drools.builder.ResourceType;
+import org.drools.compiler.PackageBuilderConfiguration;
+import org.drools.definition.KnowledgePackage;
+import org.drools.event.rule.DebugAgendaEventListener;
+import org.drools.event.rule.DebugWorkingMemoryEventListener;
+import org.drools.io.ResourceFactory;
+import org.drools.logger.KnowledgeRuntimeLogger;
+import org.drools.logger.KnowledgeRuntimeLoggerFactory;
+import org.drools.runtime.StatefulKnowledgeSession;
+
+
+public class FuzzyTest0 {
+
+	
+	public static final void main(final String[] args) throws Exception {
+		
+		
+		Properties props = new Properties();
+		props.load(new FileInputStream("src/fuzzyTest.packagebuilder.conf"));
+			KnowledgeBuilderConfiguration conf = new PackageBuilderConfiguration(props);
+				conf.setProperty("drools.assertBehaviour","equality");
+				
+		
+		
+		final KnowledgeBuilder kbuilder = KnowledgeBuilderFactory
+				.newKnowledgeBuilder(conf);
+
+		
+		
+
+		//EXAMPLE 1
+		kbuilder.add(ResourceFactory.newClassPathResource("FuzzyTest0.drl",
+				FuzzyTest0.class), ResourceType.DRL );
+		
+	
+		// Check the builder for errors
+		if (kbuilder.hasErrors()) {
+			System.out.println(kbuilder.getErrors().toString());
+			throw new RuntimeException("Unable to compile \"Fyzzytest.drl\".");
+		}
+
+		// get the compiled packages (which are serializable)
+		final Collection<KnowledgePackage> pkgs = kbuilder
+				.getKnowledgePackages();
+
+		
+		
+		RuleBaseConfiguration rbconf = new RuleBaseConfiguration(props);
+				rbconf.setProperty("drools.assertBehaviour","equality");
+				//rbconf.setProperty("drools.imperfect.factory", "org.drools.degrees.factory.SimpleDegreeFactory");
+		
+		// add the packages to a knowledgebase (deploy the knowledge packages).
+		final KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(rbconf);
+		kbase.addKnowledgePackages(pkgs);
+
+		
+		
+		final StatefulKnowledgeSession ksession = kbase
+				.newStatefulKnowledgeSession();
+		
+		FileWriter writer = new FileWriter("fuzzyTest0.log");
+		ksession.setGlobal("writer", writer);
+		
+		Room r = new Room(27.5f);
+		
+		ksession.insert(r);				
+		ksession.fireAllRules();
+		
+		writer.close();
+
+//		ksession.addEventListener(new DebugAgendaEventListener());
+//		ksession.addEventListener(new DebugWorkingMemoryEventListener());
+
+		// setup the audit logging
+//	KnowledgeRuntimeLogger logger = KnowledgeRuntimeLoggerFactory
+//				.newFileLogger(ksession, "log/helloworld");
+
+//		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+	
+		
+		
+		
+		
+
+//		logger.close();
+
+		ksession.dispose();
+	}
+
+	public static class Message {
+		public static final int HELLO = 0;
+		public static final int GOODBYE = 1;
+		public static final int FUFF = 3;
+
+		public String message = "";
+
+		private int status;
+
+		public Message() {
+
+		}
+
+		public String getMessage() {
+			return this.message;
+		}
+
+		public void setMessage(final String message) {
+			this.message = message;
+		}
+
+		public int getStatus() {
+			return this.status;
+		}
+
+		public void setStatus(final int status) {
+			this.status = status;
+		} 
+
+		public static Message doSomething(Message message) {
+			return message;
+		}
+
+		public boolean isSomething(String msg, List<Object> list) {
+			list.add(this);
+			return this.message.equals(msg);
+		}
+		
+		public boolean equals(Object other) {
+			if (other == null) return false;
+			if (other instanceof Message) {
+				Message o = (Message) other;
+				return o.message.equals(this.message) && o.status == this.status;
+			}
+			return false;
+		
+		}
+		
+		public int hashCode() {
+			return this.message.hashCode()+this.status;
+		}
+	}
+
+	
+	
+	
+	
+	
+		
+		
+			
+			
+		
+
+	
+	
+}

Added: labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/chance/FuzzyTest1.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/chance/FuzzyTest1.java	                        (rev 0)
+++ labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/chance/FuzzyTest1.java	2009-04-19 15:59:07 UTC (rev 26142)
@@ -0,0 +1,188 @@
+package org.drools.examples.chance;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileWriter;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
+import org.drools.FactHandle;
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseConfiguration;
+import org.drools.KnowledgeBaseFactory;
+import org.drools.RuleBaseConfiguration;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderConfiguration;
+import org.drools.builder.KnowledgeBuilderFactory;
+import org.drools.builder.ResourceConfiguration;
+import org.drools.builder.ResourceType;
+import org.drools.compiler.PackageBuilderConfiguration;
+import org.drools.definition.KnowledgePackage;
+import org.drools.event.rule.DebugAgendaEventListener;
+import org.drools.event.rule.DebugWorkingMemoryEventListener;
+import org.drools.io.ResourceFactory;
+import org.drools.logger.KnowledgeRuntimeLogger;
+import org.drools.logger.KnowledgeRuntimeLoggerFactory;
+import org.drools.runtime.StatefulKnowledgeSession;
+
+
+public class FuzzyTest1 {
+
+	
+	public static final void main(final String[] args) throws Exception {
+		
+		
+		Properties props = new Properties();
+		props.load(new FileInputStream("src/fuzzyTest.packagebuilder.conf"));
+			KnowledgeBuilderConfiguration conf = new PackageBuilderConfiguration(props);
+				conf.setProperty("drools.assertBehaviour","equality");
+				
+		
+		
+		final KnowledgeBuilder kbuilder = KnowledgeBuilderFactory
+				.newKnowledgeBuilder(conf);
+
+		
+		
+
+		//EXAMPLE 1
+		kbuilder.add(ResourceFactory.newClassPathResource("FuzzyTest1.drl",
+				FuzzyTest1.class), ResourceType.DRL );
+		
+		//EXAMPLE 2
+//		kbuilder.add(ResourceFactory.newClassPathResource("FuzzyTest0.drl",
+//				FuzzyTest.class), ResourceType.DRL );
+
+		// Check the builder for errors
+		if (kbuilder.hasErrors()) {
+			System.out.println(kbuilder.getErrors().toString());
+			throw new RuntimeException("Unable to compile \"Fyzzytest.drl\".");
+		}
+
+		// get the compiled packages (which are serializable)
+		final Collection<KnowledgePackage> pkgs = kbuilder
+				.getKnowledgePackages();
+
+		
+		
+		RuleBaseConfiguration rbconf = new RuleBaseConfiguration(props);
+				rbconf.setProperty("drools.assertBehaviour","equality");
+		
+		// add the packages to a knowledgebase (deploy the knowledge packages).
+		final KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(rbconf);
+		kbase.addKnowledgePackages(pkgs);
+
+		
+		
+		final StatefulKnowledgeSession ksession = kbase
+				.newStatefulKnowledgeSession();
+		
+		FileWriter writer = new FileWriter("fuzzyTest1.log");
+		ksession.setGlobal("writer", writer);
+		
+		Room r = new Room(27.5f);
+		Fan f = new Fan();
+		
+		ksession.insert(f);
+		ksession.insert(r);				
+		ksession.fireAllRules();
+		
+
+//		
+//		
+		writer.write("\n\n\n\nULTIMATE ANSWER : FAN speed is "+f.getSpeed()+"\n\n");
+		
+		writer.close();
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+	
+		
+		
+		
+		
+
+//		logger.close();
+
+		ksession.dispose();
+	}
+
+	public static class Message {
+		public static final int HELLO = 0;
+		public static final int GOODBYE = 1;
+		public static final int FUFF = 3;
+
+		public String message = "";
+
+		private int status;
+
+		public Message() {
+
+		}
+
+		public String getMessage() {
+			return this.message;
+		}
+
+		public void setMessage(final String message) {
+			this.message = message;
+		}
+
+		public int getStatus() {
+			return this.status;
+		}
+
+		public void setStatus(final int status) {
+			this.status = status;
+		} 
+
+		public static Message doSomething(Message message) {
+			return message;
+		}
+
+		public boolean isSomething(String msg, List<Object> list) {
+			list.add(this);
+			return this.message.equals(msg);
+		}
+		
+		public boolean equals(Object other) {
+			if (other == null) return false;
+			if (other instanceof Message) {
+				Message o = (Message) other;
+				return o.message.equals(this.message) && o.status == this.status;
+			}
+			return false;
+		
+		}
+		
+		public int hashCode() {
+			return this.message.hashCode()+this.status;
+		}
+	}
+
+	
+	
+	
+	
+	
+		
+		
+			
+			
+		
+
+	
+	
+}

Added: labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/chance/Room.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/chance/Room.java	                        (rev 0)
+++ labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/chance/Room.java	2009-04-19 15:59:07 UTC (rev 26142)
@@ -0,0 +1,46 @@
+package org.drools.examples.chance;
+
+import org.drools.fuzzy.RealDomain;
+import org.drools.fuzzy.evaluators.IDynamicEvaluable;
+import org.drools.spi.Evaluator;
+
+
+public class Room implements IDynamicEvaluable{
+	
+		private TemperatureDomain temperature = new TemperatureDomain();
+
+		
+		
+		public Room(double temp) {
+			this.setTemperature(temp);
+		}
+		
+
+		/**
+		 * @param temperature the temperature to set
+		 */
+		public void setTemperature(Double temperature) {
+			this.temperature.setValue(temperature);
+		}
+
+		/**
+		 * @return the temperature
+		 */
+		public Double getTemperature() {
+			return temperature.getValue();
+		}
+		
+		
+		public Evaluator getHot() {
+			return temperature.getEvaluator(TemperatureDomain.HOT);
+		}
+
+
+		
+		public Evaluator getPred(String opId) {
+			return temperature.getEvaluator(opId);
+		}
+		
+
+
+}

Added: labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/chance/SpeedDomain.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/chance/SpeedDomain.java	                        (rev 0)
+++ labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/chance/SpeedDomain.java	2009-04-19 15:59:07 UTC (rev 26142)
@@ -0,0 +1,95 @@
+package org.drools.examples.chance;
+
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
+import org.drools.base.ValueType;
+import org.drools.base.evaluators.EvaluatorDefinition;
+import org.drools.base.evaluators.Operator;
+import org.drools.fuzzy.FuzzySet;
+import org.drools.fuzzy.NumericDomainFuzzySet;
+import org.drools.fuzzy.RealDomain;
+import org.drools.fuzzy.evaluators.FuzzyNumericEvaluator;
+import org.drools.fuzzy.evaluators.membership.TriangleMembership;
+import org.drools.spi.Evaluator;
+
+
+public class SpeedDomain extends RealDomain {
+	
+	
+	public static final String STOP = "stop";
+	public static final String SLOW = "slow";
+	public static final String FAST = "fast";
+	
+		
+	
+			
+	public static final Operator   stopOp         = Operator.addOperatorToRegistry( SpeedDomain.STOP,false );
+	public static final Operator   notStopOp      = Operator.addOperatorToRegistry( SpeedDomain.STOP,true );
+	
+	public static final Operator   slowOp         = Operator.addOperatorToRegistry( SpeedDomain.SLOW,false );
+	public static final Operator   notSlowOp      = Operator.addOperatorToRegistry( SpeedDomain.SLOW,true );
+	
+	public static final Operator   fastOp         = Operator.addOperatorToRegistry( SpeedDomain.FAST,false );
+	public static final Operator   notFastOp      = Operator.addOperatorToRegistry( SpeedDomain.FAST,true );
+	
+	protected static String[]  SUPPORTED_IDS	= { stopOp.getOperatorString(),
+													 slowOp.getOperatorString(),
+													 fastOp.getOperatorString(),
+
+		};
+
+	
+	public SpeedDomain() {		
+		this.addGranule(new NumericDomainFuzzySet(STOP,
+				new FuzzyNumericEvaluator(
+						stopOp,
+						ValueType.DOUBLE_TYPE,
+						false,
+						"org.drools.fuzzy.evaluators.membership.TriangleMembership, 0, 50"
+						)
+			));
+		this.addGranule(new NumericDomainFuzzySet(SLOW,
+				new FuzzyNumericEvaluator(
+						slowOp,
+						ValueType.DOUBLE_TYPE,
+						false,
+						"org.drools.fuzzy.evaluators.membership.TriangleMembership, 50, 50"
+						)
+			));
+		this.addGranule(new NumericDomainFuzzySet(FAST,
+				new FuzzyNumericEvaluator(
+						fastOp,
+						ValueType.DOUBLE_TYPE,
+						false,
+						"org.drools.fuzzy.evaluators.membership.TriangleMembership, 100, 50"
+						)
+			));	
+	}
+	
+	
+	public String[] getEvaluatorIds() {
+		return SUPPORTED_IDS;
+	}
+
+
+	
+
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+
+}

Added: labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/chance/TemperatureDomain.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/chance/TemperatureDomain.java	                        (rev 0)
+++ labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/chance/TemperatureDomain.java	2009-04-19 15:59:07 UTC (rev 26142)
@@ -0,0 +1,107 @@
+package org.drools.examples.chance;
+
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
+import org.drools.base.ValueType;
+import org.drools.base.evaluators.EvaluatorDefinition;
+import org.drools.base.evaluators.Operator;
+import org.drools.fuzzy.FuzzySet;
+import org.drools.fuzzy.NumericDomainFuzzySet;
+import org.drools.fuzzy.RealDomain;
+import org.drools.fuzzy.evaluators.FuzzyNumericEvaluator;
+import org.drools.fuzzy.evaluators.membership.TriangleMembership;
+import org.drools.spi.Evaluator;
+
+
+public class TemperatureDomain extends RealDomain {
+	
+	
+	public static final String COLD = "cold";
+	public static final String COOL = "cool";
+	public static final String WARM = "warm";
+	public static final String HOT = "hot";
+		
+	
+			
+	public static final Operator   coldOp         = Operator.addOperatorToRegistry( TemperatureDomain.COLD,false );
+	public static final Operator   notColdOp      = Operator.addOperatorToRegistry( TemperatureDomain.COLD,true );
+	
+	public static final Operator   coolOp         = Operator.addOperatorToRegistry( TemperatureDomain.COOL,false );
+	public static final Operator   notCoolOp      = Operator.addOperatorToRegistry( TemperatureDomain.COOL,true );
+	
+	public static final Operator   warmOp         = Operator.addOperatorToRegistry( TemperatureDomain.WARM,false );
+	public static final Operator   notWarmOp      = Operator.addOperatorToRegistry( TemperatureDomain.WARM,true );
+	
+	public static final Operator   hotOp         = Operator.addOperatorToRegistry( TemperatureDomain.HOT,false );
+	public static final Operator   notHotOp      = Operator.addOperatorToRegistry( TemperatureDomain.HOT,true );
+
+	protected static String[]  SUPPORTED_IDS	= { coldOp.getOperatorString(),
+													 coolOp.getOperatorString(),
+													 warmOp.getOperatorString(),
+													 hotOp.getOperatorString(),
+		};
+
+	
+	public TemperatureDomain() {		
+		this.addGranule(new NumericDomainFuzzySet(COLD,
+				new FuzzyNumericEvaluator(
+						coldOp,
+						ValueType.DOUBLE_TYPE,
+						false,
+						"org.drools.fuzzy.evaluators.membership.TriangleMembership, 0, 10"
+						)
+			));
+		this.addGranule(new NumericDomainFuzzySet(COOL,
+				new FuzzyNumericEvaluator(
+						coolOp,
+						ValueType.DOUBLE_TYPE,
+						false,
+						"org.drools.fuzzy.evaluators.membership.TriangleMembership, 10, 10"
+						)
+			));
+		this.addGranule(new NumericDomainFuzzySet(WARM,
+				new FuzzyNumericEvaluator(
+						warmOp,
+						ValueType.DOUBLE_TYPE,
+						false,
+						"org.drools.fuzzy.evaluators.membership.TriangleMembership, 20, 10"
+						)
+			));
+		this.addGranule(new NumericDomainFuzzySet(HOT,
+				new FuzzyNumericEvaluator(
+						hotOp,
+						ValueType.DOUBLE_TYPE,
+						false,
+						"org.drools.fuzzy.evaluators.membership.TriangleMembership, 30, 10"
+						)
+			));
+		
+	}
+	
+	
+	public String[] getEvaluatorIds() {
+		return SUPPORTED_IDS;
+	}
+
+
+	
+
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+
+}

Added: labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/chance/Test.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/chance/Test.java	                        (rev 0)
+++ labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/chance/Test.java	2009-04-19 15:59:07 UTC (rev 26142)
@@ -0,0 +1,353 @@
+package org.drools.examples.chance;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileWriter;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
+import org.drools.FactHandle;
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseConfiguration;
+import org.drools.KnowledgeBaseFactory;
+import org.drools.RuleBaseConfiguration;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderConfiguration;
+import org.drools.builder.KnowledgeBuilderFactory;
+import org.drools.builder.ResourceType;
+import org.drools.compiler.PackageBuilderConfiguration;
+import org.drools.definition.KnowledgePackage;
+import org.drools.event.rule.DebugAgendaEventListener;
+import org.drools.event.rule.DebugWorkingMemoryEventListener;
+import org.drools.io.ResourceFactory;
+import org.drools.logger.KnowledgeRuntimeLogger;
+import org.drools.logger.KnowledgeRuntimeLoggerFactory;
+import org.drools.runtime.StatefulKnowledgeSession;
+
+
+public class Test {
+
+	public static final void main(final String[] args) throws Exception {
+		
+
+		
+		// this will parse and compile in one step
+		
+//		kbuilder.add(ResourceFactory.newFileResource(new File("/home/davide/Projects/Eclipse_Drools/Test/target/classes/org/drools/examples/HelloWorld.drl")), ResourceType.DRL);
+		
+		Properties props = new Properties();
+		props.load(new FileInputStream("src/test.packagebuilder.conf"));
+			KnowledgeBuilderConfiguration conf = new PackageBuilderConfiguration(props);
+				conf.setProperty("drools.assertBehaviour","equality");
+				
+		final KnowledgeBuilder kbuilder = KnowledgeBuilderFactory
+				.newKnowledgeBuilder(conf);
+		
+		
+		kbuilder.add(ResourceFactory.newClassPathResource("HelloWorld.drl",
+				Test.class), ResourceType.DRL);
+
+		// Check the builder for errors
+		if (kbuilder.hasErrors()) {
+			System.out.println(kbuilder.getErrors().toString());
+			throw new RuntimeException("Unable to compile \"HelloWorld.drl\".");
+		}
+
+		// get the compiled packages (which are serializable)
+		final Collection<KnowledgePackage> pkgs = kbuilder
+				.getKnowledgePackages();
+
+		
+		RuleBaseConfiguration rbconf = new RuleBaseConfiguration(props);
+			rbconf.setProperty("drools.assertBehaviour","equality");
+		// add the packages to a knowledgebase (deploy the knowledge packages).
+		final KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(rbconf);
+		kbase.addKnowledgePackages(pkgs);
+
+		final StatefulKnowledgeSession ksession = kbase
+				.newStatefulKnowledgeSession();
+		
+//	
+		FileWriter writer = new FileWriter("test.log");
+		ksession.setGlobal("writer", writer);
+		
+		
+		//Start the session
+		// Will say something about next message
+		ksession.insert(new Trigger());
+		
+		// Message is empty, only has status
+		// Message content comes from previous rule
+		final Message message = new Message();		
+		message.setStatus(Message.HELLO);
+		
+		ksession.insert(message);							
+		ksession.fireAllRules();
+
+		// book has no a-priori known owner
+		// Info on BETA constraint comes from previous rule
+		Person pers = new Person("davide",27);
+		Book book = new Book("Drools Manual",null);
+					
+		ksession.insert(pers);
+		ksession.insert(book);				
+		ksession.fireAllRules();
+//	
+		
+		//NO WAY to do these exercises
+		Exercise x1 = new Exercise("Maths");
+		ksession.insert(x1);
+		ksession.fireAllRules();
+		
+		Exercise x2 = new Exercise("Geometry");
+		ksession.insert(x2);
+		ksession.fireAllRules();
+		
+		// THIS one is an EXCEPTION
+		Exercise x3 = new Exercise("Rule Programming");
+		ksession.insert(x3);
+		ksession.fireAllRules();
+		
+		
+		writer.close();
+		
+		
+		
+		
+		
+		
+		
+		
+		
+	
+		
+		
+		
+		
+
+//		logger.close();
+
+		ksession.dispose();
+	}
+
+	public static class Message {
+		public static final int HELLO = 0;
+		public static final int GOODBYE = 1;
+		public static final int IDK = 3;
+
+		public String message = "";
+
+		private int status;
+
+		public Message() {
+
+		}
+		
+		public Message(int status) {
+			this.status = status;
+		}
+
+		public String getMessage() {
+			return this.message;
+		}
+
+		public void setMessage(final String message) {
+			this.message = message;
+		}
+
+		public int getStatus() {
+			return this.status;
+		}
+
+		public void setStatus(final int status) {
+			this.status = status;
+		}
+
+		public static Message doSomething(Message message) {
+			return message;
+		}
+
+		public boolean isSomething(String msg, List<Object> list) {
+			list.add(this);
+			return this.message.equals(msg);
+		}
+		
+		public boolean equals(Object other) {
+			if (other == null) return false;
+			if (other instanceof Message) {
+				Message o = (Message) other;
+				//return o.message.equals(this.message) && o.status == this.status;
+				return o.status == this.status;
+			}
+			return false;
+		
+		}
+		
+		public int hashCode() {
+			//return this.message.hashCode()+this.status;
+			return this.status;
+		}
+	}
+
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	public static class Person {
+
+		private String name;
+		private int age;
+		/**
+		 * @param name the name to set
+		 */
+		public void setName(String name) {
+			this.name = name;
+		}
+		/**
+		 * @return the name
+		 */
+		public String getName() {
+			return name;
+		}
+		/**
+		 * @param age the age to set
+		 */
+		public void setAge(int age) {
+			this.age = age;
+		}
+		/**
+		 * @return the age
+		 */
+		public int getAge() {
+			return age;
+		}
+		
+		public Person(String name, int age) {
+			this.name = name;
+			this.age = age;
+		}
+		
+		public boolean equals(Object other) {
+			if (other == null) return false;
+			Person p = (Person) other;
+			if (p == null) return false;
+			return this.name.equals(p.name);
+		}
+		
+		public int hashCode() {
+			return name.hashCode();
+		}
+	
+	
+		
+	}
+	
+	
+	
+	public static class Book {
+		
+		private String title;
+		private Person owner;
+	
+		
+		public Book() {
+		}
+		
+		
+		public Book(String t, Person p) {
+			setTitle(t);
+			setOwner(p);
+		}
+
+		/**
+		 * @param title the title to set
+		 */
+		public void setTitle(String title) {
+			this.title = title;
+		}
+
+		/**
+		 * @return the title
+		 */
+		public String getTitle() {
+			return title;
+		}
+
+		/**
+		 * @param owner the owner to set
+		 */
+		public void setOwner(Person owner) {
+			this.owner = owner;
+		}
+
+		/**
+		 * @return the owner
+		 */
+		public Person getOwner() {
+			return owner;
+		}
+		
+		
+		public boolean equals(Object other) {
+			if (other == null) return false;
+			Book b = (Book) other;
+			if (b == null) return false;
+			return this.title.equals(b.title);
+		}
+		
+		public int hashCode() {
+			return title.hashCode();
+		}
+
+		
+
+		
+		
+	}
+	
+	public static class Trigger {
+		
+	}
+	
+	
+	public static class Exercise {
+		
+		private String topic;
+		public String getTopic() {
+			return topic;
+		}
+		
+		public Exercise(String top) {
+			topic = top;
+		}
+		
+		public int hashCode() {
+			return topic.hashCode();
+			
+		}
+		
+		
+		
+		public boolean equals(Object other) {
+			if (other == null) return false;
+			if (other == this) return true;
+			
+			
+			if (other instanceof Exercise)
+				return getTopic().equals(((Exercise) other).getTopic()); 
+			else 
+				return false;
+		}
+		
+	}
+	
+}

Added: labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/chance/TestGEB.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/chance/TestGEB.java	                        (rev 0)
+++ labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/chance/TestGEB.java	2009-04-19 15:59:07 UTC (rev 26142)
@@ -0,0 +1,317 @@
+package org.drools.examples.chance;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileWriter;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
+import org.drools.FactHandle;
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseConfiguration;
+import org.drools.KnowledgeBaseFactory;
+import org.drools.RuleBaseConfiguration;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderConfiguration;
+import org.drools.builder.KnowledgeBuilderFactory;
+import org.drools.builder.ResourceType;
+import org.drools.compiler.PackageBuilderConfiguration;
+import org.drools.definition.KnowledgePackage;
+import org.drools.event.rule.DebugAgendaEventListener;
+import org.drools.event.rule.DebugWorkingMemoryEventListener;
+import org.drools.io.ResourceFactory;
+import org.drools.logger.KnowledgeRuntimeLogger;
+import org.drools.logger.KnowledgeRuntimeLoggerFactory;
+import org.drools.runtime.StatefulKnowledgeSession;
+
+
+public class TestGEB {
+
+	public static final void main(final String[] args) throws Exception {
+		
+
+		
+		// this will parse and compile in one step
+		
+//		kbuilder.add(ResourceFactory.newFileResource(new File("/home/davide/Projects/Eclipse_Drools/Test/target/classes/org/drools/examples/HelloWorld.drl")), ResourceType.DRL);
+		
+		Properties props = new Properties();
+		props.load(new FileInputStream("src/test.packagebuilder.conf"));
+			KnowledgeBuilderConfiguration conf = new PackageBuilderConfiguration(props);
+				conf.setProperty("drools.assertBehaviour","equality");
+				
+		final KnowledgeBuilder kbuilder = KnowledgeBuilderFactory
+				.newKnowledgeBuilder(conf);
+		
+		
+		kbuilder.add(ResourceFactory.newClassPathResource("TestGEB.drl",
+				TestGEB.class), ResourceType.DRL);
+
+		// Check the builder for errors
+		if (kbuilder.hasErrors()) {
+			System.out.println(kbuilder.getErrors().toString());
+			throw new RuntimeException("Unable to compile \"HelloWorld.drl\".");
+		}
+
+		// get the compiled packages (which are serializable)
+		final Collection<KnowledgePackage> pkgs = kbuilder
+				.getKnowledgePackages();
+
+		
+		RuleBaseConfiguration rbconf = new RuleBaseConfiguration(props);
+			rbconf.setProperty("drools.assertBehaviour","equality");
+		// add the packages to a knowledgebase (deploy the knowledge packages).
+		final KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(rbconf);
+		kbase.addKnowledgePackages(pkgs);
+
+		final StatefulKnowledgeSession ksession = kbase
+				.newStatefulKnowledgeSession();
+		
+//	
+		FileWriter writer = new FileWriter("testGEB.log");
+		ksession.setGlobal("writer", writer);
+		
+		// Message is empty, only has status
+		// Message content comes from previous rule
+		final Message message = new Message();		
+		message.setStatus(0);
+		
+		ksession.insert(message);		
+		
+		
+		ksession.fireAllRules();
+
+		
+		
+	
+		
+		
+		
+		
+
+//		logger.close();
+
+		ksession.dispose();
+	}
+
+	public static class Message {
+		public static final int HELLO = 0;
+		public static final int GOODBYE = 1;
+		public static final int IDK = 3;
+
+		public String message = "";
+
+		private int status;
+
+		public Message() {
+
+		}
+		
+		public Message(int status) {
+			this.status = status;
+		}
+
+		public String getMessage() {
+			return this.message;
+		}
+
+		public void setMessage(final String message) {
+			this.message = message;
+		}
+
+		public int getStatus() {
+			return this.status;
+		}
+
+		public void setStatus(final int status) {
+			this.status = status;
+		}
+
+		public static Message doSomething(Message message) {
+			return message;
+		}
+
+		public boolean isSomething(String msg, List<Object> list) {
+			list.add(this);
+			return this.message.equals(msg);
+		}
+		
+		public boolean equals(Object other) {
+			if (other == null) return false;
+			if (other instanceof Message) {
+				Message o = (Message) other;
+				//return o.message.equals(this.message) && o.status == this.status;
+				return o.status == this.status;
+			}
+			return false;
+		
+		}
+		
+		public int hashCode() {
+			//return this.message.hashCode()+this.status;
+			return this.status;
+		}
+	}
+
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	public static class Person {
+
+		private String name;
+		private int age;
+		/**
+		 * @param name the name to set
+		 */
+		public void setName(String name) {
+			this.name = name;
+		}
+		/**
+		 * @return the name
+		 */
+		public String getName() {
+			return name;
+		}
+		/**
+		 * @param age the age to set
+		 */
+		public void setAge(int age) {
+			this.age = age;
+		}
+		/**
+		 * @return the age
+		 */
+		public int getAge() {
+			return age;
+		}
+		
+		public Person(String name, int age) {
+			this.name = name;
+			this.age = age;
+		}
+		
+		public boolean equals(Object other) {
+			if (other == null) return false;
+			Person p = (Person) other;
+			if (p == null) return false;
+			return this.name.equals(p.name);
+		}
+		
+		public int hashCode() {
+			return name.hashCode();
+		}
+	
+	
+		
+	}
+	
+	
+	
+	public static class Book {
+		
+		private String title;
+		private Person owner;
+	
+		
+		public Book() {
+		}
+		
+		
+		public Book(String t, Person p) {
+			setTitle(t);
+			setOwner(p);
+		}
+
+		/**
+		 * @param title the title to set
+		 */
+		public void setTitle(String title) {
+			this.title = title;
+		}
+
+		/**
+		 * @return the title
+		 */
+		public String getTitle() {
+			return title;
+		}
+
+		/**
+		 * @param owner the owner to set
+		 */
+		public void setOwner(Person owner) {
+			this.owner = owner;
+		}
+
+		/**
+		 * @return the owner
+		 */
+		public Person getOwner() {
+			return owner;
+		}
+		
+		
+		public boolean equals(Object other) {
+			if (other == null) return false;
+			Book b = (Book) other;
+			if (b == null) return false;
+			return this.title.equals(b.title);
+		}
+		
+		public int hashCode() {
+			return title.hashCode();
+		}
+
+		
+
+		
+		
+	}
+	
+	public static class Trigger {
+		
+	}
+	
+	
+	public static class Exercise {
+		
+		private String topic;
+		public String getTopic() {
+			return topic;
+		}
+		
+		public Exercise(String top) {
+			topic = top;
+		}
+		
+		public int hashCode() {
+			return topic.hashCode();
+			
+		}
+		
+		
+		
+		public boolean equals(Object other) {
+			if (other == null) return false;
+			if (other == this) return true;
+			
+			
+			if (other instanceof Exercise)
+				return getTopic().equals(((Exercise) other).getTopic()); 
+			else 
+				return false;
+		}
+		
+	}
+	
+}

Added: labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/chance/FuzzyTest0.drl
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/chance/FuzzyTest0.drl	                        (rev 0)
+++ labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/chance/FuzzyTest0.drl	2009-04-19 15:59:07 UTC (rev 26142)
@@ -0,0 +1,42 @@
+package org.drools.examples.chance
+ 
+ 
+ 
+import org.drools.examples.chance.Room;
+import java.io.FileWriter;
+
+
+global FileWriter writer;
+
+rule "Hot v1"
+	when 
+		$r : Room( temperature hot[] 0 )		
+	then
+		//System.out.println("Room is hot in degree "+drools.getConsequenceDegree());
+		//System.out.println("Evaluator is called directly");
+		writer.write("\n\n");
+		writer.write("Room is hot in degree "+drools.getConsequenceDegree()+"\n");
+		writer.write("Evaluator is called directly\n");
+end
+
+rule "Hot v2"
+	when 
+		$r : Room( temperature seems[] hot )		
+	then
+		//System.out.println("Room is hot in degree "+drools.getConsequenceDegree());
+		//System.out.println("Evaluator from temp domain, requires a method in Room");
+		writer.write("\n\n");			             
+		writer.write("Room is hot in degree "+drools.getConsequenceDegree()+"\n");
+		writer.write("Evaluator from temp domain, requires a method in Room\n");
+end
+
+rule "Hot v3"
+	when 
+		$r : Room( temperature seems[] "cold" )		
+	then
+		//System.out.println("Room is hot in degree "+drools.getConsequenceDegree());
+		//System.out.println("Evaluator from temp domain, runtime call (no method in room)");
+		writer.write("\n\n");
+		writer.write("Room is hot in degree "+drools.getConsequenceDegree()+"\n");
+		writer.write("Evaluator from temp domain, runtime call (no method in room)\n");
+end

Added: labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/chance/FuzzyTest1.drl
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/chance/FuzzyTest1.drl	                        (rev 0)
+++ labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/chance/FuzzyTest1.drl	2009-04-19 15:59:07 UTC (rev 26142)
@@ -0,0 +1,61 @@
+package org.drools.examples.chance
+ 
+import org.drools.examples.chance.Room;
+import org.drools.examples.chance.Fan;
+import java.io.FileWriter;
+
+
+global FileWriter writer;
+
+
+
+
+rule "Cold"
+	when 
+		$r : Room( temperature cold[] 0)		
+	then
+		drools.inject(new Fan(),"org.drools.examples.chance.Fan.speed","seems","stop");	              
+end
+
+rule "Warm"
+	when
+		$r : Room( temperature cool[] 0)
+	then
+		drools.inject(new Fan(),"org.drools.examples.chance.Fan.speed","seems","stop");
+end
+
+rule "Hot"
+	when
+		$r : Room( temperature hot[] 0)
+	then
+		drools.inject(new Fan(),"org.drools.examples.chance.Fan.speed","seems","fast");
+end
+
+
+
+
+
+rule "Fan1" 
+	when 
+		$f : Fan( speed seems[] "fast")
+	then
+		$f.setSpeed("fast",drools.getConsequenceDegree());
+		writer.write("\n\n ********** Set speed to fast ****** \n\n" + drools.getConsequenceDegree());
+end
+
+rule "Fan2" 
+	when 
+		$f : Fan( speed seems[] "slow")
+	then
+		$f.setSpeed("slow",drools.getConsequenceDegree());
+		writer.write("\n\n ********** Set speed to slow ****** \n\n" + drools.getConsequenceDegree());
+end
+
+rule "Fan3" 
+	when 
+		$f : Fan( speed seems[] "stop")
+	then
+		$f.setSpeed("stop",drools.getConsequenceDegree());
+		writer.write("\n\n ********** Set speed to stop ****** \n\n" + drools.getConsequenceDegree());	
+end
+

Added: labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/chance/HelloWorld.drl
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/chance/HelloWorld.drl	                        (rev 0)
+++ labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/chance/HelloWorld.drl	2009-04-19 15:59:07 UTC (rev 26142)
@@ -0,0 +1,68 @@
+package org.drools.examples.chance
+ 
+import org.drools.examples.chance.Test.Trigger;
+import org.drools.examples.chance.Test.Message;
+import org.drools.examples.chance.Test.Exercise;
+import org.drools.examples.chance.Test.Person;
+import org.drools.examples.chance.Test.Book;
+import java.io.FileWriter;
+
+
+global FileWriter writer;
+
+
+rule "Trigger"
+	when
+		Trigger();		
+	then
+		writer.write("\n A Message with status = HELLO will hold the message Hello!");
+		drools.inject(new Message(Message.HELLO),"org.drools.examples.Test$Message.message","String ==","Hello!");
+end
+
+
+
+rule "Synch"
+	when
+		$m : Message( message == "Hello!" )
+	then
+		writer.write("\n\nSynched rule fires at "+drools.getConsequenceDegree());
+		writer.write("\nDeclared message is "+$m.getMessage()+ " but is thought to be Hello!");
+		
+		
+		Person p = new Person("davide",27);
+		Book b = new Book("Drools Manual",p);				
+		writer.write("\n Now stating Davide owns a Drools Manual");
+		
+		//FIXME Until lexical analysis is done properly, args must be defined in two steps
+		Object[] args = new Object[] { p , b }; 
+		drools.inject(args,"org.drools.examples.Test$Book.owner","Object ==","$p");
+end
+
+
+
+rule "BetaSynch"
+	when		
+		$p : Person( name == "davide" , age > 25 || age < 18)			
+		$b : Book(  owner == $p )	
+	then
+		writer.write("\n\n\nBook has no a-priori known owner\n");
+		writer.write("Book.owner = "+$b.getOwner()+"\n");
+		writer.write("Info comes from rule, evaluation is "+drools.getConsequenceDegree()+"\n");
+		
+		writer.write("\n\nSo, an exceptional exercise will be done\n\n");
+		Exercise e = new Exercise("Rule Programming");
+		drools.inject(e,"Exceptional");
+end
+
+
+//This is a rule with false implication, meaning that all conclusions are undetermined
+//Filter strat propagates as soon as some info is available
+rule "Exceptional"
+	@degree( 0 )
+	@filterStrat( org.drools.reteoo.filters.AlwaysPassFilterStrategy )	
+	when
+		$e : Exercise( $t : topic)		
+	then
+		writer.write("\nEx "+ $t +" can be done? Answer is " + drools.getConsequenceDegree());	
+end
+

Added: labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/chance/TestGEB.drl
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/chance/TestGEB.drl	                        (rev 0)
+++ labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/chance/TestGEB.drl	2009-04-19 15:59:07 UTC (rev 26142)
@@ -0,0 +1,36 @@
+package org.drools.examples.chance
+ 
+
+import org.drools.examples.chance.TestGEB.Message;
+import java.io.FileWriter;
+
+
+global FileWriter writer;
+
+rule "TestGEB"	
+	when
+		(Message(status == 0)	
+		
+			
+		and
+		
+		Message(status == 1))
+		
+		
+		or
+		
+		(Message(status == 2)
+		
+		and
+		
+		Message(status == 3))
+		
+		
+		Message(status == 4)
+		
+	then
+	
+	System.out.println("CE Builder RULE");		
+end
+
+

Added: labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/test.packagebuilder.conf
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/test.packagebuilder.conf	                        (rev 0)
+++ labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/test.packagebuilder.conf	2009-04-19 15:59:07 UTC (rev 26142)
@@ -0,0 +1,45 @@
+drools.dialect.default = java
+drools.dialect.java = org.drools.rule.builder.dialect.java.JavaDialectConfiguration
+drools.dialect.java.compiler = ECLIPSE
+
+drools.dialect.mvel = org.drools.rule.builder.dialect.mvel.MVELDialectConfiguration
+drools.dialect.mvel.strict = true
+drools.dialect.mvel.langLevel = 4
+
+drools.accumulate.function.average = org.drools.base.accumulators.AverageAccumulateFunction
+drools.accumulate.function.max = org.drools.base.accumulators.MaxAccumulateFunction
+drools.accumulate.function.min = org.drools.base.accumulators.MinAccumulateFunction
+drools.accumulate.function.count = org.drools.base.accumulators.CountAccumulateFunction
+drools.accumulate.function.sum = org.drools.base.accumulators.SumAccumulateFunction
+
+drools.evaluator.coincides = org.drools.base.evaluators.CoincidesEvaluatorDefinition
+drools.evaluator.before = org.drools.base.evaluators.BeforeEvaluatorDefinition
+drools.evaluator.after = org.drools.base.evaluators.AfterEvaluatorDefinition
+drools.evaluator.meets = org.drools.base.evaluators.MeetsEvaluatorDefinition
+drools.evaluator.metby = org.drools.base.evaluators.MetByEvaluatorDefinition
+drools.evaluator.overlaps = org.drools.base.evaluators.OverlapsEvaluatorDefinition
+drools.evaluator.overlappedby = org.drools.base.evaluators.OverlappedByEvaluatorDefinition
+drools.evaluator.during = org.drools.base.evaluators.DuringEvaluatorDefinition
+drools.evaluator.includes = org.drools.base.evaluators.IncludesEvaluatorDefinition
+drools.evaluator.starts = org.drools.base.evaluators.StartsEvaluatorDefinition
+drools.evaluator.startedby = org.drools.base.evaluators.StartedByEvaluatorDefinition
+drools.evaluator.finishes = org.drools.base.evaluators.FinishesEvaluatorDefinition
+drools.evaluator.finishedby = org.drools.base.evaluators.FinishedByEvaluatorDefinition
+drools.evaluator.equality = org.drools.base.evaluators.EqualityEvaluatorsDefinition
+drools.evaluator.comparable = org.drools.base.evaluators.ComparableEvaluatorsDefinition
+drools.evaluator.set = org.drools.base.evaluators.SetEvaluatorsDefinition
+drools.evaluator.matches = org.drools.base.evaluators.MatchesEvaluatorsDefinition
+drools.evaluator.soundslike = org.drools.base.evaluators.SoundslikeEvaluatorsDefinition
+
+
+drools.imperfect.factory = org.drools.degrees.factory.SimpleFuzzyDegreeFactory
+
+drools.indexRightBetaMemory = false
+drools.indexLeftBetaMemory = false
+drools.alphaNodeHashingThreshold = 0
+
+
+drools.evaluator.seems = org.drools.fuzzy.evaluators.SeemsEvaluatorDefinition
+
+
+




More information about the jboss-svn-commits mailing list