Index: /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Server/Dispatcher.cs
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Server/Dispatcher.cs	(revision 1114)
+++ /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Server/Dispatcher.cs	(revision 1115)
@@ -120,5 +120,5 @@
       StandardGP sgp = new StandardGP();
       sgp.SetSeedRandomly = true;
-      sgp.MaxGenerations = 1;
+      sgp.MaxGenerations = 100;
       sgp.PopulationSize = 1000;
       sgp.Elites = 1;
Index: /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Server/Executer.cs
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Server/Executer.cs	(revision 1114)
+++ /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Server/Executer.cs	(revision 1115)
@@ -106,17 +106,25 @@
       store.Add(new Statement(modelEntity, Ontology.PredicateInstanceOf, Ontology.TypeGeneticProgrammingFunctionTree));
       store.Add(new Statement(finishedExecution.DataSetEntity, Ontology.PredicateHasModel, modelEntity));
-      Entity targetVariableAttr = new Entity(Ontology.CedmaNameSpace + Guid.NewGuid());
-      store.Add(new Statement(modelEntity, Ontology.PredicateModelAttribute, targetVariableAttr));
-      store.Add(new Statement(targetVariableAttr, Ontology.PredicateModelAttributeName, new Literal("TargetVariable")));
-      store.Add(new Statement(targetVariableAttr, Ontology.PredicateModelAttributeValue, new Literal(finishedExecution.TargetVariable)));
-      store.Add(new Statement(targetVariableAttr, Ontology.PredicateModelAttributeType, Ontology.TypeCategoricalAttribute));
+      StoreModelAttribute(modelEntity, "TargetVariable", finishedExecution.TargetVariable);
+      Scope bestModelScope = finishedEngine.GlobalScope.GetVariableValue<Scope>("BestValidationSolution", false);
+      StoreModelAttribute(modelEntity, "TrainingMeanSquaredError", bestModelScope.GetVariableValue<DoubleData>("Quality", false).Data);
+      StoreModelAttribute(modelEntity, "ValidationMeanSquaredError", bestModelScope.GetVariableValue<DoubleData>("ValidationQuality", false).Data);
+      StoreModelAttribute(modelEntity, "TrainingMeanAbsolutePercentageError", bestModelScope.GetVariableValue<DoubleData>("TrainingMAPE", false).Data);
+      StoreModelAttribute(modelEntity, "ValidationMeanAbsolutePercentageError", bestModelScope.GetVariableValue<DoubleData>("ValidationMAPE", false).Data);
+      StoreModelAttribute(modelEntity, "TreeSize", bestModelScope.GetVariableValue<IntData>("TreeSize", false).Data);
+      StoreModelAttribute(modelEntity, "TreeHeight", bestModelScope.GetVariableValue<IntData>("TreeHeight", false).Data);
+      StoreModelAttribute(modelEntity, "EvaluatedSolutions", bestModelScope.GetVariableValue<IntData>("EvaluatedSolutions", false).Data);
+       
+      byte[] serializedModel = PersistenceManager.SaveToGZip(bestModelScope.GetVariableValue("FunctionTree", false));
+      store.Add(new Statement(modelEntity, Ontology.PredicateSerializedData, new Literal(serializedModel)));
 
-      Scope bestModelScope = finishedEngine.GlobalScope.GetVariableValue<Scope>("BestValidationSolution", false);
-      double validationMape = bestModelScope.GetVariableValue<DoubleData>("ValidationMAPE", false).Data;
-      Entity validationMapeAttr = new Entity(Ontology.CedmaNameSpace + Guid.NewGuid());
-      store.Add(new Statement(modelEntity, Ontology.PredicateModelAttribute, validationMapeAttr));
-      store.Add(new Statement(validationMapeAttr, Ontology.PredicateModelAttributeName, new Literal("ValidationMeanAbsolutePercentageError")));
-      store.Add(new Statement(validationMapeAttr, Ontology.PredicateModelAttributeValue, new Literal(validationMape)));
-      store.Add(new Statement(validationMapeAttr, Ontology.PredicateModelAttributeType, Ontology.TypeOrdinalAttribute));
+    }
+
+    private void StoreModelAttribute(Entity model, string name, object value) {
+      Entity attr = new Entity(Ontology.CedmaNameSpace + Guid.NewGuid());
+      store.Add(new Statement(model, Ontology.PredicateModelAttribute, attr));
+      store.Add(new Statement(attr, Ontology.PredicateModelAttributeName, new Literal(name)));
+      store.Add(new Statement(attr, Ontology.PredicateModelAttributeValue, new Literal(value)));
+      store.Add(new Statement(attr, Ontology.PredicateModelAttributeType, Ontology.TypeOrdinalAttribute));
     }
   }
