[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