[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