Index: /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.GP.StructureIdentification/StandardGP.cs
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.GP.StructureIdentification/StandardGP.cs	(revision 1114)
+++ /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.GP.StructureIdentification/StandardGP.cs	(revision 1115)
@@ -332,14 +332,14 @@
       solutionStorer.GetVariableInfo("BestSolution").ActualName = "BestValidationSolution";
       SequentialProcessor bestSolutionProcessor = new SequentialProcessor();
-      MeanAbsolutePercentageErrorEvaluator mapeEvaluator = new MeanAbsolutePercentageErrorEvaluator();
-      mapeEvaluator.Name = "ValidationMapeEvaluator";
-      mapeEvaluator.GetVariableInfo("MAPE").ActualName = "ValidationMAPE";
-      mapeEvaluator.GetVariableInfo("SamplesStart").ActualName = "ValidationSamplesStart";
-      mapeEvaluator.GetVariableInfo("SamplesEnd").ActualName = "ValidationSamplesEnd";
-      CoefficientOfDeterminationEvaluator r2Evaluator = new CoefficientOfDeterminationEvaluator();
-      r2Evaluator.Name = "ValidationR2Evaluator";
-      r2Evaluator.GetVariableInfo("R2").ActualName = "ValidationR2";
-      r2Evaluator.GetVariableInfo("SamplesStart").ActualName = "ValidationSamplesStart";
-      r2Evaluator.GetVariableInfo("SamplesEnd").ActualName = "ValidationSamplesEnd";
+      MeanAbsolutePercentageErrorEvaluator trainingMapeEvaluator = new MeanAbsolutePercentageErrorEvaluator();
+      trainingMapeEvaluator.Name = "ValidationMapeEvaluator";
+      trainingMapeEvaluator.GetVariableInfo("MAPE").ActualName = "TrainingMAPE";
+      trainingMapeEvaluator.GetVariableInfo("SamplesStart").ActualName = "TrainingSamplesStart";
+      trainingMapeEvaluator.GetVariableInfo("SamplesEnd").ActualName = "TrainingSamplesEnd";
+      MeanAbsolutePercentageErrorEvaluator validationMapeEvaluator = new MeanAbsolutePercentageErrorEvaluator();
+      validationMapeEvaluator.Name = "ValidationMapeEvaluator";
+      validationMapeEvaluator.GetVariableInfo("MAPE").ActualName = "ValidationMAPE";
+      validationMapeEvaluator.GetVariableInfo("SamplesStart").ActualName = "ValidationSamplesStart";
+      validationMapeEvaluator.GetVariableInfo("SamplesEnd").ActualName = "ValidationSamplesEnd";
       ProgrammableOperator progOperator = new ProgrammableOperator();
       progOperator.RemoveVariableInfo("Result");
@@ -350,6 +350,6 @@
 ";
       solutionStorer.AddSubOperator(bestSolutionProcessor);
-      bestSolutionProcessor.AddSubOperator(mapeEvaluator);
-      bestSolutionProcessor.AddSubOperator(r2Evaluator);
+      bestSolutionProcessor.AddSubOperator(trainingMapeEvaluator);
+      bestSolutionProcessor.AddSubOperator(validationMapeEvaluator);
       bestSolutionProcessor.AddSubOperator(progOperator);
       return solutionStorer;
