From 500677a435965822a88b35726d59bf4113dbd4ff Mon Sep 17 00:00:00 2001 From: Gianpaolo Coro Date: Wed, 29 Aug 2012 09:52:18 +0000 Subject: [PATCH] git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/data-analysis/EcologicalEngine@57357 82a268e6-3cf1-43bd-a215-b396298e98cf --- cfg/clusterers.properties | 1 + cfg/transducerers.properties | 1 + .../configuration/AlgorithmConfiguration.java | 2 + .../ecoengine/interfaces/Clusterer.java | 24 +++---- .../ecoengine/interfaces/Transducerer.java | 29 ++++++++ .../factories/ClusterersFactory.java | 33 ++++++++++ .../factories/ProcessorsFactory.java | 20 +++++- .../factories/TransducerersFactory.java | 34 ++++++++++ .../ecoengine/test/TestsMetaInfo.java | 66 +++++++++++++++---- .../ecoengine/transducers/TestTrans.java | 66 +++++++++++++++++++ 10 files changed, 252 insertions(+), 24 deletions(-) create mode 100644 cfg/clusterers.properties create mode 100644 cfg/transducerers.properties create mode 100644 src/main/java/org/gcube/dataanalysis/ecoengine/interfaces/Transducerer.java create mode 100644 src/main/java/org/gcube/dataanalysis/ecoengine/processing/factories/ClusterersFactory.java create mode 100644 src/main/java/org/gcube/dataanalysis/ecoengine/processing/factories/TransducerersFactory.java create mode 100644 src/main/java/org/gcube/dataanalysis/ecoengine/transducers/TestTrans.java diff --git a/cfg/clusterers.properties b/cfg/clusterers.properties new file mode 100644 index 0000000..f175776 --- /dev/null +++ b/cfg/clusterers.properties @@ -0,0 +1 @@ +DBSCAN=org.gcube.dataanalysis.ecoengine.clustering.DBScan diff --git a/cfg/transducerers.properties b/cfg/transducerers.properties new file mode 100644 index 0000000..f656929 --- /dev/null +++ b/cfg/transducerers.properties @@ -0,0 +1 @@ +TESTTRANS=org.gcube.dataanalysis.ecoengine.transducers.TestTrans diff --git a/src/main/java/org/gcube/dataanalysis/ecoengine/configuration/AlgorithmConfiguration.java b/src/main/java/org/gcube/dataanalysis/ecoengine/configuration/AlgorithmConfiguration.java index 9609eef..aa8520d 100644 --- a/src/main/java/org/gcube/dataanalysis/ecoengine/configuration/AlgorithmConfiguration.java +++ b/src/main/java/org/gcube/dataanalysis/ecoengine/configuration/AlgorithmConfiguration.java @@ -43,6 +43,8 @@ public class AlgorithmConfiguration extends LexicalEngineConfiguration implement public static String modelsFile = "models.properties"; public static String modelersFile = "modelers.properties"; public static String evaluatorsFile = "evaluators.properties"; + public static String clusterersFile = "clusterers.properties"; + public static String transducererFile = "transducerers.properties"; public static String RapidMinerOperatorsFile = "operators.xml"; public static String StatisticalManagerService = "StatisticalManager"; public static String StatisticalManagerClass = "Services"; diff --git a/src/main/java/org/gcube/dataanalysis/ecoengine/interfaces/Clusterer.java b/src/main/java/org/gcube/dataanalysis/ecoengine/interfaces/Clusterer.java index 019be53..72d1fc0 100644 --- a/src/main/java/org/gcube/dataanalysis/ecoengine/interfaces/Clusterer.java +++ b/src/main/java/org/gcube/dataanalysis/ecoengine/interfaces/Clusterer.java @@ -8,22 +8,22 @@ import org.gcube.dataanalysis.ecoengine.configuration.INFRASTRUCTURE; import org.gcube.dataanalysis.ecoengine.datatypes.StatisticalType; public interface Clusterer { - + public INFRASTRUCTURE getInfrastructure(); - + public void init() throws Exception; - + public void setConfiguration(AlgorithmConfiguration config); - + public void shutdown(); - + public float getStatus(); - + public String getDescription(); - - public List getInputParameters(); - - public StatisticalType getOutput(); - - public void cluster() throws Exception; + + public List getInputParameters(); + + public StatisticalType getOutput(); + + public void cluster() throws Exception; } diff --git a/src/main/java/org/gcube/dataanalysis/ecoengine/interfaces/Transducerer.java b/src/main/java/org/gcube/dataanalysis/ecoengine/interfaces/Transducerer.java new file mode 100644 index 0000000..3779cee --- /dev/null +++ b/src/main/java/org/gcube/dataanalysis/ecoengine/interfaces/Transducerer.java @@ -0,0 +1,29 @@ +package org.gcube.dataanalysis.ecoengine.interfaces; + +import java.util.List; + +import org.gcube.dataanalysis.ecoengine.configuration.ALG_PROPS; +import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration; +import org.gcube.dataanalysis.ecoengine.configuration.INFRASTRUCTURE; +import org.gcube.dataanalysis.ecoengine.datatypes.StatisticalType; + +public interface Transducerer { + + public INFRASTRUCTURE getInfrastructure(); + + public void init() throws Exception; + + public void setConfiguration(AlgorithmConfiguration config); + + public void shutdown(); + + public float getStatus(); + + public String getDescription(); + + public List getInputParameters(); + + public StatisticalType getOutput(); + + public void transform() throws Exception; +} diff --git a/src/main/java/org/gcube/dataanalysis/ecoengine/processing/factories/ClusterersFactory.java b/src/main/java/org/gcube/dataanalysis/ecoengine/processing/factories/ClusterersFactory.java new file mode 100644 index 0000000..e2f041e --- /dev/null +++ b/src/main/java/org/gcube/dataanalysis/ecoengine/processing/factories/ClusterersFactory.java @@ -0,0 +1,33 @@ +package org.gcube.dataanalysis.ecoengine.processing.factories; + +import java.util.ArrayList; +import java.util.List; + +import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration; +import org.gcube.dataanalysis.ecoengine.datatypes.StatisticalType; +import org.gcube.dataanalysis.ecoengine.interfaces.Clusterer; + +public class ClusterersFactory { + + public static Clusterer getClusterer(AlgorithmConfiguration config) throws Exception { + Clusterer clus = (Clusterer) ProcessorsFactory.getProcessor(config, config.getConfigPath() + AlgorithmConfiguration.clusterersFile); + return clus; + } + + public static List getAllClusterers(String configPath) throws Exception { + List cluss = ProcessorsFactory.getClasses(configPath + AlgorithmConfiguration.clusterersFile); + return cluss; + } + + public static List getClustererParameters(String configPath, String algorithmName) throws Exception { + List inputs = ProcessorsFactory.getParameters(configPath + AlgorithmConfiguration.clusterersFile, algorithmName); + return inputs; + } + + public static List getClusterers(AlgorithmConfiguration config) throws Exception { + List clusterers = new ArrayList(); + clusterers.add(getClusterer(config)); + return clusterers; + } + +} diff --git a/src/main/java/org/gcube/dataanalysis/ecoengine/processing/factories/ProcessorsFactory.java b/src/main/java/org/gcube/dataanalysis/ecoengine/processing/factories/ProcessorsFactory.java index 67a9485..7e1152c 100644 --- a/src/main/java/org/gcube/dataanalysis/ecoengine/processing/factories/ProcessorsFactory.java +++ b/src/main/java/org/gcube/dataanalysis/ecoengine/processing/factories/ProcessorsFactory.java @@ -8,11 +8,13 @@ import java.util.Properties; import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger; import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration; import org.gcube.dataanalysis.ecoengine.datatypes.StatisticalType; +import org.gcube.dataanalysis.ecoengine.interfaces.Clusterer; import org.gcube.dataanalysis.ecoengine.interfaces.Evaluator; import org.gcube.dataanalysis.ecoengine.interfaces.Generator; import org.gcube.dataanalysis.ecoengine.interfaces.Model; import org.gcube.dataanalysis.ecoengine.interfaces.Modeler; import org.gcube.dataanalysis.ecoengine.interfaces.SpatialProbabilityDistribution; +import org.gcube.dataanalysis.ecoengine.interfaces.Transducerer; import org.gcube.dataanalysis.ecoengine.utils.DatabaseFactory; public class ProcessorsFactory { @@ -52,6 +54,12 @@ public class ProcessorsFactory { } else if (algclass instanceof Evaluator) { return ((Evaluator) algclass).getInputParameters(); + } + else if (algclass instanceof Clusterer) { + return ((Clusterer) algclass).getInputParameters(); + } + else if (algclass instanceof Transducerer) { + return ((Transducerer) algclass).getInputParameters(); } else return ((SpatialProbabilityDistribution) algclass).getInputParameters(); @@ -83,7 +91,15 @@ public class ProcessorsFactory { else if (algclass instanceof Evaluator) { Evaluator m = (Evaluator) algclass; return m; - } + } + else if (algclass instanceof Clusterer) { + Clusterer m = (Clusterer) algclass; + return m; + } + else if (algclass instanceof Transducerer) { + Transducerer m = (Transducerer) algclass; + return m; + } else return null; @@ -99,6 +115,8 @@ public class ProcessorsFactory { map.put("DISTRIBUTIONS", GeneratorsFactory.getProbabilityDistributionAlgorithms(configPath)); map.put("MODELS", ModelersFactory.getModels(configPath)); map.put("EVALUATORS", EvaluatorsFactory.getAllEvaluators(configPath)); + map.put("CLUSTERERS", ClusterersFactory.getAllClusterers(configPath)); + map.put("TRANSDUCERER", TransducerersFactory.getAllTransducerers(configPath)); return map; } diff --git a/src/main/java/org/gcube/dataanalysis/ecoengine/processing/factories/TransducerersFactory.java b/src/main/java/org/gcube/dataanalysis/ecoengine/processing/factories/TransducerersFactory.java new file mode 100644 index 0000000..28dc363 --- /dev/null +++ b/src/main/java/org/gcube/dataanalysis/ecoengine/processing/factories/TransducerersFactory.java @@ -0,0 +1,34 @@ +package org.gcube.dataanalysis.ecoengine.processing.factories; + +import java.util.ArrayList; +import java.util.List; + +import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration; +import org.gcube.dataanalysis.ecoengine.datatypes.StatisticalType; +import org.gcube.dataanalysis.ecoengine.interfaces.Clusterer; +import org.gcube.dataanalysis.ecoengine.interfaces.Transducerer; + +public class TransducerersFactory { + + public static Transducerer getTransducerer(AlgorithmConfiguration config) throws Exception { + Transducerer tran = (Transducerer) ProcessorsFactory.getProcessor(config, config.getConfigPath() + AlgorithmConfiguration.transducererFile); + return tran; + } + + public static List getAllTransducerers(String configPath) throws Exception { + List trans = ProcessorsFactory.getClasses(configPath + AlgorithmConfiguration.transducererFile); + return trans; + } + + public static List getTransducerParameters(String configPath, String algorithmName) throws Exception { + List inputs = ProcessorsFactory.getParameters(configPath + AlgorithmConfiguration.transducererFile, algorithmName); + return inputs; + } + + public static List getTransducerers(AlgorithmConfiguration config) throws Exception { + List clusterers = new ArrayList(); + clusterers.add(getTransducerer(config)); + return clusterers; + } + +} diff --git a/src/main/java/org/gcube/dataanalysis/ecoengine/test/TestsMetaInfo.java b/src/main/java/org/gcube/dataanalysis/ecoengine/test/TestsMetaInfo.java index 68bf934..0e93a44 100644 --- a/src/main/java/org/gcube/dataanalysis/ecoengine/test/TestsMetaInfo.java +++ b/src/main/java/org/gcube/dataanalysis/ecoengine/test/TestsMetaInfo.java @@ -6,12 +6,16 @@ import java.util.List; import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger; import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration; import org.gcube.dataanalysis.ecoengine.datatypes.StatisticalType; +import org.gcube.dataanalysis.ecoengine.interfaces.Clusterer; import org.gcube.dataanalysis.ecoengine.interfaces.Evaluator; import org.gcube.dataanalysis.ecoengine.interfaces.Generator; +import org.gcube.dataanalysis.ecoengine.interfaces.Transducerer; +import org.gcube.dataanalysis.ecoengine.processing.factories.ClusterersFactory; import org.gcube.dataanalysis.ecoengine.processing.factories.EvaluatorsFactory; import org.gcube.dataanalysis.ecoengine.processing.factories.GeneratorsFactory; import org.gcube.dataanalysis.ecoengine.processing.factories.ModelersFactory; import org.gcube.dataanalysis.ecoengine.processing.factories.ProcessorsFactory; +import org.gcube.dataanalysis.ecoengine.processing.factories.TransducerersFactory; public class TestsMetaInfo { /** @@ -21,18 +25,18 @@ public class TestsMetaInfo { public static void main(String[] args) throws Exception { - System.out.println("***TEST 1 - Get Algorithm Information***"); + System.out.println("***TEST 1 - Get Generation Algorithm Parameters***"); List map = GeneratorsFactory.getAlgorithmParameters("./cfg/","DUMMY"); System.out.println("input for DUMMY algorithm: "+map); map = GeneratorsFactory.getAlgorithmParameters("./cfg/","AQUAMAPS_SUITABLE"); System.out.println("input for AQUAMAPS_SUITABLE algorithm: "+map); - System.out.println("\n***TEST 2 - Get Single Generator***"); + System.out.println("\n***TEST 2 - Get Generator***"); Generator g = GeneratorsFactory.getGenerator(testConfig()); System.out.println("Found generator "+g); - System.out.println("\n***TEST 3 - Get All Algorithms ***"); + System.out.println("\n***TEST 3 - Get All Generation Algorithms ***"); System.out.println("Algs: "+GeneratorsFactory.getProbabilityDistributionAlgorithms("./cfg/")); System.out.println("\n***TEST 4 - Get All Generators ***"); @@ -44,7 +48,7 @@ public static void main(String[] args) throws Exception { System.out.println("\n***TEST 6 - Get All Modelers ***"); System.out.println("Models: "+ModelersFactory.getModelers("./cfg/")); - System.out.println("\n***TEST 7- Get All Model parameters ***"); + System.out.println("\n***TEST 7- Get Model parameters ***"); map = ModelersFactory.getModelParameters("./cfg/","HSPEN"); System.out.println("input for HSPEN algorithm: "+map); @@ -52,25 +56,43 @@ public static void main(String[] args) throws Exception { map = ProcessorsFactory.getDefaultDatabaseConfiguration("./cfg/"); System.out.println("Database Default Values: "+map); - System.out.println("\n***TEST 8- Get Database Default Parameters***"); - map = ProcessorsFactory.getDefaultDatabaseConfiguration("./cfg/"); - System.out.println("Database Default Values: "+map); - - System.out.println("\n***TEST 9- Get Evaluators ***"); + System.out.println("\n***TEST 9- Get All Evaluators ***"); System.out.println("Database Default Values: "+EvaluatorsFactory.getAllEvaluators("./cfg/")); System.out.println("\n***TEST 10- Get Evaluator Parameters ***"); map = EvaluatorsFactory.getEvaluatorParameters("./cfg/","QUALITY_ANALYSIS"); System.out.println("Database Default Values: "+map); - System.out.println("\n***TEST 11- Get Evaluator Parameters ***"); + System.out.println("\n***TEST 11- Get Evaluators with a config***"); List eval = EvaluatorsFactory.getEvaluators(testConfigEvaluator()); System.out.println("Database Default Values: "+eval); - System.out.println("\n***TEST 12- Get Evaluator Parameters ***"); + System.out.println("\n***TEST 12- Get All Supported features***"); HashMap> features = ProcessorsFactory.getAllFeatures("./cfg/"); System.out.println("Database Default Values: "+features); + System.out.println("\n***TEST 13- Get All Clusterers***"); + System.out.println("All Clusterers: "+ClusterersFactory.getAllClusterers("./cfg/")); + + System.out.println("\n***TEST 14- Get Clusterer Parameters ***"); + map = ClusterersFactory.getClustererParameters("./cfg/","DBSCAN"); + System.out.println("Clusterers Params: "+map); + + System.out.println("\n***TEST 15- Get Clusterers with a config***"); + List clus = ClusterersFactory.getClusterers(testConfigClusterer()); + System.out.println("Clusterers list: "+clus); + + System.out.println("\n***TEST 16- Get All Transducerers***"); + System.out.println("All Transducers: "+TransducerersFactory.getAllTransducerers("./cfg/")); + + System.out.println("\n***TEST 17- Get Transducerers Parameters ***"); + map = TransducerersFactory.getTransducerParameters("./cfg/","TESTTRANS"); + System.out.println("Transducerers Params: "+map); + + System.out.println("\n***TEST 18- Get Transducerers with a config***"); + List trans = TransducerersFactory.getTransducerers(testConfigTrans()); + System.out.println("Transducerers list: "+trans); + int cores = Runtime.getRuntime().availableProcessors(); System.out.println("Number of cores: "+cores); } @@ -117,6 +139,28 @@ public static void main(String[] args) throws Exception { } + private static AlgorithmConfiguration testConfigTrans() { + AlgorithmConfiguration config = new AlgorithmConfiguration(); + config.setConfigPath("./cfg/"); + config.setPersistencePath("./"); + config.setNumberOfResources(1); + + config.setAgent("TESTTRANS"); + + return config; + } + + private static AlgorithmConfiguration testConfigClusterer() { + AlgorithmConfiguration config = new AlgorithmConfiguration(); + config.setConfigPath("./cfg/"); + config.setPersistencePath("./"); + config.setNumberOfResources(1); + + config.setAgent("DBSCAN"); + + return config; + } + private static AlgorithmConfiguration testConfigEvaluator() { AlgorithmConfiguration config = new AlgorithmConfiguration(); config.setConfigPath("./cfg/"); diff --git a/src/main/java/org/gcube/dataanalysis/ecoengine/transducers/TestTrans.java b/src/main/java/org/gcube/dataanalysis/ecoengine/transducers/TestTrans.java new file mode 100644 index 0000000..66da393 --- /dev/null +++ b/src/main/java/org/gcube/dataanalysis/ecoengine/transducers/TestTrans.java @@ -0,0 +1,66 @@ +package org.gcube.dataanalysis.ecoengine.transducers; + +import java.util.List; + +import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration; +import org.gcube.dataanalysis.ecoengine.configuration.INFRASTRUCTURE; +import org.gcube.dataanalysis.ecoengine.datatypes.StatisticalType; +import org.gcube.dataanalysis.ecoengine.interfaces.Transducerer; + +public class TestTrans implements Transducerer{ + + @Override + public INFRASTRUCTURE getInfrastructure() { + // TODO Auto-generated method stub + return null; + } + + @Override + public void init() throws Exception { + // TODO Auto-generated method stub + + } + + @Override + public void setConfiguration(AlgorithmConfiguration config) { + // TODO Auto-generated method stub + + } + + @Override + public void shutdown() { + // TODO Auto-generated method stub + + } + + @Override + public float getStatus() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public String getDescription() { + // TODO Auto-generated method stub + return null; + } + + @Override + public List getInputParameters() { + // TODO Auto-generated method stub + return null; + } + + @Override + public StatisticalType getOutput() { + // TODO Auto-generated method stub + return null; + } + + @Override + public void transform() throws Exception { + // TODO Auto-generated method stub + + } + +}