[jboss-svn-commits] JBL Code SVN: r21143 - labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Jul 21 08:26:50 EDT 2008
Author: gizil
Date: 2008-07-21 08:26:50 -0400 (Mon, 21 Jul 2008)
New Revision: 21143
Added:
labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/Golf.java
labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/GolfC45ExampleFromDrl.java
labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/GolfExample.java
labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/MannersLearnerBenchmark.java
labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/Nursery.java
labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/NurseryExample.java
labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/Poker.java
labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/PokerExample.java
labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/PokerExampleFromDrl.java
labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/Restaurant.java
labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/RestaurantExample.java
labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/RestaurantExampleFromDrl.java
labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/ShoppingClasses.java
labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/ShoppingExm.java
labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/ShoppingExmFromDrl.java
labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/ShoppingFromDrl.java
labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/Triangle.java
labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/TriangleExample.java
labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/TriangleExmFromDrl.java
labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/VV.java
Log:
test cases
Added: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/Golf.java
===================================================================
--- labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/Golf.java (rev 0)
+++ labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/Golf.java 2008-07-21 12:26:50 UTC (rev 21143)
@@ -0,0 +1,63 @@
+package org.drools.examples.learner;
+
+import org.drools.learner.tools.FieldAnnotation;
+
+public class Golf {
+
+ @FieldAnnotation(readingSeq=0, values= {"sunny", "overcast", "rain"})
+ private String outlook; //: sunny, overcast, rain.
+ @FieldAnnotation(readingSeq=1, discrete=false)
+ private int temperature; //: continuous.
+ @FieldAnnotation(readingSeq=2, discrete=false)
+ private int humidity; //: continuous.
+ @FieldAnnotation(readingSeq=3)
+ private boolean windy;
+
+ @FieldAnnotation(target =true, readingSeq = 4)
+ private String decision; //Play, Don't Play.
+
+ public Golf() {
+
+ }
+
+ public String getOutlook() {
+ return outlook;
+ }
+
+ public void setOutlook(String outlook) {
+ this.outlook = outlook;
+ }
+
+ public int getTemperature() {
+ return temperature;
+ }
+
+ public void setTemperature(int temperature) {
+ this.temperature = temperature;
+ }
+
+ public int getHumidity() {
+ return humidity;
+ }
+
+ public void setHumidity(int humidity) {
+ this.humidity = humidity;
+ }
+
+ public boolean isWindy() {
+ return windy;
+ }
+
+ public void setWindy(boolean windy) {
+ this.windy = windy;
+ }
+
+ public String getDecision() {
+ return decision;
+ }
+
+ public void setDecision(String decision) {
+ this.decision = decision;
+ }
+
+}
Property changes on: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/Golf.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/GolfC45ExampleFromDrl.java
===================================================================
--- labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/GolfC45ExampleFromDrl.java (rev 0)
+++ labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/GolfC45ExampleFromDrl.java 2008-07-21 12:26:50 UTC (rev 21143)
@@ -0,0 +1,64 @@
+package org.drools.examples.learner;
+
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.util.List;
+
+import org.drools.RuleBase;
+import org.drools.RuleBaseFactory;
+import org.drools.StatefulSession;
+import org.drools.audit.WorkingMemoryFileLogger;
+import org.drools.compiler.PackageBuilder;
+import org.drools.event.DebugAgendaEventListener;
+import org.drools.event.DebugWorkingMemoryEventListener;
+import org.drools.learner.tools.ObjectFactory;
+import org.drools.rule.Package;
+
+public class GolfC45ExampleFromDrl {
+
+ public static final void main(final String[] args) throws Exception {
+ //read in the source
+ //final Reader source = new InputStreamReader( HelloWorldExample.class.getResourceAsStream( "HelloWorld.drl" ) );
+ final Reader source = new InputStreamReader( Golf.class.getResourceAsStream( "golf2.drl" ) );
+
+ final PackageBuilder builder = new PackageBuilder();
+
+ //this wil parse and compile in one step
+ builder.addPackageFromDrl( source );
+
+ // Check the builder for errors
+ if ( builder.hasErrors() ) {
+ System.out.println( builder.getErrors().toString() );
+ throw new RuntimeException( "Unable to compile \"golf2.drl\".");
+ }
+
+ //get the compiled package (which is serializable)
+ final Package pkg = builder.getPackage();
+
+ //add the package to a rulebase (deploy the rule package).
+ final RuleBase ruleBase = RuleBaseFactory.newRuleBase();
+ ruleBase.addPackage( pkg );
+
+ final StatefulSession session = ruleBase.newStatefulSession();
+
+ session.addEventListener( new DebugAgendaEventListener() );
+ session.addEventListener( new DebugWorkingMemoryEventListener() );
+
+ final WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger( session );
+ logger.setFileName( "log/golfc45_fromdrl" );
+
+ String inputFile = new String("data/golf/golf.data.txt");
+ Class<?> obj_class = Golf.class;
+ List<Object> facts = ObjectFactory.getObjects(obj_class, inputFile);
+ for (Object r : facts) {
+ session.insert(r);
+ }
+
+ session.fireAllRules();
+
+ logger.writeToDisk();
+
+ session.dispose();
+ }
+
+}
Property changes on: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/GolfC45ExampleFromDrl.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/GolfExample.java
===================================================================
--- labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/GolfExample.java (rev 0)
+++ labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/GolfExample.java 2008-07-21 12:26:50 UTC (rev 21143)
@@ -0,0 +1,104 @@
+package org.drools.examples.learner;
+
+import java.util.List;
+
+import org.drools.RuleBase;
+import org.drools.RuleBaseFactory;
+import org.drools.StatefulSession;
+import org.drools.audit.WorkingMemoryFileLogger;
+import org.drools.compiler.PackageBuilder;
+import org.drools.event.DebugAgendaEventListener;
+import org.drools.event.DebugWorkingMemoryEventListener;
+import org.drools.learner.DecisionTree;
+import org.drools.learner.builder.DecisionTreeFactory;
+import org.drools.learner.tools.ObjectFactory;
+
+public class GolfExample {
+
+ public static final void main(final String[] args) throws Exception {
+ long start_time = System.currentTimeMillis();
+ // my rule base
+ final RuleBase ruleBase = RuleBaseFactory.newRuleBase();
+ //ruleBase.addPackage( pkg );
+
+ final StatefulSession session = ruleBase.newStatefulSession();
+ // LearningSession
+
+ // what are these listeners???
+ session.addEventListener( new DebugAgendaEventListener() );
+ session.addEventListener( new DebugWorkingMemoryEventListener() );
+
+
+
+ final WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger( session );
+ logger.setFileName( "log/golf_c45" );
+
+ String inputFile = new String("data/golf/golf.data.txt");
+ Class<?> obj_class = Golf.class;
+ List<Object> facts = ObjectFactory.getObjects(obj_class, inputFile);
+ for (Object r : facts) {
+ session.insert(r);
+ }
+
+ DecisionTree decision_tree; int ALGO = 400;
+ /*
+ * Single 1xx, Bag 2xx, Boost 3xx
+ * ID3 x1x, C45 x2x
+ * Entropy xx1, Gain xx2
+ */
+ switch (ALGO) {
+ case 111:
+ decision_tree = DecisionTreeFactory.createSingleID3E(session, obj_class);
+ break;
+ case 112:
+ decision_tree = DecisionTreeFactory.createSingleID3G(session, obj_class);
+ break;
+ case 121:
+ decision_tree = DecisionTreeFactory.createSingleC45E(session, obj_class);
+ break;
+ case 122:
+ decision_tree = DecisionTreeFactory.createSingleC45G(session, obj_class);
+ break;
+ case 221:
+ decision_tree = DecisionTreeFactory.createBagC45E(session, obj_class);
+ break;
+ case 222:
+ decision_tree = DecisionTreeFactory.createBagC45G(session, obj_class);
+ break;
+ case 321:
+ decision_tree = DecisionTreeFactory.createBoostedC45E(session, obj_class);
+ break;
+ case 322:
+ decision_tree = DecisionTreeFactory.createBoostedC45G(session, obj_class);
+ break;
+// case 3:
+// decision_tree = DecisionTreeFactory.createGlobal2(session, obj_class);
+// break;
+ case 400:
+ decision_tree = DecisionTreeFactory.createSinglePrunnedC45E(session, obj_class);
+ break;
+ default:
+ decision_tree = DecisionTreeFactory.createSingleID3E(session, obj_class);
+
+ }
+
+ final PackageBuilder builder = new PackageBuilder();
+ //this wil generate the rules, then parse and compile in one step
+ builder.addPackageFromTree( decision_tree );
+ /*
+ * get the compiled package (which is serializable) from the builder
+ * add the package to a rulebase (deploy the rule package).
+ */
+ ruleBase.addPackage( builder.getPackage() );
+
+ session.fireAllRules();
+
+ long end_time = System.currentTimeMillis();
+ System.out.println("Total time="+ (end_time-start_time));
+
+ logger.writeToDisk();
+
+ session.dispose();
+ }
+
+}
Property changes on: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/GolfExample.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/MannersLearnerBenchmark.java
===================================================================
--- labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/MannersLearnerBenchmark.java (rev 0)
+++ labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/MannersLearnerBenchmark.java 2008-07-21 12:26:50 UTC (rev 21143)
@@ -0,0 +1,108 @@
+package org.drools.examples.learner;
+
+import java.io.InputStream;
+import java.util.Iterator;
+import java.util.List;
+
+import org.drools.RuleBase;
+import org.drools.RuleBaseFactory;
+import org.drools.StatefulSession;
+import org.drools.benchmark.manners.Guest;
+import org.drools.benchmark.manners.MannersBenchmark;
+import org.drools.compiler.PackageBuilder;
+import org.drools.learner.DecisionTree;
+import org.drools.learner.builder.DecisionTreeFactory;
+import org.drools.learner.tools.ObjectFactory;
+
+public class MannersLearnerBenchmark {
+ public static final void main(final String[] args) throws Exception {
+ long start_time = System.currentTimeMillis();
+ // my rule base
+ final RuleBase ruleBase = RuleBaseFactory.newRuleBase();
+ //ruleBase.addPackage( pkg );
+
+ final StatefulSession session = ruleBase.newStatefulSession();
+ // LearningSession
+
+// // what are these listeners???
+// session.addEventListener( new DebugAgendaEventListener() );
+// session.addEventListener( new DebugWorkingMemoryEventListener() );
+//
+// final WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger( session );
+// logger.setFileName( "log/poker" );
+
+
+ String filename;
+ if ( args.length != 0 ) {
+ String arg = args[0];
+ filename = arg;
+ } else {
+ filename = "manners64.dat";
+ }
+
+ InputStream is = MannersBenchmark.class.getResourceAsStream( filename );
+ Class<?> obj_class = Guest.class;
+ List list = MannersBenchmark.getInputObjects( is );
+ for ( Iterator it = list.iterator(); it.hasNext(); ) {
+ Object object = it.next();
+ session.insert( object );
+ }
+
+ // instantiate a learner for a specific object class and pass session to train
+ DecisionTree decision_tree; int ALGO = 111;
+ /*
+ * Single 1xx, Bag 2xx, Boost 3xx
+ * ID3 x1x, C45 x2x
+ * Entropy xx1, Gain xx2
+ */
+ switch (ALGO) {
+ case 111:
+ decision_tree = DecisionTreeFactory.createSingleID3E(session, obj_class);
+ break;
+ case 112:
+ decision_tree = DecisionTreeFactory.createSingleID3G(session, obj_class);
+ break;
+ case 121:
+ decision_tree = DecisionTreeFactory.createSingleC45E(session, obj_class);
+ break;
+ case 122:
+ decision_tree = DecisionTreeFactory.createSingleC45G(session, obj_class);
+ break;
+ case 221:
+ decision_tree = DecisionTreeFactory.createBagC45E(session, obj_class);
+ break;
+ case 222:
+ decision_tree = DecisionTreeFactory.createBagC45G(session, obj_class);
+ break;
+ case 321:
+ decision_tree = DecisionTreeFactory.createBoostedC45E(session, obj_class);
+ break;
+ case 322:
+ decision_tree = DecisionTreeFactory.createBoostedC45G(session, obj_class);
+ break;
+// case 3:
+// decision_tree = DecisionTreeFactory.createGlobal2(session, obj_class);
+// break;
+ default:
+ decision_tree = DecisionTreeFactory.createSingleID3E(session, obj_class);
+
+ }
+
+ final PackageBuilder builder = new PackageBuilder();
+ //this wil generate the rules, then parse and compile in one step
+ builder.addPackageFromTree( decision_tree );
+ /*
+ * get the compiled package (which is serializable) from the builder
+ * add the package to a rulebase (deploy the rule package).
+ */
+ ruleBase.addPackage( builder.getPackage() );
+
+ session.fireAllRules();
+ long end_time = System.currentTimeMillis();
+ System.out.println("Total time="+ (end_time-start_time));
+
+// logger.writeToDisk();
+
+ session.dispose();
+ }
+}
Property changes on: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/MannersLearnerBenchmark.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/Nursery.java
===================================================================
--- labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/Nursery.java (rev 0)
+++ labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/Nursery.java 2008-07-21 12:26:50 UTC (rev 21143)
@@ -0,0 +1,94 @@
+package org.drools.examples.learner;
+
+import org.drools.learner.tools.FieldAnnotation;
+
+public class Nursery {
+ @FieldAnnotation(readingSeq =0)
+ private String parents; //"usual","pretentious", "great_pret"
+ @FieldAnnotation(readingSeq =1)
+ private String has_nurs; //"proper","less_proper", "improper", "critical", "very_crit"
+ @FieldAnnotation(readingSeq =2)
+ private String children; //"1", "2", "3","more"
+ @FieldAnnotation(readingSeq =3)
+ private String form; //"complete","completed", "incomplete", "foster"
+ @FieldAnnotation(readingSeq =4)
+ private String housing; //"convenient","less_conv", "critical"
+ @FieldAnnotation(readingSeq =5)
+ private String finance; //"convenient","inconv"
+ @FieldAnnotation(readingSeq =6)
+ private String social; //"nonprob","slightly_prob", "problematic"
+ @FieldAnnotation(readingSeq =7)
+ private String health; //"recommended","priority", "not_recom"
+ @FieldAnnotation(readingSeq =8, target = true)
+ private String classnursery; //"not_recom", "recommend", "very_recom", "priority","spec_prior"
+
+
+ public String getParents() {
+ return parents;
+ }
+
+ public void setParents(String parents) {
+ this.parents = parents;
+ }
+ public String getHas_nurs() {
+ return has_nurs;
+ }
+
+ public void setHas_nurs(String has_nurs) {
+ this.has_nurs = has_nurs;
+ }
+ public String getForm() {
+ return form;
+ }
+
+ public void setForm(String form) {
+ this.form = form;
+ }
+ public String getChildren() {
+ return children;
+ }
+
+ public void setChildren(String children) {
+ this.children = children;
+ }
+ public String getHousing() {
+ return housing;
+ }
+
+ public void setHousing(String housing) {
+ this.housing = housing;
+ }
+
+ public String getFinance() {
+ return finance;
+ }
+
+ public void setFinance(String finance) {
+ this.finance = finance;
+ }
+ public String getSocial() {
+ return social;
+ }
+
+ public void setSocial(String social) {
+ this.social = social;
+ }
+ public String getHealth() {
+ return health;
+ }
+
+ public void setHealth(String health) {
+ this.health = health;
+ }
+ public String getClassnursery() {
+ return classnursery;
+ }
+
+ public void setClassnursery(String classnursery) {
+ this.classnursery = classnursery;
+ }
+
+
+
+
+}
Property changes on: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/Nursery.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/NurseryExample.java
===================================================================
--- labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/NurseryExample.java (rev 0)
+++ labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/NurseryExample.java 2008-07-21 12:26:50 UTC (rev 21143)
@@ -0,0 +1,61 @@
+package org.drools.examples.learner;
+
+import java.util.List;
+
+import org.drools.RuleBase;
+import org.drools.RuleBaseFactory;
+import org.drools.StatefulSession;
+import org.drools.audit.WorkingMemoryFileLogger;
+import org.drools.compiler.PackageBuilder;
+import org.drools.event.DebugAgendaEventListener;
+import org.drools.event.DebugWorkingMemoryEventListener;
+import org.drools.learner.DecisionTree;
+import org.drools.learner.builder.DecisionTreeFactory;
+import org.drools.learner.tools.ObjectFactory;
+
+public class NurseryExample {
+
+
+ public static final void main(final String[] args) throws Exception {
+ // my rule base
+ final RuleBase ruleBase = RuleBaseFactory.newRuleBase();
+
+ final StatefulSession session = ruleBase.newStatefulSession(); // LearningSession
+
+ // what are these listeners???
+ session.addEventListener( new DebugAgendaEventListener() );
+ session.addEventListener( new DebugWorkingMemoryEventListener() );
+
+ final WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger( session );
+ logger.setFileName( "log/nursery" );
+
+ String inputFile = new String("data/nursery/nursery.data.txt");
+ Class<?> obj_class = Nursery.class;
+ List<Object> facts = ObjectFactory.getObjects(obj_class, inputFile);
+ for (Object r : facts) {
+ session.insert(r);
+ }
+
+ // instantiate a learner for a specific object class and pass session to train
+ //Learner learner = LearnerFactory.createID3(session, obj_class);
+ DecisionTree dt_builder = DecisionTreeFactory.createBagC45E(session, obj_class);
+
+ final PackageBuilder builder = new PackageBuilder();
+ //this wil generate the rules, then parse and compile in one step
+ builder.addPackageFromTree( dt_builder );
+ ruleBase.addPackage( builder.getPackage() );
+ /*
+ final Reader source = new InputStreamReader( HelloWorldExample.class.getResourceAsStream( "HelloWorld.drl" ) );
+ //get the compiled package (which is serializable)
+ final Package pkg = builder.getPackage();
+ //add the package to a rulebase (deploy the rule package).
+ ruleBase.addPackage( pkg );
+ */
+
+ session.fireAllRules();
+
+ logger.writeToDisk();
+
+ session.dispose();
+ }
+}
Property changes on: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/NurseryExample.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/Poker.java
===================================================================
--- labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/Poker.java (rev 0)
+++ labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/Poker.java 2008-07-21 12:26:50 UTC (rev 21143)
@@ -0,0 +1,146 @@
+package org.drools.examples.learner;
+
+import org.drools.learner.tools.ClassAnnotation;
+import org.drools.learner.tools.FieldAnnotation;
+
+ at ClassAnnotation(label_element = "getPoker_hand")
+public class Poker {
+ @FieldAnnotation(readingSeq = 0)
+ private int s1; // 'Suit of card #1': Ordinal (1-4) representing {Hearts, Spades, Diamonds, Clubs}
+ @FieldAnnotation(readingSeq = 1, discrete=false)
+ private int c1; // 'Rank of card #1': Numerical (1-13) representing (Ace, 2, 3, ... , Queen, King)
+
+ @FieldAnnotation(readingSeq = 2)
+ private int s2; // 'Suit of card #2': Ordinal (1-4) representing {Hearts, Spades, Diamonds, Clubs}
+ @FieldAnnotation(readingSeq = 3, discrete=false)
+ private int c2; // 'Rank of card #2': Numerical (1-13) representing (Ace, 2, 3, ... , Queen, King)
+
+ @FieldAnnotation(readingSeq = 4)
+ private int s3; // 'Suit of card #3': Ordinal (1-4) representing {Hearts, Spades, Diamonds, Clubs}
+ @FieldAnnotation(readingSeq = 5, discrete=false)
+ private int c3; // 'Rank of card #3': Numerical (1-13) representing (Ace, 2, 3, ... , Queen, King)
+
+ @FieldAnnotation(readingSeq = 6)
+ private int s4; // 'Suit of card #4': Ordinal (1-4) representing {Hearts, Spades, Diamonds, Clubs}
+ @FieldAnnotation(readingSeq = 7, discrete=false)
+ private int c4; // 'Rank of card #4': Numerical (1-13) representing (Ace, 2, 3, ... , Queen, King)
+
+ @FieldAnnotation(readingSeq = 8)
+ private int s5; // 'Suit of card #5': Ordinal (1-4) representing {Hearts, Spades, Diamonds, Clubs}
+ @FieldAnnotation(readingSeq = 9, discrete=false)
+ private int c5; // 'Rank of card #5': Numerical (1-13) representing (Ace, 2, 3, ... , Queen, King)
+
+ @FieldAnnotation(readingSeq = 10, ignore = true)
+ private int poker_hand;
+ /*
+ *0: Nothing in hand; not a recognized poker hand
+ 1: One pair; one pair of equal ranks within five cards
+ 2: Two pairs; two pairs of equal ranks within five cards
+ 3: Three of a kind; three equal ranks within five cards
+ 4: Straight; five cards, sequentially ranked with no gaps
+ 5: Flush; five cards with the same suit
+ 6: Full house; pair + different rank three of a kind
+ 7: Four of a kind; four equal ranks within five cards
+ 8: Straight flush; straight + flush
+ 9: Royal flush; {Ace, King, Queen, Jack, Ten} + flush
+ */
+
+ public Poker() {
+
+ }
+
+ public boolean getLabel() {
+ return poker_hand>=4;
+ }
+
+ public int getS1() {
+ return s1;
+ }
+
+ public void setS1(int s1) {
+ this.s1 = s1;
+ }
+
+ public int getC1() {
+ return c1;
+ }
+
+ public void setC1(int c1) {
+ this.c1 = c1;
+ }
+
+ public int getS2() {
+ return s2;
+ }
+
+ public void setS2(int s2) {
+ this.s2 = s2;
+ }
+
+ public int getC2() {
+ return c2;
+ }
+
+ public void setC2(int c2) {
+ this.c2 = c2;
+ }
+
+ public int getS3() {
+ return s3;
+ }
+
+ public void setS3(int s3) {
+ this.s3 = s3;
+ }
+
+ public int getC3() {
+ return c3;
+ }
+
+ public void setC3(int c3) {
+ this.c3 = c3;
+ }
+
+ public int getS4() {
+ return s4;
+ }
+
+ public void setS4(int s4) {
+ this.s4 = s4;
+ }
+
+ public int getC4() {
+ return c4;
+ }
+
+ public void setC4(int c4) {
+ this.c4 = c4;
+ }
+
+ public int getS5() {
+ return s5;
+ }
+
+ public void setS5(int s5) {
+ this.s5 = s5;
+ }
+
+ public int getC5() {
+ return c5;
+ }
+
+ public void setC5(int c5) {
+ this.c5 = c5;
+ }
+
+ public int getPoker_hand() {
+ return poker_hand;
+ }
+
+ public void setPoker_hand(int poker_hand) {
+ this.poker_hand = poker_hand;
+ }
+
+
+
+}
Property changes on: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/Poker.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/PokerExample.java
===================================================================
--- labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/PokerExample.java (rev 0)
+++ labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/PokerExample.java 2008-07-21 12:26:50 UTC (rev 21143)
@@ -0,0 +1,96 @@
+package org.drools.examples.learner;
+
+import java.util.List;
+
+import org.drools.RuleBase;
+import org.drools.RuleBaseFactory;
+import org.drools.StatefulSession;
+import org.drools.compiler.PackageBuilder;
+import org.drools.learner.DecisionTree;
+import org.drools.learner.builder.DecisionTreeFactory;
+import org.drools.learner.tools.ObjectFactory;
+
+public class PokerExample {
+
+ public static final void main(final String[] args) throws Exception {
+ long start_time = System.currentTimeMillis();
+ // my rule base
+ final RuleBase ruleBase = RuleBaseFactory.newRuleBase();
+ //ruleBase.addPackage( pkg );
+
+ final StatefulSession session = ruleBase.newStatefulSession();
+ // LearningSession
+
+// // what are these listeners???
+// session.addEventListener( new DebugAgendaEventListener() );
+// session.addEventListener( new DebugWorkingMemoryEventListener() );
+//
+// final WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger( session );
+// logger.setFileName( "log/poker" );
+
+ String inputFile = new String("data/poker/poker-hand-training-true.data.txt");
+ Class<?> obj_class = Poker.class;
+ List<Object> facts = ObjectFactory.getObjects(obj_class, inputFile);
+ for (Object r : facts) {
+ session.insert(r);
+ }
+
+ // instantiate a learner for a specific object class and pass session to train
+ DecisionTree decision_tree; int ALGO = 121;
+ /*
+ * Single 1xx, Bag 2xx, Boost 3xx
+ * ID3 x1x, C45 x2x
+ * Entropy xx1, Gain xx2
+ */
+ switch (ALGO) {
+ case 111:
+ decision_tree = DecisionTreeFactory.createSingleID3E(session, obj_class);
+ break;
+ case 112:
+ decision_tree = DecisionTreeFactory.createSingleID3G(session, obj_class);
+ break;
+ case 121:
+ decision_tree = DecisionTreeFactory.createSingleC45E(session, obj_class);
+ break;
+ case 122:
+ decision_tree = DecisionTreeFactory.createSingleC45G(session, obj_class);
+ break;
+ case 221:
+ decision_tree = DecisionTreeFactory.createBagC45E(session, obj_class);
+ break;
+ case 222:
+ decision_tree = DecisionTreeFactory.createBagC45G(session, obj_class);
+ break;
+ case 321:
+ decision_tree = DecisionTreeFactory.createBoostedC45E(session, obj_class);
+ break;
+ case 322:
+ decision_tree = DecisionTreeFactory.createBoostedC45G(session, obj_class);
+ break;
+// case 3:
+// decision_tree = DecisionTreeFactory.createGlobal2(session, obj_class);
+// break;
+ default:
+ decision_tree = DecisionTreeFactory.createSingleID3E(session, obj_class);
+
+ }
+
+ final PackageBuilder builder = new PackageBuilder();
+ //this wil generate the rules, then parse and compile in one step
+ builder.addPackageFromTree( decision_tree );
+ /*
+ * get the compiled package (which is serializable) from the builder
+ * add the package to a rulebase (deploy the rule package).
+ */
+ ruleBase.addPackage( builder.getPackage() );
+
+ session.fireAllRules();
+ long end_time = System.currentTimeMillis();
+ System.out.println("Total time="+ (end_time-start_time));
+
+// logger.writeToDisk();
+
+ session.dispose();
+ }
+
+}
Property changes on: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/PokerExample.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/PokerExampleFromDrl.java
===================================================================
--- labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/PokerExampleFromDrl.java (rev 0)
+++ labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/PokerExampleFromDrl.java 2008-07-21 12:26:50 UTC (rev 21143)
@@ -0,0 +1,64 @@
+package org.drools.examples.learner;
+
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.util.List;
+
+import org.drools.RuleBase;
+import org.drools.RuleBaseFactory;
+import org.drools.StatefulSession;
+import org.drools.audit.WorkingMemoryFileLogger;
+import org.drools.compiler.PackageBuilder;
+import org.drools.event.DebugAgendaEventListener;
+import org.drools.event.DebugWorkingMemoryEventListener;
+import org.drools.learner.tools.ObjectFactory;
+import org.drools.rule.Package;
+
+public class PokerExampleFromDrl {
+
+ public static final void main(final String[] args) throws Exception {
+ //read in the source
+ //final Reader source = new InputStreamReader( HelloWorldExample.class.getResourceAsStream( "HelloWorld.drl" ) );
+ final Reader source = new InputStreamReader( Restaurant.class.getResourceAsStream( "poker_c45_bag.drl" ) );
+
+ final PackageBuilder builder = new PackageBuilder();
+
+ //this wil parse and compile in one step
+ builder.addPackageFromDrl( source );
+
+ // Check the builder for errors
+ if ( builder.hasErrors() ) {
+ System.out.println( builder.getErrors().toString() );
+ throw new RuntimeException( "Unable to compile \"poker2.drl\".");
+ }
+
+ //get the compiled package (which is serializable)
+ final Package pkg = builder.getPackage();
+
+ //add the package to a rulebase (deploy the rule package).
+ final RuleBase ruleBase = RuleBaseFactory.newRuleBase();
+ ruleBase.addPackage( pkg );
+
+ final StatefulSession session = ruleBase.newStatefulSession();
+
+ session.addEventListener( new DebugAgendaEventListener() );
+ session.addEventListener( new DebugWorkingMemoryEventListener() );
+
+ final WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger( session );
+ logger.setFileName( "log/poker_c45_bag_fromdrl" );
+
+ String inputFile = new String("data/poker/poker-hand-training-true.data.txt");
+ Class<?> obj_class = Poker.class;
+ List<Object> facts = ObjectFactory.getObjects(obj_class, inputFile);
+ for (Object r : facts) {
+ session.insert(r);
+ }
+
+ session.fireAllRules();
+
+ logger.writeToDisk();
+
+ session.dispose();
+ }
+
+}
Property changes on: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/PokerExampleFromDrl.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/Restaurant.java
===================================================================
--- labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/Restaurant.java (rev 0)
+++ labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/Restaurant.java 2008-07-21 12:26:50 UTC (rev 21143)
@@ -0,0 +1,151 @@
+package org.drools.examples.learner;
+
+import org.drools.learner.tools.FieldAnnotation;
+
+//import dt.memory.DomainSpec;
+
+public class Restaurant {
+
+
+ private boolean alternate; //yesno
+ private boolean bar; //yesno
+ private boolean fri_sat ; //yesno
+ private boolean hungry; //yesno
+ private String patrons; //String[]{"None","Some","Full"});
+ private int price; //",new String[]{"$","$$","$$$"});
+ private boolean raining; //yesno
+ private boolean reservation; //yesno
+ private String type; //",new String[]{"French","Italian","Thai","Burger"});
+ private String wait_estimate; //",new String[]{"0-10","10-30","30-60",">60"});
+ @FieldAnnotation(target =true, readingSeq = 0)
+ private boolean will_wait; //yesno
+
+
+ public Restaurant (boolean alt, boolean b, boolean f_s, boolean hung, String pat, int pri,
+ boolean rain, boolean reserv, String t, String wait, boolean will) {
+ alternate = alt; //yesno
+ bar = b; //yesno
+ fri_sat = f_s; //yesno
+ hungry = hung; //yesno
+ patrons = pat; //",new String[]{"None","Some","Full"});
+ price = pri; //",new String[]{"$","$$","$$$"});
+ raining = rain; //yesno
+ reservation = reserv; //yesno
+ type = t; //",new String[]{"French","Italian","Thai","Burger"});
+ wait_estimate = wait; //",new String[]{"0-10","10-30","30-60",">60"});
+ will_wait = will; //yesno
+ }
+
+
+ public boolean getAlternate() {
+ return alternate;
+ }
+
+
+ public void setAlternate(boolean alternate) {
+ this.alternate = alternate;
+ }
+
+
+ public boolean getBar() {
+ return bar;
+ }
+
+
+ public void setBar(boolean bar) {
+ this.bar = bar;
+ }
+
+
+ public boolean getFri_sat() {
+ return fri_sat;
+ }
+
+
+ public void setFri_sat(boolean fri_sat) {
+ this.fri_sat = fri_sat;
+ }
+
+
+ public boolean getHungry() {
+ return hungry;
+ }
+
+
+ public void setHungry(boolean hungry) {
+ this.hungry = hungry;
+ }
+
+
+ public String getPatrons() {
+ return patrons;
+ }
+
+
+ public void setPatrons(String patrons) {
+ this.patrons = patrons;
+ }
+
+
+ public int getPrice() {
+ return price;
+ }
+
+
+ public void setPrice(int price) {
+ this.price = price;
+ }
+
+
+ public boolean getRaining() {
+ return raining;
+ }
+
+
+ public void setRaining(boolean raining) {
+ this.raining = raining;
+ }
+
+
+ public boolean getReservation() {
+ return reservation;
+ }
+
+
+ public void setReservation(boolean reservation) {
+ this.reservation = reservation;
+ }
+
+
+ public String getType() {
+ return type;
+ }
+
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+
+ public String getWait_estimate() {
+ return wait_estimate;
+ }
+
+
+ public void setWait_estimate(String wait_estimate) {
+ this.wait_estimate = wait_estimate;
+ }
+
+
+ public boolean getWill_wait() {
+ return will_wait;
+ }
+
+
+ public void setWill_wait(boolean will_wait) {
+ this.will_wait = will_wait;
+ }
+
+
+
+}
Property changes on: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/Restaurant.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/RestaurantExample.java
===================================================================
--- labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/RestaurantExample.java (rev 0)
+++ labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/RestaurantExample.java 2008-07-21 12:26:50 UTC (rev 21143)
@@ -0,0 +1,157 @@
+package org.drools.examples.learner;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.drools.RuleBase;
+import org.drools.RuleBaseFactory;
+import org.drools.StatefulSession;
+import org.drools.audit.WorkingMemoryFileLogger;
+import org.drools.compiler.PackageBuilder;
+import org.drools.event.DebugAgendaEventListener;
+import org.drools.event.DebugWorkingMemoryEventListener;
+import org.drools.learner.DecisionTree;
+import org.drools.learner.builder.DecisionTreeFactory;
+
+// Hello World for Learner
+public class RestaurantExample {
+
+ public static final void main(final String[] args) throws Exception {
+ // my rule base
+ final RuleBase ruleBase = RuleBaseFactory.newRuleBase();
+ //ruleBase.addPackage( pkg );
+
+ final StatefulSession session = ruleBase.newStatefulSession();
+ // LearningSession
+
+ // what are these listeners???
+ session.addEventListener( new DebugAgendaEventListener() );
+ session.addEventListener( new DebugWorkingMemoryEventListener() );
+
+ final WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger( session );
+ logger.setFileName( "log/restaurants" );
+
+ Class<?> obj_class = Restaurant.class;
+ List<Object> facts = getRestaurants();
+ for (Object r : facts) {
+ session.insert(r);
+ }
+
+ // instantiate a learner for a specific object class and pass session to train
+ DecisionTree decision_tree; int ALGO = 111;
+ /*
+ * Single 1xx, Bag 2xx, Boost 3xx
+ * ID3 x1x, C45 x2x
+ * Entropy xx1, Gain xx2
+ */
+ switch (ALGO) {
+ case 111:
+ decision_tree = DecisionTreeFactory.createSingleID3E(session, obj_class);
+ break;
+ case 112:
+ decision_tree = DecisionTreeFactory.createSingleID3G(session, obj_class);
+ break;
+ case 121:
+ decision_tree = DecisionTreeFactory.createSingleC45E(session, obj_class);
+ break;
+ case 122:
+ decision_tree = DecisionTreeFactory.createSingleC45G(session, obj_class);
+ break;
+ case 221:
+ decision_tree = DecisionTreeFactory.createBagC45E(session, obj_class);
+ break;
+ case 222:
+ decision_tree = DecisionTreeFactory.createBagC45G(session, obj_class);
+ break;
+ case 321:
+ decision_tree = DecisionTreeFactory.createBoostedC45E(session, obj_class);
+ break;
+ case 322:
+ decision_tree = DecisionTreeFactory.createBoostedC45G(session, obj_class);
+ break;
+// case 3:
+// decision_tree = DecisionTreeFactory.createGlobal2(session, obj_class);
+// break;
+ default:
+ decision_tree = DecisionTreeFactory.createSingleID3E(session, obj_class);
+
+ }
+
+ final PackageBuilder builder = new PackageBuilder();
+ //this wil generate the rules, then parse and compile in one step
+ builder.addPackageFromTree( decision_tree );
+ ruleBase.addPackage( builder.getPackage() );
+ /*
+ final Reader source = new InputStreamReader( HelloWorldExample.class.getResourceAsStream( "HelloWorld.drl" ) );
+ //get the compiled package (which is serializable)
+ final Package pkg = builder.getPackage();
+ //add the package to a rulebase (deploy the rule package).
+ ruleBase.addPackage( pkg );
+ */
+
+ session.fireAllRules();
+
+ logger.writeToDisk();
+
+ session.dispose();
+ }
+
+ public static List<Object> getRestaurants() {
+ ArrayList<Object> rests = new ArrayList<Object>();
+ rests.add(new Restaurant(true, false, false, true, "Full", 1, false,
+ false, "Thai", "30-60", false));
+ rests.add(new Restaurant(false, true, false, false, "Some", 1, false,
+ false, "Burger", "0-10", true));
+ rests.add(new Restaurant(true, false, true, true, "Full", 1, true,
+ false, "Thai", "10-30", true));
+ rests.add(new Restaurant(true, false, true, false, "Full", 3, false,
+ true, "French", ">60", false));
+ rests.add(new Restaurant(false, true, false, true, "Some", 2, true,
+ true, "Italian", "0-10", true));
+ rests.add(new Restaurant(false, true, false, false, "None", 1, true,
+ false, "Burger", "0-10", false));
+ rests.add(new Restaurant(false, false, false, true, "Some", 2, true,
+ true, "Thai", "0-10", true));
+ rests.add(new Restaurant(false, true, true, false, "Full", 1, true,
+ false, "Burger", ">60", false));
+ rests.add(new Restaurant(true, true, true, true, "Full", 3, false,
+ true, "Italian", "10-30", false));
+ rests.add(new Restaurant(false, false, false, false, "None", 1, false,
+ false, "Thai", "0-10", false));
+ rests.add(new Restaurant(true, true, true, true, "Full", 1, false,
+ false, "Burger", "30-60", true));
+
+ return rests;
+ }
+
+ public static List<Object> getVVs() {
+ ArrayList<Object> rests = new ArrayList<Object>();
+ rests.add(new VV(true, false, false, true, "Full", 1, false,
+ false, "Thai", "30-60", false));
+// rests.add(new Restaurant(false, true, false, false, "Some", 1, false,
+// false, "Burger", "0-10", true));
+// rests.add(new Restaurant(true, false, true, true, "Full", 1, true,
+// false, "Thai", "10-30", true));
+// rests.add(new Restaurant(true, false, true, false, "Full", 3, false,
+// true, "French", ">60", false));
+// rests.add(new Restaurant(false, true, false, true, "Some", 2, true,
+// true, "Italian", "0-10", true));
+// rests.add(new Restaurant(false, true, false, false, "None", 1, true,
+// false, "Burger", "0-10", false));
+// rests.add(new Restaurant(false, false, false, true, "Some", 2, true,
+// true, "Thai", "0-10", true));
+// rests.add(new Restaurant(false, true, true, false, "Full", 1, true,
+// false, "Burger", ">60", false));
+// rests.add(new Restaurant(true, true, true, true, "Full", 3, false,
+// true, "Italian", "10-30", false));
+// rests.add(new Restaurant(false, false, false, false, "None", 1, false,
+// false, "Thai", "0-10", false));
+// rests.add(new Restaurant(true, true, true, true, "Full", 1, false,
+// false, "Burger", "30-60", true));
+
+ return rests;
+ }
+
+
+
+}
Property changes on: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/RestaurantExample.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/RestaurantExampleFromDrl.java
===================================================================
--- labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/RestaurantExampleFromDrl.java (rev 0)
+++ labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/RestaurantExampleFromDrl.java 2008-07-21 12:26:50 UTC (rev 21143)
@@ -0,0 +1,61 @@
+package org.drools.examples.learner;
+
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.util.List;
+
+import org.drools.RuleBase;
+import org.drools.RuleBaseFactory;
+import org.drools.StatefulSession;
+import org.drools.audit.WorkingMemoryFileLogger;
+import org.drools.compiler.PackageBuilder;
+import org.drools.event.DebugAgendaEventListener;
+import org.drools.event.DebugWorkingMemoryEventListener;
+import org.drools.rule.Package;
+
+public class RestaurantExampleFromDrl {
+
+ public static final void main(final String[] args) throws Exception {
+ //read in the source
+ //final Reader source = new InputStreamReader( HelloWorldExample.class.getResourceAsStream( "HelloWorld.drl" ) );
+ final Reader source = new InputStreamReader( Restaurant.class.getResourceAsStream( "restaurant_id3_one.drl" ) );
+
+ final PackageBuilder builder = new PackageBuilder();
+
+ //this wil parse and compile in one step
+ builder.addPackageFromDrl( source );
+
+ // Check the builder for errors
+ if ( builder.hasErrors() ) {
+ System.out.println( builder.getErrors().toString() );
+ throw new RuntimeException( "Unable to compile \"HelloWorld.drl\".");
+ }
+
+ //get the compiled package (which is serializable)
+ final Package pkg = builder.getPackage();
+
+ //add the package to a rulebase (deploy the rule package).
+ final RuleBase ruleBase = RuleBaseFactory.newRuleBase();
+ ruleBase.addPackage( pkg );
+
+ final StatefulSession session = ruleBase.newStatefulSession();
+
+ session.addEventListener( new DebugAgendaEventListener() );
+ session.addEventListener( new DebugWorkingMemoryEventListener() );
+
+ final WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger( session );
+ logger.setFileName( "log/restaurant_fromdrl" );
+
+ List<Object> facts = RestaurantExample.getRestaurants();
+ for (Object r : facts) {
+ session.insert(r);
+ }
+
+ session.fireAllRules();
+
+ logger.writeToDisk();
+
+ session.dispose();
+ }
+
+}
Property changes on: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/RestaurantExampleFromDrl.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/ShoppingClasses.java
===================================================================
--- labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/ShoppingClasses.java (rev 0)
+++ labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/ShoppingClasses.java 2008-07-21 12:26:50 UTC (rev 21143)
@@ -0,0 +1,116 @@
+package org.drools.examples.learner;
+
+import org.drools.learner.tools.FieldAnnotation;
+
+public class ShoppingClasses {
+ public static class Customer {
+ private String name;
+
+ private int discount;
+
+ @FieldAnnotation(target = true)
+ private boolean eligible;
+
+ public Customer(String name,
+ int discount) {
+ this.name = name;
+ this.discount = discount;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public int getDiscount() {
+ return discount;
+ }
+
+ public boolean isEligible() {
+ return eligible;
+ }
+
+ public void setEligible(boolean eligible) {
+ this.eligible = eligible;
+ }
+
+ public void setDiscount(int discount) {
+ this.discount = discount;
+ }
+
+ }
+
+
+ public static class Person{
+ private Dress skirt;
+ // attribute 1
+ private double salary;
+
+ }
+
+ // target object
+ public static class Dress{
+ double color;
+ // target attribute
+ String value;//classification valuable, normal, cheap
+ }
+
+ public static class Discount {
+ private Customer customer;
+ private int amount;
+
+ public Discount(Customer customer,
+ int amount) {
+ this.customer = customer;
+ this.amount = amount;
+ }
+
+ public Customer getCustomer() {
+ return customer;
+ }
+
+ public int getAmount() {
+ return amount;
+ }
+
+ }
+
+ public static class Product {
+ private String name;
+ private float price;
+
+ public Product(String name,
+ float price) {
+ this.name = name;
+ this.price = price;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public float getPrice() {
+ return price;
+ }
+
+
+ }
+
+ public static class Purchase {
+ private Customer customer;
+ private Product product;
+
+ public Purchase(Customer customer,
+ Product product) {
+ this.customer = customer;
+ this.product = product;
+ }
+
+ public Customer getCustomer() {
+ return customer;
+ }
+
+ public Product getProduct() {
+ return product;
+ }
+ }
+}
Property changes on: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/ShoppingClasses.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/ShoppingExm.java
===================================================================
--- labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/ShoppingExm.java (rev 0)
+++ labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/ShoppingExm.java 2008-07-21 12:26:50 UTC (rev 21143)
@@ -0,0 +1,121 @@
+package org.drools.examples.learner;
+
+import org.drools.RuleBase;
+import org.drools.RuleBaseFactory;
+import org.drools.StatefulSession;
+import org.drools.compiler.PackageBuilder;
+import org.drools.examples.learner.ShoppingClasses.*;
+
+import org.drools.learner.DecisionTree;
+import org.drools.learner.builder.DecisionTreeFactory;
+
+public class ShoppingExm {
+
+ public static final void main(final String[] args) throws Exception {
+ // my rule base
+ final RuleBase ruleBase = RuleBaseFactory.newRuleBase();
+ //ruleBase.addPackage( pkg );
+
+ final StatefulSession session = ruleBase.newStatefulSession();
+ // LearningSession
+
+ // what are these listeners???
+// session.addEventListener( new DebugAgendaEventListener() );
+// session.addEventListener( new DebugWorkingMemoryEventListener() );
+
+// final WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger( session );
+// logger.setFileName( "log/restaurants" );
+
+ Object[] facts = getExamples1();
+
+// int i = 0;
+ Class<?> obj_class = Purchase.class;
+ for (Object r : facts) {
+// if (i ==0)
+// obj_class= r.getClass();
+ session.insert(r);
+// i ++;
+ }
+
+ // instantiate a learner for a specific object class and pass session to train
+ DecisionTree decision_tree; int ALGO = 1;
+ switch (ALGO) {
+ case 1:
+ decision_tree = DecisionTreeFactory.createSingleC45E(session, obj_class);
+ break;
+ case 2:
+ decision_tree = DecisionTreeFactory.createBagC45E(session, obj_class);
+ break;
+ case 3:
+ decision_tree = DecisionTreeFactory.createBoostedC45G(session, obj_class);
+ break;
+ default:
+ decision_tree = DecisionTreeFactory.createBagC45G(session, obj_class);
+
+ }
+
+ boolean BUILD_TREE = true;
+ if (BUILD_TREE) {
+ final PackageBuilder builder = new PackageBuilder();
+ //this wil generate the rules, then parse and compile in one step
+ builder.addPackageFromTree( decision_tree );
+ ruleBase.addPackage( builder.getPackage() );
+ session.fireAllRules();
+ }
+
+// logger.writeToDisk();
+
+ session.dispose();
+ }
+
+ public static Object[] getExamples()
+ {
+ Customer mark = new Customer( "mark", 0 );
+ mark.setEligible(false);
+ Product shoes = new Product( "shoes", 60 );
+ Product hat = new Product( "hat", 60 );
+ Purchase purchase_x = new Purchase( mark, shoes );
+ Purchase purchase_y = new Purchase( mark, hat );
+ Object[] facts = {
+ mark,
+ shoes,
+ hat,
+ purchase_x,
+ purchase_y};
+ return facts;
+ }
+
+ public static Object[] getExamples1()
+ {
+ Customer mark = new Customer( "mark", 0 );
+ mark.setEligible(false);
+ Product shoes = new Product( "shoes", 60 );
+ Product hat = new Product( "hat", 60 );
+ Purchase purchase_x = new Purchase( mark, shoes );
+ Purchase purchase_y = new Purchase( mark, hat );
+
+ Customer gizil = new Customer( "gizil", 10 );
+ mark.setEligible(true);
+ Customer daniel = new Customer( "daniel", 10 );
+ mark.setEligible(false);
+ Customer krem = new Customer( "krem", 10 );
+ mark.setEligible(true);
+
+ Product skirt = new Product( "skirt", 60 );
+ Product robe = new Product( "robe", 60 );
+ Product hat2 = new Product( "hat2", 60 );
+
+ Object[] facts = {
+ mark,
+ shoes,
+ hat,
+ purchase_x,
+ purchase_y,
+ new Purchase( gizil, skirt ),
+ new Purchase( gizil, robe ),
+ new Purchase( daniel, shoes ),
+ new Purchase( daniel, hat2 ),
+ new Purchase( krem, hat2 )};
+ return facts;
+ }
+}
Property changes on: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/ShoppingExm.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/ShoppingExmFromDrl.java
===================================================================
--- labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/ShoppingExmFromDrl.java (rev 0)
+++ labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/ShoppingExmFromDrl.java 2008-07-21 12:26:50 UTC (rev 21143)
@@ -0,0 +1,68 @@
+package org.drools.examples.learner;
+
+import java.io.InputStreamReader;
+import java.io.Reader;
+
+import org.drools.RuleBase;
+import org.drools.RuleBaseFactory;
+import org.drools.StatefulSession;
+import org.drools.audit.WorkingMemoryFileLogger;
+import org.drools.compiler.PackageBuilder;
+import org.drools.event.DebugAgendaEventListener;
+import org.drools.event.DebugWorkingMemoryEventListener;
+import org.drools.examples.ShoppingExample.Purchase;
+import org.drools.examples.ShoppingExample.Customer;
+import org.drools.rule.Package;
+
+public class ShoppingExmFromDrl {
+
+ public static final void main(final String[] args) throws Exception {
+ //read in the source
+ //final Reader source = new InputStreamReader( HelloWorldExample.class.getResourceAsStream( "HelloWorld.drl" ) );
+ final Reader source = new InputStreamReader( Purchase.class.getResourceAsStream( "purchase_c45_one.drl" ) );
+
+ final PackageBuilder builder = new PackageBuilder();
+
+ //this wil parse and compile in one step
+ builder.addPackageFromDrl( source );
+
+ // Check the builder for errors
+ if ( builder.hasErrors() ) {
+ System.out.println( builder.getErrors().toString() );
+ throw new RuntimeException( "Unable to compile \"purchase_c45_one.drl\".");
+ }
+
+ //get the compiled package (which is serializable)
+ final Package pkg = builder.getPackage();
+
+ //add the package to a rulebase (deploy the rule package).
+ final RuleBase ruleBase = RuleBaseFactory.newRuleBase();
+ ruleBase.addPackage( pkg );
+
+ final StatefulSession session = ruleBase.newStatefulSession();
+
+ session.addEventListener( new DebugAgendaEventListener() );
+ session.addEventListener( new DebugWorkingMemoryEventListener() );
+
+ final WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger( session );
+ logger.setFileName( "log/purchase_c45_one_fromdrl" );
+
+ Object[] facts = ShoppingExm.getExamples1();
+
+// int i = 0;
+ Class<?> obj_class = Purchase.class;
+ for (Object r : facts) {
+// if (i ==0)
+// obj_class= r.getClass();
+ session.insert(r);
+// i ++;
+ }
+
+ session.fireAllRules();
+
+ logger.writeToDisk();
+
+ session.dispose();
+ }
+
+}
Property changes on: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/ShoppingExmFromDrl.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/ShoppingFromDrl.java
===================================================================
--- labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/ShoppingFromDrl.java (rev 0)
+++ labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/ShoppingFromDrl.java 2008-07-21 12:26:50 UTC (rev 21143)
@@ -0,0 +1,127 @@
+package org.drools.examples.learner;
+
+import java.io.InputStreamReader;
+import java.io.Reader;
+
+import org.drools.RuleBase;
+import org.drools.RuleBaseFactory;
+import org.drools.StatefulSession;
+import org.drools.audit.WorkingMemoryFileLogger;
+import org.drools.compiler.PackageBuilder;
+import org.drools.event.DebugAgendaEventListener;
+import org.drools.event.DebugWorkingMemoryEventListener;
+import org.drools.examples.learner.ShoppingClasses.Customer;
+import org.drools.examples.learner.ShoppingClasses.Purchase;
+import org.drools.examples.learner.ShoppingClasses.Product;
+import org.drools.rule.Package;
+
+public class ShoppingFromDrl {
+
+ public static final void main(final String[] args) throws Exception {
+ //read in the source
+ //final Reader source = new InputStreamReader( HelloWorldExample.class.getResourceAsStream( "HelloWorld.drl" ) );
+ final Reader source = new InputStreamReader( Purchase.class.getResourceAsStream( "purchase_c45_one.drl" ) );
+
+ final PackageBuilder builder = new PackageBuilder();
+
+ //this wil parse and compile in one step
+ builder.addPackageFromDrl( source );
+
+ // Check the builder for errors
+ if ( builder.hasErrors() ) {
+ System.out.println( builder.getErrors().toString() );
+ throw new RuntimeException( "Unable to compile \"purchase_c45_one.drl\".");
+ }
+
+ //get the compiled package (which is serializable)
+ final Package pkg = builder.getPackage();
+
+ //add the package to a rulebase (deploy the rule package).
+ final RuleBase ruleBase = RuleBaseFactory.newRuleBase();
+ ruleBase.addPackage( pkg );
+
+ final StatefulSession session = ruleBase.newStatefulSession();
+
+ session.addEventListener( new DebugAgendaEventListener() );
+ session.addEventListener( new DebugWorkingMemoryEventListener() );
+
+ final WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger( session );
+ logger.setFileName( "log/purchase_c45_one_fromdrl" );
+
+ Object[] facts = getExamples();
+
+// int i = 0;
+ Class<?> obj_class = Purchase.class;
+ for (Object r : facts) {
+// if (i ==0)
+// obj_class= r.getClass();
+ session.insert(r);
+// i ++;
+ }
+
+ session.fireAllRules();
+
+ logger.writeToDisk();
+
+ session.dispose();
+ }
+
+ public static Object[] getExamples()
+ {
+ Customer mark = new Customer( "mark", 0 );
+ mark.setEligible(false);
+ Product shoes = new Product( "shoes", 60 );
+ Product hat = new Product( "hat", 60 );
+ Purchase purchase_x = new Purchase( mark, shoes );
+ Purchase purchase_y = new Purchase( mark, hat );
+
+ Customer gizil = new Customer( "gizil", 10 );
+ mark.setEligible(true);
+ Customer daniel = new Customer( "daniel", 10 );
+ mark.setEligible(false);
+ Customer krem = new Customer( "krem", 10 );
+ mark.setEligible(true);
+
+ Product skirt = new Product( "skirt", 60 );
+ Product robe = new Product( "robe", 60 );
+ Product hat2 = new Product( "hat2", 60 );
+
+ Object[] facts = {
+// mark,
+// shoes,
+// hat,
+ purchase_x,
+ purchase_y,
+// gizil,
+// skirt,
+// robe,
+// daniel,
+// krem,
+// hat2,
+ new Purchase( gizil, skirt ),
+ new Purchase( gizil, robe ),
+ new Purchase( daniel, shoes ),
+ new Purchase( daniel, hat2 ),
+ new Purchase( krem, hat2 )};
+
+ Object[] facts2 = {
+ mark,
+ shoes,
+ hat,
+ purchase_x,
+ purchase_y,
+ gizil,
+ skirt,
+ robe,
+ daniel,
+ krem,
+ hat2,
+ new Purchase( gizil, skirt ),
+ new Purchase( gizil, robe ),
+ new Purchase( daniel, shoes ),
+ new Purchase( daniel, hat2 ),
+ new Purchase( krem, hat2 )};
+ return facts2;
+ }
+
+}
Property changes on: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/ShoppingFromDrl.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/Triangle.java
===================================================================
--- labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/Triangle.java (rev 0)
+++ labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/Triangle.java 2008-07-21 12:26:50 UTC (rev 21143)
@@ -0,0 +1,54 @@
+package org.drools.examples.learner;
+
+import org.drools.learner.tools.ClassAnnotation;
+import org.drools.learner.tools.FieldAnnotation;
+
+
+ at ClassAnnotation(label_element = "getLabel")
+public class Triangle {
+
+ @FieldAnnotation(readingSeq = 0, discrete = false)
+ private double x;
+
+ @FieldAnnotation(readingSeq = 1, discrete = false)
+ private double y;
+
+ @FieldAnnotation(readingSeq = 2, discrete = false)
+ private double z;
+
+ /* Triangle rules
+ * - The sum of every two sides of a triangle must be greater than the third side.
+ * or
+ * - The length of any side of a triangle is greater than the absolute difference
+ * of the lengths of the other two sides
+ */
+ public boolean getLabel() {
+ return (z < x + y) && (x < z + y) && (y < x + z);
+ }
+ public Triangle() {
+
+ }
+ public Triangle(double[] ds) {
+ this.x= ds[0];
+ this.y= ds[1];
+ this.z= ds[2];
+ }
+ public double getX() {
+ return x;
+ }
+ public void setX(double x) {
+ this.x = x;
+ }
+ public double getY() {
+ return y;
+ }
+ public void setY(double y) {
+ this.y = y;
+ }
+ public double getZ() {
+ return z;
+ }
+ public void setZ(double z) {
+ this.z = z;
+ }
+}
Property changes on: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/Triangle.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/TriangleExample.java
===================================================================
--- labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/TriangleExample.java (rev 0)
+++ labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/TriangleExample.java 2008-07-21 12:26:50 UTC (rev 21143)
@@ -0,0 +1,98 @@
+package org.drools.examples.learner;
+
+import java.util.List;
+
+import org.drools.RuleBase;
+import org.drools.RuleBaseFactory;
+import org.drools.StatefulSession;
+import org.drools.compiler.PackageBuilder;
+import org.drools.learner.DecisionTree;
+import org.drools.learner.builder.DecisionTreeFactory;
+import org.drools.learner.tools.ObjectFactory;
+
+public class TriangleExample {
+
+ public static final void main(final String[] args) throws Exception {
+ long start_time = System.currentTimeMillis();
+ // my rule base
+ final RuleBase ruleBase = RuleBaseFactory.newRuleBase();
+ //ruleBase.addPackage( pkg );
+
+ final StatefulSession session = ruleBase.newStatefulSession();
+ // LearningSession
+
+// // what are these listeners???
+// session.addEventListener( new DebugAgendaEventListener() );
+// session.addEventListener( new DebugWorkingMemoryEventListener() );
+//
+// final WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger( session );
+// logger.setFileName( "log/poker" );
+
+ String inputFile = new String("data/triangle/triangle.data.txt");
+ Class<?> obj_class = Triangle.class;
+ List<Object> facts = ObjectFactory.getObjects(obj_class, inputFile);
+ for (Object r : facts) {
+ session.insert(r);
+ }
+
+ // instantiate a learner for a specific object class and pass session to train
+ DecisionTree decision_tree; int ALGO = 221;
+ /*
+ * Single 1xx, Bag 2xx, Boost 3xx
+ * ID3 x1x, C45 x2x
+ * Entropy xx1, Gain xx2
+ */
+ switch (ALGO) {
+ case 111:
+ decision_tree = DecisionTreeFactory.createSingleID3E(session, obj_class);
+ break;
+ case 112:
+ decision_tree = DecisionTreeFactory.createSingleID3G(session, obj_class);
+ break;
+ case 121:
+ decision_tree = DecisionTreeFactory.createSingleC45E(session, obj_class);
+ break;
+ case 122:
+ decision_tree = DecisionTreeFactory.createSingleC45G(session, obj_class);
+ break;
+ case 221:
+ decision_tree = DecisionTreeFactory.createBagC45E(session, obj_class);
+ break;
+ case 222:
+ decision_tree = DecisionTreeFactory.createBagC45G(session, obj_class);
+ break;
+ case 321:
+ decision_tree = DecisionTreeFactory.createBoostedC45E(session, obj_class);
+ break;
+ case 322:
+ decision_tree = DecisionTreeFactory.createBoostedC45G(session, obj_class);
+ break;
+// case 3:
+// decision_tree = DecisionTreeFactory.createGlobal2(session, obj_class);
+// break;
+ default:
+ decision_tree = DecisionTreeFactory.createSingleID3E(session, obj_class);
+
+ }
+
+ final PackageBuilder builder = new PackageBuilder();
+ //this wil generate the rules, then parse and compile in one step
+ builder.addPackageFromTree( decision_tree );
+ /*
+ * get the compiled package (which is serializable) from the builder
+ * add the package to a rulebase (deploy the rule package).
+ */
+ ruleBase.addPackage( builder.getPackage() );
+
+ session.fireAllRules();
+ long end_time = System.currentTimeMillis();
+ System.out.println("Total time="+ (end_time-start_time));
+
+// logger.writeToDisk();
+
+ session.dispose();
+ }
+
+
+
+}
Property changes on: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/TriangleExample.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/TriangleExmFromDrl.java
===================================================================
--- labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/TriangleExmFromDrl.java (rev 0)
+++ labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/TriangleExmFromDrl.java 2008-07-21 12:26:50 UTC (rev 21143)
@@ -0,0 +1,64 @@
+package org.drools.examples.learner;
+
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.util.List;
+
+import org.drools.RuleBase;
+import org.drools.RuleBaseFactory;
+import org.drools.StatefulSession;
+import org.drools.audit.WorkingMemoryFileLogger;
+import org.drools.compiler.PackageBuilder;
+import org.drools.event.DebugAgendaEventListener;
+import org.drools.event.DebugWorkingMemoryEventListener;
+import org.drools.learner.tools.ObjectFactory;
+import org.drools.rule.Package;
+
+public class TriangleExmFromDrl {
+
+ public static final void main(final String[] args) throws Exception {
+ //read in the source
+ //final Reader source = new InputStreamReader( HelloWorldExample.class.getResourceAsStream( "HelloWorld.drl" ) );
+ final Reader source = new InputStreamReader( Triangle.class.getResourceAsStream( "triangle_bok.drl" ) );
+
+ final PackageBuilder builder = new PackageBuilder();
+
+ //this wil parse and compile in one step
+ builder.addPackageFromDrl( source );
+
+ // Check the builder for errors
+ if ( builder.hasErrors() ) {
+ System.out.println( builder.getErrors().toString() );
+ throw new RuntimeException( "Unable to compile \"triangle_bok.drl\".");
+ }
+
+ //get the compiled package (which is serializable)
+ final Package pkg = builder.getPackage();
+
+ //add the package to a rulebase (deploy the rule package).
+ final RuleBase ruleBase = RuleBaseFactory.newRuleBase();
+ ruleBase.addPackage( pkg );
+
+ final StatefulSession session = ruleBase.newStatefulSession();
+
+ session.addEventListener( new DebugAgendaEventListener() );
+ session.addEventListener( new DebugWorkingMemoryEventListener() );
+
+ final WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger( session );
+ logger.setFileName( "log/triangle_bok_fromdrl" );
+
+ String inputFile = new String("data/triangle/triangle.data.txt");
+ Class<?> obj_class = Triangle.class;
+ List<Object> facts = ObjectFactory.getObjects(obj_class, inputFile);
+ for (Object r : facts) {
+ session.insert(r);
+ }
+
+ session.fireAllRules();
+
+ logger.writeToDisk();
+
+ session.dispose();
+ }
+
+}
Property changes on: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/TriangleExmFromDrl.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/VV.java
===================================================================
--- labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/VV.java (rev 0)
+++ labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/VV.java 2008-07-21 12:26:50 UTC (rev 21143)
@@ -0,0 +1,12 @@
+package org.drools.examples.learner;
+
+public class VV extends Restaurant {
+
+ public VV(boolean alt, boolean b, boolean f_s, boolean hung, String pat,
+ int pri, boolean rain, boolean reserv, String t, String wait,
+ boolean will) {
+ super(alt, b, f_s, hung, pat, pri, rain, reserv, t, wait, will);
+ // TODO Auto-generated constructor stub
+ }
+
+}
Property changes on: labs/jbossrules/contrib/machinelearning/5.0/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/learner/VV.java
___________________________________________________________________
Name: svn:eol-style
+ native
More information about the jboss-svn-commits
mailing list