Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Administration/AdministrationService.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Administration/AdministrationService.cs	(revision 5481)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Administration/AdministrationService.cs	(revision 5482)
@@ -22,7 +22,5 @@
 using System;
 using System.Collections.Generic;
-using System.Data.Linq;
 using System.Linq;
-using System.Security.Cryptography;
 using System.ServiceModel;
 using HeuristicLab.Services.OKB.DataAccess;
@@ -35,9 +33,4 @@
   public class AdministrationService : IAdministrationService {
     #region Platform Methods
-    public DataTransfer.Platform GetPlatform(long id) {
-      using (OKBDataContext okb = new OKBDataContext()) {
-        return Convert.ToDto(okb.Platforms.FirstOrDefault(x => x.Id == id));
-      }
-    }
     public IEnumerable<DataTransfer.Platform> GetPlatforms() {
       using (OKBDataContext okb = new OKBDataContext()) {
@@ -69,57 +62,5 @@
     #endregion
 
-    #region DataType Methods
-    public DataTransfer.DataType GetDataType(long id) {
-      using (OKBDataContext okb = new OKBDataContext()) {
-        return Convert.ToDto(okb.DataTypes.FirstOrDefault(x => x.Id == id));
-      }
-    }
-    public long AddDataType(DataTransfer.DataType dto) {
-      using (OKBDataContext okb = new OKBDataContext()) {
-        var entity = okb.DataTypes.Where(x => (x.PlatformId == dto.PlatformId) && (x.Name == dto.Name) && (x.TypeName == dto.TypeName)).FirstOrDefault();
-        if (entity == null) {
-          entity = Convert.ToEntity(dto); entity.Id = 0;
-          okb.DataTypes.InsertOnSubmit(entity);
-          okb.SubmitChanges();
-        }
-        return entity.Id;
-      }
-    }
-    #endregion
-
-    #region BinaryData Methods
-    public long GetBinaryDataId(byte[] hash) {
-      using (OKBDataContext okb = new OKBDataContext()) {
-        var id = okb.BinaryDatas.Where(x => x.Hash.Equals(hash)).Select(x => x.Id).FirstOrDefault();
-        if (id == 0) return -1;
-        else return id;
-      }
-    }
-    public long AddBinaryData(DataTransfer.BinaryData dto) {
-      byte[] hash;
-      using (SHA1 sha1 = SHA1.Create()) {
-        hash = sha1.ComputeHash(dto.Data);
-      }
-
-      using (OKBDataContext okb = new OKBDataContext()) {
-        var id = okb.BinaryDatas.Where(x => x.Hash.Equals(hash)).Select(x => x.Id).FirstOrDefault();
-        if (id != 0) {
-          return id;
-        } else {
-          DataAccess.BinaryData entity = Convert.ToEntity(dto); entity.Id = 0;
-          okb.BinaryDatas.InsertOnSubmit(entity);
-          okb.SubmitChanges();
-          return entity.Id;
-        }
-      }
-    }
-    #endregion
-
     #region AlgorithmClass Methods
-    public DataTransfer.AlgorithmClass GetAlgorithmClass(long id) {
-      using (OKBDataContext okb = new OKBDataContext()) {
-        return Convert.ToDto(okb.AlgorithmClasses.FirstOrDefault(x => x.Id == id));
-      }
-    }
     public IEnumerable<DataTransfer.AlgorithmClass> GetAlgorithmClasses() {
       using (OKBDataContext okb = new OKBDataContext()) {
@@ -152,9 +93,4 @@
 
     #region Algorithm Methods
-    public DataTransfer.Algorithm GetAlgorithm(long id) {
-      using (OKBDataContext okb = new OKBDataContext()) {
-        return Convert.ToDto(okb.Algorithms.FirstOrDefault(x => x.Id == id));
-      }
-    }
     public IEnumerable<DataTransfer.Algorithm> GetAlgorithms() {
       using (OKBDataContext okb = new OKBDataContext()) {
@@ -164,5 +100,5 @@
     public long AddAlgorithm(DataTransfer.Algorithm dto) {
       using (OKBDataContext okb = new OKBDataContext()) {
-        DataAccess.Algorithm entity = Convert.ToEntity(dto); entity.Id = 0;
+        DataAccess.Algorithm entity = Convert.ToEntity(dto, okb); entity.Id = 0;
         okb.Algorithms.InsertOnSubmit(entity);
         okb.SubmitChanges();
@@ -173,5 +109,5 @@
       using (OKBDataContext okb = new OKBDataContext()) {
         DataAccess.Algorithm entity = okb.Algorithms.FirstOrDefault(x => x.Id == dto.Id);
-        Convert.ToEntity(dto, entity);
+        Convert.ToEntity(dto, entity, okb);
         okb.SubmitChanges();
       }
@@ -196,10 +132,15 @@
       }
     }
-    public DataTransfer.BinaryData GetAlgorithmData(long algorithmId) {
-      using (OKBDataContext okb = new OKBDataContext()) {
-        DataLoadOptions dlo = new DataLoadOptions();
-        dlo.LoadWith<Algorithm>(x => x.BinaryData);
-        okb.LoadOptions = dlo;
-        return Convert.ToDto(okb.Algorithms.Where(x => x.Id == algorithmId).Select(x => x.BinaryData).FirstOrDefault());
+    public byte[] GetAlgorithmData(long algorithmId) {
+      using (OKBDataContext okb = new OKBDataContext()) {
+        return okb.Algorithms.Where(x => x.Id == algorithmId).Select(x => x.BinaryData.Data.ToArray()).FirstOrDefault();
+      }
+    }
+    public void UpdateAlgorithmData(long algorithmId, byte[] data) {
+      using (OKBDataContext okb = new OKBDataContext()) {
+        var entity = okb.Algorithms.Where(x => x.Id == algorithmId).FirstOrDefault();
+        if (entity != null)
+          entity.BinaryData = Convert.ToEntity(data, okb);
+        okb.SubmitChanges();
       }
     }
@@ -207,9 +148,4 @@
 
     #region ProblemClass Methods
-    public DataTransfer.ProblemClass GetProblemClass(long id) {
-      using (OKBDataContext okb = new OKBDataContext()) {
-        return Convert.ToDto(okb.ProblemClasses.FirstOrDefault(x => x.Id == id));
-      }
-    }
     public IEnumerable<DataTransfer.ProblemClass> GetProblemClasses() {
       using (OKBDataContext okb = new OKBDataContext()) {
@@ -242,9 +178,4 @@
 
     #region Problem Methods
-    public DataTransfer.Problem GetProblem(long id) {
-      using (OKBDataContext okb = new OKBDataContext()) {
-        return Convert.ToDto(okb.Problems.FirstOrDefault(x => x.Id == id));
-      }
-    }
     public IEnumerable<DataTransfer.Problem> GetProblems() {
       using (OKBDataContext okb = new OKBDataContext()) {
@@ -254,5 +185,5 @@
     public long AddProblem(DataTransfer.Problem dto) {
       using (OKBDataContext okb = new OKBDataContext()) {
-        DataAccess.Problem entity = Convert.ToEntity(dto); entity.Id = 0;
+        DataAccess.Problem entity = Convert.ToEntity(dto, okb); entity.Id = 0;
         okb.Problems.InsertOnSubmit(entity);
         okb.SubmitChanges();
@@ -263,5 +194,5 @@
       using (OKBDataContext okb = new OKBDataContext()) {
         DataAccess.Problem entity = okb.Problems.FirstOrDefault(x => x.Id == dto.Id);
-        Convert.ToEntity(dto, entity);
+        Convert.ToEntity(dto, entity, okb);
         okb.SubmitChanges();
       }
@@ -286,63 +217,14 @@
       }
     }
-    public DataTransfer.BinaryData GetProblemData(long problemId) {
-      using (OKBDataContext okb = new OKBDataContext()) {
-        DataLoadOptions dlo = new DataLoadOptions();
-        dlo.LoadWith<Problem>(x => x.BinaryData);
-        okb.LoadOptions = dlo;
-        return Convert.ToDto(okb.Problems.Where(x => x.Id == problemId).Select(x => x.BinaryData).FirstOrDefault());
-      }
-    }
-    #endregion
-
-    #region Run Methods
-    public DataTransfer.Run GetRun(long id) {
-      using (OKBDataContext okb = new OKBDataContext()) {
-        DataLoadOptions dlo = new DataLoadOptions();
-        dlo.LoadWith<Run>(x => x.Values);
-        dlo.LoadWith<Value>(x => x.ValueName);
-        okb.LoadOptions = dlo;
-        return Convert.ToDto(okb.Runs.FirstOrDefault(x => x.Id == id));
-      }
-    }
-    public IEnumerable<DataTransfer.Run> GetRuns(long algorithmId, long problemId) {
-      using (OKBDataContext okb = new OKBDataContext()) {
-        DataLoadOptions dlo = new DataLoadOptions();
-        dlo.LoadWith<Run>(x => x.Values);
-        dlo.LoadWith<Value>(x => x.ValueName);
-        okb.LoadOptions = dlo;
-        if ((algorithmId != 0) && (problemId != 0))
-          return okb.Runs.Where(x => (x.AlgorithmId == algorithmId) && (x.ProblemId == problemId)).Select(x => Convert.ToDto(x)).ToArray();
-        else if (algorithmId != 0)
-          return okb.Runs.Where(x => x.AlgorithmId == algorithmId).Select(x => Convert.ToDto(x)).ToArray();
-        else if (problemId != 0)
-          return okb.Runs.Where(x => x.ProblemId == problemId).Select(x => Convert.ToDto(x)).ToArray();
-        else
-          return okb.Runs.Select(x => Convert.ToDto(x)).ToArray();
-      }
-    }
-    public long AddRun(DataTransfer.Run dto) {
-      using (OKBDataContext okb = new OKBDataContext()) {
-        DataAccess.Run entity = Convert.ToEntity(dto); entity.Id = 0;
-        okb.Runs.InsertOnSubmit(entity);
-        okb.SubmitChanges();
-        return entity.Id;
-      }
-    }
-    public void DeleteRun(long id) {
-      using (OKBDataContext okb = new OKBDataContext()) {
-        IEnumerable<DataAccess.ResultBlobValue> resultBlobValues = okb.ResultBlobValues.Where(x => x.RunId == id);
-        okb.ResultBlobValues.DeleteAllOnSubmit(resultBlobValues);
-        IEnumerable<DataAccess.ResultBoolValue> resultBoolValues = okb.ResultBoolValues.Where(x => x.RunId == id);
-        okb.ResultBoolValues.DeleteAllOnSubmit(resultBoolValues);
-        IEnumerable<DataAccess.ResultFloatValue> resultFloatValues = okb.ResultFloatValues.Where(x => x.RunId == id);
-        okb.ResultFloatValues.DeleteAllOnSubmit(resultFloatValues);
-        IEnumerable<DataAccess.ResultIntValue> resultIntValues = okb.ResultIntValues.Where(x => x.RunId == id);
-        okb.ResultIntValues.DeleteAllOnSubmit(resultIntValues);
-        IEnumerable<DataAccess.ResultStringValue> resultStringValues = okb.ResultStringValues.Where(x => x.RunId == id);
-        okb.ResultStringValues.DeleteAllOnSubmit(resultStringValues);
-
-        DataAccess.Run entity = okb.Runs.FirstOrDefault(x => x.Id == id);
-        if (entity != null) okb.Runs.DeleteOnSubmit(entity);
+    public byte[] GetProblemData(long problemId) {
+      using (OKBDataContext okb = new OKBDataContext()) {
+        return okb.Problems.Where(x => x.Id == problemId).Select(x => x.BinaryData.Data.ToArray()).FirstOrDefault();
+      }
+    }
+    public void UpdateProblemData(long problemId, byte[] data) {
+      using (OKBDataContext okb = new OKBDataContext()) {
+        var entity = okb.Problems.Where(x => x.Id == problemId).FirstOrDefault();
+        if (entity != null)
+          entity.BinaryData = Convert.ToEntity(data, okb);
         okb.SubmitChanges();
       }
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Administration/Convert.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Administration/Convert.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Administration/Convert.cs	(revision 5482)
@@ -0,0 +1,137 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Linq;
+using System.Security.Cryptography;
+using DA = HeuristicLab.Services.OKB.DataAccess;
+using DT = HeuristicLab.Services.OKB.Administration.DataTransfer;
+
+namespace HeuristicLab.Services.OKB.Administration {
+  public static class Convert {
+    #region Platform
+    public static DT.Platform ToDto(DA.Platform source) {
+      if (source == null) return null;
+      return new DT.Platform { Id = source.Id, Name = source.Name, Description = source.Description };
+    }
+    public static DA.Platform ToEntity(DT.Platform source) {
+      if (source == null) return null;
+      return new DA.Platform { Id = source.Id, Name = source.Name, Description = source.Description };
+    }
+    public static void ToEntity(DT.Platform source, DA.Platform target) {
+      if ((source != null) && (target != null)) {
+        target.Id = source.Id; target.Name = source.Name; target.Description = source.Description;
+      }
+    }
+    #endregion
+
+    #region AlgorithmClass
+    public static DT.AlgorithmClass ToDto(DA.AlgorithmClass source) {
+      if (source == null) return null;
+      return new DT.AlgorithmClass { Id = source.Id, Name = source.Name, Description = source.Description };
+    }
+    public static DA.AlgorithmClass ToEntity(DT.AlgorithmClass source) {
+      if (source == null) return null;
+      return new DA.AlgorithmClass { Id = source.Id, Name = source.Name, Description = source.Description };
+    }
+    public static void ToEntity(DT.AlgorithmClass source, DA.AlgorithmClass target) {
+      if ((source != null) && (target != null)) {
+        target.Id = source.Id; target.Name = source.Name; target.Description = source.Description;
+      }
+    }
+    #endregion
+
+    #region Algorithm
+    public static DT.Algorithm ToDto(DA.Algorithm source) {
+      if (source == null) return null;
+      return new DT.Algorithm { Id = source.Id, Name = source.Name, Description = source.Description, PlatformId = source.PlatformId, AlgorithmClassId = source.AlgorithmClassId, DataType = Convert.ToDto(source.DataType) };
+    }
+    public static DA.Algorithm ToEntity(DT.Algorithm source, DA.OKBDataContext okb) {
+      if (source == null) return null;
+      return new DA.Algorithm { Id = source.Id, Name = source.Name, Description = source.Description, PlatformId = source.PlatformId, AlgorithmClassId = source.AlgorithmClassId, DataType = Convert.ToEntity(source.DataType, okb) };
+    }
+    public static void ToEntity(DT.Algorithm source, DA.Algorithm target, DA.OKBDataContext okb) {
+      if ((source != null) && (target != null)) {
+        target.Id = source.Id; target.Name = source.Name; target.Description = source.Description; target.PlatformId = source.PlatformId; target.AlgorithmClassId = source.AlgorithmClassId; target.DataType = Convert.ToEntity(source.DataType, okb);
+      }
+    }
+    #endregion
+
+    #region ProblemClass
+    public static DT.ProblemClass ToDto(DA.ProblemClass source) {
+      if (source == null) return null;
+      return new DT.ProblemClass { Id = source.Id, Name = source.Name, Description = source.Description };
+    }
+    public static DA.ProblemClass ToEntity(DT.ProblemClass source) {
+      if (source == null) return null;
+      return new DA.ProblemClass { Id = source.Id, Name = source.Name, Description = source.Description };
+    }
+    public static void ToEntity(DT.ProblemClass source, DA.ProblemClass target) {
+      if ((source != null) && (target != null)) {
+        target.Id = source.Id; target.Name = source.Name; target.Description = source.Description;
+      }
+    }
+    #endregion
+
+    #region Problem
+    public static DT.Problem ToDto(DA.Problem source) {
+      if (source == null) return null;
+      return new DT.Problem { Id = source.Id, Name = source.Name, Description = source.Description, PlatformId = source.PlatformId, ProblemClassId = source.ProblemClassId, DataType = Convert.ToDto(source.DataType) };
+    }
+    public static DA.Problem ToEntity(DT.Problem source, DA.OKBDataContext okb) {
+      if (source == null) return null;
+      return new DA.Problem { Id = source.Id, Name = source.Name, Description = source.Description, PlatformId = source.PlatformId, ProblemClassId = source.ProblemClassId, DataType = Convert.ToEntity(source.DataType, okb) };
+    }
+    public static void ToEntity(DT.Problem source, DA.Problem target, DA.OKBDataContext okb) {
+      if ((source != null) && (target != null)) {
+        target.Id = source.Id; target.Name = source.Name; target.Description = source.Description; target.PlatformId = source.PlatformId; target.ProblemClassId = source.ProblemClassId; target.DataType = Convert.ToEntity(source.DataType, okb);
+      }
+    }
+    #endregion
+
+    #region DataType
+    private static DT.DataType ToDto(DA.DataType source) {
+      if (source == null) return null;
+      return new DT.DataType { Name = source.Name, TypeName = source.TypeName };
+    }
+    private static DA.DataType ToEntity(DT.DataType source, DA.OKBDataContext okb) {
+      if (source == null) return null;
+      var entity = okb.DataTypes.Where(x => (x.Name == source.Name) && (x.TypeName == source.TypeName)).FirstOrDefault();
+      if (entity == null)
+        entity = new DA.DataType() { Id = 0, Name = source.Name, TypeName = source.TypeName };
+      return entity;
+    }
+    #endregion
+
+    #region BinaryData
+    internal static DA.BinaryData ToEntity(byte[] data, DA.OKBDataContext okb) {
+      if (data == null) return null;
+      byte[] hash;
+      using (SHA1 sha1 = SHA1.Create()) {
+        hash = sha1.ComputeHash(data);
+      }
+      var entity = okb.BinaryDatas.Where(x => x.Hash.Equals(hash)).FirstOrDefault();
+      if (entity == null)
+        entity = new DA.BinaryData() { Id = 0, Data = data };
+      return entity;
+    }
+    #endregion
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Administration/DataTransfer/Algorithm.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Administration/DataTransfer/Algorithm.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Administration/DataTransfer/Algorithm.cs	(revision 5482)
@@ -0,0 +1,34 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Administration.DataTransfer {
+  [DataContract]
+  public class Algorithm : NamedOKBItem {
+    [DataMember]
+    public long PlatformId { get; set; }
+    [DataMember]
+    public long AlgorithmClassId { get; set; }
+    [DataMember]
+    public DataType DataType { get; set; }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Administration/DataTransfer/AlgorithmClass.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Administration/DataTransfer/AlgorithmClass.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Administration/DataTransfer/AlgorithmClass.cs	(revision 5482)
@@ -0,0 +1,27 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Administration.DataTransfer {
+  [DataContract]
+  public class AlgorithmClass : NamedOKBItem { }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Administration/DataTransfer/DataType.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Administration/DataTransfer/DataType.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Administration/DataTransfer/DataType.cs	(revision 5482)
@@ -0,0 +1,32 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Administration.DataTransfer {
+  [DataContract]
+  public class DataType {
+    [DataMember]
+    public string Name { get; set; }
+    [DataMember]
+    public string TypeName { get; set; }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Administration/DataTransfer/NamedOKBItem.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Administration/DataTransfer/NamedOKBItem.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Administration/DataTransfer/NamedOKBItem.cs	(revision 5482)
@@ -0,0 +1,32 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Administration.DataTransfer {
+  [DataContract]
+  public abstract class NamedOKBItem : OKBItem {
+    [DataMember]
+    public string Name { get; set; }
+    [DataMember]
+    public string Description { get; set; }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Administration/DataTransfer/OKBItem.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Administration/DataTransfer/OKBItem.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Administration/DataTransfer/OKBItem.cs	(revision 5482)
@@ -0,0 +1,30 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Administration.DataTransfer {
+  [DataContract]
+  public abstract class OKBItem {
+    [DataMember]
+    public long Id { get; set; }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Administration/DataTransfer/Platform.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Administration/DataTransfer/Platform.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Administration/DataTransfer/Platform.cs	(revision 5482)
@@ -0,0 +1,27 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Administration.DataTransfer {
+  [DataContract]
+  public class Platform : NamedOKBItem { }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Administration/DataTransfer/Problem.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Administration/DataTransfer/Problem.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Administration/DataTransfer/Problem.cs	(revision 5482)
@@ -0,0 +1,34 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Administration.DataTransfer {
+  [DataContract]
+  public class Problem : NamedOKBItem {
+    [DataMember]
+    public long PlatformId { get; set; }
+    [DataMember]
+    public long ProblemClassId { get; set; }
+    [DataMember]
+    public DataType DataType { get; set; }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Administration/DataTransfer/ProblemClass.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Administration/DataTransfer/ProblemClass.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Administration/DataTransfer/ProblemClass.cs	(revision 5482)
@@ -0,0 +1,27 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Administration.DataTransfer {
+  [DataContract]
+  public class ProblemClass : NamedOKBItem { }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Administration/IAdministrationService.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Administration/IAdministrationService.cs	(revision 5481)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Administration/IAdministrationService.cs	(revision 5482)
@@ -24,5 +24,5 @@
 using System.Net.Security;
 using System.ServiceModel;
-using HeuristicLab.Services.OKB.DataTransfer;
+using HeuristicLab.Services.OKB.Administration.DataTransfer;
 
 namespace HeuristicLab.Services.OKB.Administration {
@@ -33,6 +33,4 @@
   public interface IAdministrationService {
     #region Platform Methods
-    [OperationContract]
-    Platform GetPlatform(long id);
     [OperationContract]
     IEnumerable<Platform> GetPlatforms();
@@ -45,21 +43,5 @@
     #endregion
 
-    #region DataType Methods
-    [OperationContract]
-    DataType GetDataType(long id);
-    [OperationContract]
-    long AddDataType(DataType dto);
-    #endregion
-
-    #region BinaryData Methods
-    [OperationContract]
-    long GetBinaryDataId(byte[] hash);
-    [OperationContract]
-    long AddBinaryData(BinaryData dto);
-    #endregion
-
     #region AlgorithmClass Methods
-    [OperationContract]
-    AlgorithmClass GetAlgorithmClass(long id);
     [OperationContract]
     IEnumerable<AlgorithmClass> GetAlgorithmClasses();
@@ -73,6 +55,4 @@
 
     #region Algorithm Methods
-    [OperationContract]
-    Algorithm GetAlgorithm(long id);
     [OperationContract]
     IEnumerable<Algorithm> GetAlgorithms();
@@ -88,10 +68,10 @@
     void UpdateAlgorithmUsers(long algorithmId, IEnumerable<Guid> users);
     [OperationContract]
-    BinaryData GetAlgorithmData(long algorithmId);
+    byte[] GetAlgorithmData(long algorithmId);
+    [OperationContract]
+    void UpdateAlgorithmData(long algorithmId, byte[] data);
     #endregion
 
     #region ProblemClass Methods
-    [OperationContract]
-    ProblemClass GetProblemClass(long id);
     [OperationContract]
     IEnumerable<ProblemClass> GetProblemClasses();
@@ -105,6 +85,4 @@
 
     #region Problem Methods
-    [OperationContract]
-    Problem GetProblem(long id);
     [OperationContract]
     IEnumerable<Problem> GetProblems();
@@ -120,16 +98,7 @@
     void UpdateProblemUsers(long problemId, IEnumerable<Guid> users);
     [OperationContract]
-    BinaryData GetProblemData(long problemId);
-    #endregion
-
-    #region Run Methods
+    byte[] GetProblemData(long problemId);
     [OperationContract]
-    Run GetRun(long id);
-    [OperationContract]
-    IEnumerable<Run> GetRuns(long algorithmId, long problemId);
-    [OperationContract]
-    long AddRun(Run dto);
-    [OperationContract]
-    void DeleteRun(long id);
+    void UpdateProblemData(long problemId, byte[] data);
     #endregion
   }
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/HeuristicLab.Services.OKB-3.3.csproj
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/HeuristicLab.Services.OKB-3.3.csproj	(revision 5481)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/HeuristicLab.Services.OKB-3.3.csproj	(revision 5482)
@@ -121,4 +121,13 @@
   <ItemGroup>
     <Compile Include="Administration\AdministrationService.cs" />
+    <Compile Include="Administration\Convert.cs" />
+    <Compile Include="Administration\DataTransfer\Algorithm.cs" />
+    <Compile Include="Administration\DataTransfer\AlgorithmClass.cs" />
+    <Compile Include="Administration\DataTransfer\DataType.cs" />
+    <Compile Include="Administration\DataTransfer\NamedOKBItem.cs" />
+    <Compile Include="Administration\DataTransfer\OKBItem.cs" />
+    <Compile Include="Administration\DataTransfer\Platform.cs" />
+    <Compile Include="Administration\DataTransfer\Problem.cs" />
+    <Compile Include="Administration\DataTransfer\ProblemClass.cs" />
     <Compile Include="Administration\IAdministrationService.cs" />
     <Compile Include="Authentication\AuthenticationService.cs" />
@@ -127,40 +136,146 @@
     <Compile Include="Convert.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="Query\Filters\AlgorithmClassNameFilter.cs" />
-    <Compile Include="Query\Filters\AlgorithmDataDataTypeNameFilter.cs" />
-    <Compile Include="Query\Filters\AlgorithmNameFilter.cs" />
-    <Compile Include="Query\Filters\AlgorithmParameterBlobValueDataTypeNameFilter.cs" />
-    <Compile Include="Query\Filters\AlgorithmParameterBlobValueValueFilter.cs" />
-    <Compile Include="Query\Filters\AlgorithmParameterBoolValueValueFilter.cs" />
-    <Compile Include="Query\Filters\AlgorithmParameterFloatValueValueFilter.cs" />
-    <Compile Include="Query\Filters\AlgorithmParameterIntValueValueFilter.cs" />
-    <Compile Include="Query\Filters\AlgorithmParameterNameFilter.cs" />
-    <Compile Include="Query\Filters\AlgorithmParameterStringValueValueFilter.cs" />
-    <Compile Include="Query\Filters\AlgorithmPlatformNameFilter.cs" />
-    <Compile Include="Query\Filters\AndFilter.cs" />
-    <Compile Include="Query\Filters\OrFilter.cs" />
-    <Compile Include="Query\Filters\ProblemClassNameFilter.cs" />
-    <Compile Include="Query\Filters\ProblemDataDataTypeNameFilter.cs" />
-    <Compile Include="Query\Filters\ProblemNameFilter.cs" />
-    <Compile Include="Query\Filters\ProblemParameterBlobValueDataTypeNameFilter.cs" />
-    <Compile Include="Query\Filters\ProblemParameterBlobValueValueFilter.cs" />
-    <Compile Include="Query\Filters\ProblemParameterBoolValueValueFilter.cs" />
-    <Compile Include="Query\Filters\ProblemParameterFloatValueValueFilter.cs" />
-    <Compile Include="Query\Filters\ProblemParameterIntValueValueFilter.cs" />
-    <Compile Include="Query\Filters\ProblemParameterNameFilter.cs" />
-    <Compile Include="Query\Filters\ProblemParameterStringValueValueFilter.cs" />
-    <Compile Include="Query\Filters\ProblemPlatformNameFilter.cs" />
-    <Compile Include="Query\Filters\ResultBlobValueDataTypeNameFilter.cs" />
-    <Compile Include="Query\Filters\ResultBlobValueValueFilter.cs" />
-    <Compile Include="Query\Filters\ResultBoolValueValueFilter.cs" />
-    <Compile Include="Query\Filters\ResultFloatValueValueFilter.cs" />
-    <Compile Include="Query\Filters\ResultIntValueValueFilter.cs" />
-    <Compile Include="Query\Filters\ResultNameFilter.cs" />
-    <Compile Include="Query\Filters\ResultStringValueValueFilter.cs" />
-    <Compile Include="Query\Filters\RunClientNameFilter.cs" />
-    <Compile Include="Query\Filters\RunCreatedDateFilter.cs" />
-    <Compile Include="Query\Filters\RunRandomSeedFilter.cs" />
-    <Compile Include="Query\Filters\RunUserNameFilter.cs" />
-    <Compile Include="Query\IFilter.cs" />
+    <Compile Include="Query\DataTransfer\Algorithm.cs" />
+    <Compile Include="Query\DataTransfer\AlgorithmClass.cs" />
+    <Compile Include="Query\DataTransfer\BinaryValue.cs" />
+    <Compile Include="Query\DataTransfer\BooleanOperation.cs" />
+    <Compile Include="Query\DataTransfer\BoolValue.cs" />
+    <Compile Include="Query\DataTransfer\CombinedFilter.cs" />
+    <Compile Include="Query\DataTransfer\DataType.cs" />
+    <Compile Include="Query\DataTransfer\DoubleValue.cs" />
+    <Compile Include="Query\DataTransfer\EqualityComparison.cs" />
+    <Compile Include="Query\DataTransfer\EqualityComparisonFilter.cs" />
+    <Compile Include="Query\DataTransfer\Filter.cs" />
+    <Compile Include="Query\DataTransfer\FloatValue.cs" />
+    <Compile Include="Query\DataTransfer\IntValue.cs" />
+    <Compile Include="Query\DataTransfer\LongValue.cs" />
+    <Compile Include="Query\DataTransfer\NameEqualityComparisonBoolFilter.cs" />
+    <Compile Include="Query\DataTransfer\NameEqualityComparisonByteArrayFilter.cs" />
+    <Compile Include="Query\DataTransfer\NameOrdinalComparisonDoubleFilter.cs" />
+    <Compile Include="Query\DataTransfer\NameOrdinalComparisonFloatFilter.cs" />
+    <Compile Include="Query\DataTransfer\NameOrdinalComparisonIntFilter.cs" />
+    <Compile Include="Query\DataTransfer\NameOrdinalComparisonLongFilter.cs" />
+    <Compile Include="Query\DataTransfer\NameStringComparisonAvailableValuesFilter.cs" />
+    <Compile Include="Query\DataTransfer\NameStringComparisonFilter.cs" />
+    <Compile Include="Query\DataTransfer\OrdinalComparison.cs" />
+    <Compile Include="Query\DataTransfer\OrdinalComparisonDateTimeFilter.cs" />
+    <Compile Include="Query\DataTransfer\OrdinalComparisonFilter.cs" />
+    <Compile Include="Query\DataTransfer\OrdinalComparisonIntFilter.cs" />
+    <Compile Include="Query\DataTransfer\OrdinalComparisonLongFilter.cs" />
+    <Compile Include="Query\DataTransfer\Platform.cs" />
+    <Compile Include="Query\DataTransfer\Problem.cs" />
+    <Compile Include="Query\DataTransfer\ProblemClass.cs" />
+    <Compile Include="Query\DataTransfer\Run.cs" />
+    <Compile Include="Query\DataTransfer\StringComparison.cs" />
+    <Compile Include="Query\DataTransfer\StringComparisonAvailableValuesFilter.cs" />
+    <Compile Include="Query\DataTransfer\StringComparisonFilter.cs" />
+    <Compile Include="Query\DataTransfer\StringValue.cs" />
+    <Compile Include="Query\DataTransfer\Value.cs" />
+    <Compile Include="Query\Filters\AlgorithmClassNameFilter.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Query\Filters\AlgorithmDataDataTypeNameFilter.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Query\Filters\AlgorithmNameFilter.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Query\Filters\AlgorithmParameterBlobValueDataTypeNameFilter.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Query\Filters\AlgorithmParameterBlobValueValueFilter.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Query\Filters\AlgorithmParameterBoolValueValueFilter.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Query\Filters\AlgorithmParameterFloatValueValueFilter.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Query\Filters\AlgorithmParameterIntValueValueFilter.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Query\Filters\AlgorithmParameterNameFilter.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Query\Filters\AlgorithmParameterStringValueValueFilter.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Query\Filters\AlgorithmPlatformNameFilter.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Query\Filters\AndFilter.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Query\Filters\IFilter.cs" />
+    <Compile Include="Query\Filters\OrFilter.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Query\Filters\ProblemClassNameFilter.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Query\Filters\ProblemDataDataTypeNameFilter.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Query\Filters\ProblemNameFilter.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Query\Filters\ProblemParameterBlobValueDataTypeNameFilter.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Query\Filters\ProblemParameterBlobValueValueFilter.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Query\Filters\ProblemParameterBoolValueValueFilter.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Query\Filters\ProblemParameterFloatValueValueFilter.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Query\Filters\ProblemParameterIntValueValueFilter.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Query\Filters\ProblemParameterNameFilter.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Query\Filters\ProblemParameterStringValueValueFilter.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Query\Filters\ProblemPlatformNameFilter.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Query\Filters\ResultBlobValueDataTypeNameFilter.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Query\Filters\ResultBlobValueValueFilter.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Query\Filters\ResultBoolValueValueFilter.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Query\Filters\ResultFloatValueValueFilter.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Query\Filters\ResultIntValueValueFilter.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Query\Filters\ResultNameFilter.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Query\Filters\ResultStringValueValueFilter.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Query\Filters\RunClientNameFilter.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Query\Filters\RunCreatedDateFilter.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Query\Filters\RunRandomSeedFilter.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Query\Filters\RunUserNameFilter.cs">
+      <SubType>Code</SubType>
+    </Compile>
     <Compile Include="Query\IQueryService.cs" />
     <Compile Include="Query\QueryService.cs" />
@@ -200,8 +315,5 @@
     </ProjectReference>
   </ItemGroup>
-  <ItemGroup>
-    <Folder Include="Administration\DataTransfer\" />
-    <Folder Include="Query\DataTransfer\" />
-  </ItemGroup>
+  <ItemGroup />
   <ItemGroup>
     <Service Include="{3259AA49-8AA1-44D3-9025-A0B520596A8C}" />
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/Algorithm.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/Algorithm.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/Algorithm.cs	(revision 5482)
@@ -0,0 +1,38 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Query.DataTransfer {
+  [DataContract]
+  public class Algorithm {
+    [DataMember]
+    public string Name { get; set; }
+    [DataMember]
+    public string Description { get; set; }
+    [DataMember]
+    public Platform Platform { get; set; }
+    [DataMember]
+    public AlgorithmClass AlgorithmClass { get; set; }
+    [DataMember]
+    public DataType DataType { get; set; }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/AlgorithmClass.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/AlgorithmClass.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/AlgorithmClass.cs	(revision 5482)
@@ -0,0 +1,32 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Query.DataTransfer {
+  [DataContract]
+  public class AlgorithmClass {
+    [DataMember]
+    public string Name { get; set; }
+    [DataMember]
+    public string Description { get; set; }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/BinaryValue.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/BinaryValue.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/BinaryValue.cs	(revision 5482)
@@ -0,0 +1,30 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Query.DataTransfer {
+  [DataContract]
+  public class BinaryValue : Value {
+    [DataMember]
+    public long BinaryDataId { get; set; }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/BoolValue.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/BoolValue.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/BoolValue.cs	(revision 5482)
@@ -0,0 +1,30 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Query.DataTransfer {
+  [DataContract]
+  public class BoolValue : Value {
+    [DataMember]
+    public bool Value { get; set; }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/BooleanOperation.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/BooleanOperation.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/BooleanOperation.cs	(revision 5482)
@@ -0,0 +1,32 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Query.DataTransfer {
+  [DataContract]
+  public enum BooleanOperation {
+    [EnumMember]
+    And,
+    [EnumMember]
+    Or
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/CombinedFilter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/CombinedFilter.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/CombinedFilter.cs	(revision 5482)
@@ -0,0 +1,41 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Collections.Generic;
+using System.Linq;
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Query.DataTransfer {
+  [DataContract]
+  public class CombinedFilter : Filter {
+    [DataMember]
+    public BooleanOperation Operation { get; protected set; }
+    [DataMember]
+    public IEnumerable<Filter> Filters { get; set; }
+
+    public CombinedFilter(string filterTypeName, string label, BooleanOperation operation) {
+      FilterTypeName = filterTypeName;
+      Label = label;
+      Operation = operation;
+      Filters = Enumerable.Empty<Filter>();
+    }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/DataType.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/DataType.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/DataType.cs	(revision 5482)
@@ -0,0 +1,32 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Query.DataTransfer {
+  [DataContract]
+  public class DataType {
+    [DataMember]
+    public string Name { get; set; }
+    [DataMember]
+    public string TypeName { get; set; }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/DoubleValue.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/DoubleValue.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/DoubleValue.cs	(revision 5482)
@@ -0,0 +1,30 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Query.DataTransfer {
+  [DataContract]
+  public class DoubleValue : Value {
+    [DataMember]
+    public double Value { get; set; }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/EqualityComparison.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/EqualityComparison.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/EqualityComparison.cs	(revision 5482)
@@ -0,0 +1,32 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Query.DataTransfer {
+  [DataContract]
+  public enum EqualityComparison {
+    [EnumMember]
+    Equal,
+    [EnumMember]
+    NotEqual
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/EqualityComparisonFilter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/EqualityComparisonFilter.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/EqualityComparisonFilter.cs	(revision 5482)
@@ -0,0 +1,30 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Query.DataTransfer {
+  [DataContract]
+  public abstract class EqualityComparisonFilter : Filter {
+    [DataMember]
+    public EqualityComparison Comparison { get; set; }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/Filter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/Filter.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/Filter.cs	(revision 5482)
@@ -0,0 +1,46 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Query.DataTransfer {
+  [DataContract]
+  [KnownType(typeof(OrdinalComparisonDateTimeFilter))]
+  [KnownType(typeof(OrdinalComparisonIntFilter))]
+  [KnownType(typeof(OrdinalComparisonLongFilter))]
+  [KnownType(typeof(StringComparisonFilter))]
+  [KnownType(typeof(StringComparisonAvailableValuesFilter))]
+  [KnownType(typeof(NameEqualityComparisonBoolFilter))]
+  [KnownType(typeof(NameEqualityComparisonByteArrayFilter))]
+  [KnownType(typeof(NameOrdinalComparisonFloatFilter))]
+  [KnownType(typeof(NameOrdinalComparisonDoubleFilter))]
+  [KnownType(typeof(NameOrdinalComparisonIntFilter))]
+  [KnownType(typeof(NameOrdinalComparisonLongFilter))]
+  [KnownType(typeof(NameStringComparisonFilter))]
+  [KnownType(typeof(NameStringComparisonAvailableValuesFilter))]
+  [KnownType(typeof(CombinedFilter))]
+  public abstract class Filter {
+    [DataMember]
+    public string FilterTypeName { get; protected set; }
+    [DataMember]
+    public string Label { get; protected set; }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/FloatValue.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/FloatValue.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/FloatValue.cs	(revision 5482)
@@ -0,0 +1,30 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Query.DataTransfer {
+  [DataContract]
+  public class FloatValue : Value {
+    [DataMember]
+    public float Value { get; set; }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/IntValue.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/IntValue.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/IntValue.cs	(revision 5482)
@@ -0,0 +1,30 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Query.DataTransfer {
+  [DataContract]
+  public class IntValue : Value {
+    [DataMember]
+    public int Value { get; set; }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/LongValue.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/LongValue.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/LongValue.cs	(revision 5482)
@@ -0,0 +1,30 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Query.DataTransfer {
+  [DataContract]
+  public class LongValue : Value {
+    [DataMember]
+    public long Value { get; set; }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/NameEqualityComparisonBoolFilter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/NameEqualityComparisonBoolFilter.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/NameEqualityComparisonBoolFilter.cs	(revision 5482)
@@ -0,0 +1,38 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Query.DataTransfer {
+  [DataContract]
+  public class NameEqualityComparisonBoolFilter : EqualityComparisonFilter {
+    [DataMember]
+    public string Name { get; protected set; }
+    [DataMember]
+    public bool Value { get; set; }
+
+    public NameEqualityComparisonBoolFilter(string filterTypeName, string label, string name) {
+      FilterTypeName = filterTypeName;
+      Label = label;
+      Name = name;
+    }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/NameEqualityComparisonByteArrayFilter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/NameEqualityComparisonByteArrayFilter.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/NameEqualityComparisonByteArrayFilter.cs	(revision 5482)
@@ -0,0 +1,38 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Query.DataTransfer {
+  [DataContract]
+  public class NameEqualityComparisonByteArrayFilter : EqualityComparisonFilter {
+    [DataMember]
+    public string Name { get; protected set; }
+    [DataMember]
+    public byte[] Value { get; set; }
+
+    public NameEqualityComparisonByteArrayFilter(string filterTypeName, string label, string name) {
+      FilterTypeName = filterTypeName;
+      Label = label;
+      Name = name;
+    }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/NameOrdinalComparisonDoubleFilter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/NameOrdinalComparisonDoubleFilter.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/NameOrdinalComparisonDoubleFilter.cs	(revision 5482)
@@ -0,0 +1,38 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Query.DataTransfer {
+  [DataContract]
+  public class NameOrdinalComparisonDoubleFilter : OrdinalComparisonFilter {
+    [DataMember]
+    public string Name { get; protected set; }
+    [DataMember]
+    public double Value { get; set; }
+
+    public NameOrdinalComparisonDoubleFilter(string filterTypeName, string label, string name) {
+      FilterTypeName = filterTypeName;
+      Label = label;
+      Name = name;
+    }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/NameOrdinalComparisonFloatFilter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/NameOrdinalComparisonFloatFilter.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/NameOrdinalComparisonFloatFilter.cs	(revision 5482)
@@ -0,0 +1,38 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Query.DataTransfer {
+  [DataContract]
+  public class NameOrdinalComparisonFloatFilter : OrdinalComparisonFilter {
+    [DataMember]
+    public string Name { get; protected set; }
+    [DataMember]
+    public float Value { get; set; }
+
+    public NameOrdinalComparisonFloatFilter(string filterTypeName, string label, string name) {
+      FilterTypeName = filterTypeName;
+      Label = label;
+      Name = name;
+    }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/NameOrdinalComparisonIntFilter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/NameOrdinalComparisonIntFilter.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/NameOrdinalComparisonIntFilter.cs	(revision 5482)
@@ -0,0 +1,38 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Query.DataTransfer {
+  [DataContract]
+  public class NameOrdinalComparisonIntFilter : OrdinalComparisonFilter {
+    [DataMember]
+    public string Name { get; protected set; }
+    [DataMember]
+    public int Value { get; set; }
+
+    public NameOrdinalComparisonIntFilter(string filterTypeName, string label, string name) {
+      FilterTypeName = filterTypeName;
+      Label = label;
+      Name = name;
+    }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/NameOrdinalComparisonLongFilter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/NameOrdinalComparisonLongFilter.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/NameOrdinalComparisonLongFilter.cs	(revision 5482)
@@ -0,0 +1,38 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Query.DataTransfer {
+  [DataContract]
+  public class NameOrdinalComparisonLongFilter : OrdinalComparisonFilter {
+    [DataMember]
+    public string Name { get; protected set; }
+    [DataMember]
+    public long Value { get; set; }
+
+    public NameOrdinalComparisonLongFilter(string filterTypeName, string label, string name) {
+      FilterTypeName = filterTypeName;
+      Label = label;
+      Name = name;
+    }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/NameStringComparisonAvailableValuesFilter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/NameStringComparisonAvailableValuesFilter.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/NameStringComparisonAvailableValuesFilter.cs	(revision 5482)
@@ -0,0 +1,36 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Collections.Generic;
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Query.DataTransfer {
+  [DataContract]
+  public class NameStringComparisonAvailableValuesFilter : NameStringComparisonFilter {
+    [DataMember]
+    public IEnumerable<string> AvailableValues { get; protected set; }
+
+    public NameStringComparisonAvailableValuesFilter(string filterTypeName, string label, string name, IEnumerable<string> availableValues)
+      : base(filterTypeName, label, name) {
+      AvailableValues = availableValues;
+    }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/NameStringComparisonFilter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/NameStringComparisonFilter.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/NameStringComparisonFilter.cs	(revision 5482)
@@ -0,0 +1,35 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Query.DataTransfer {
+  [DataContract]
+  public class NameStringComparisonFilter : StringComparisonFilter {
+    [DataMember]
+    public string Name { get; protected set; }
+
+    public NameStringComparisonFilter(string filterTypeName, string label, string name)
+      : base(filterTypeName, label) {
+      Name = name;
+    }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/OrdinalComparison.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/OrdinalComparison.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/OrdinalComparison.cs	(revision 5482)
@@ -0,0 +1,40 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Query.DataTransfer {
+  [DataContract]
+  public enum OrdinalComparison {
+    [EnumMember]
+    Less,
+    [EnumMember]
+    LessOrEqual,
+    [EnumMember]
+    Equal,
+    [EnumMember]
+    GreaterOrEqual,
+    [EnumMember]
+    Greater,
+    [EnumMember]
+    NotEqual
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/OrdinalComparisonDateTimeFilter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/OrdinalComparisonDateTimeFilter.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/OrdinalComparisonDateTimeFilter.cs	(revision 5482)
@@ -0,0 +1,36 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Query.DataTransfer {
+  [DataContract]
+  public class OrdinalComparisonDateTimeFilter : OrdinalComparisonFilter {
+    [DataMember]
+    public DateTime Value { get; set; }
+
+    public OrdinalComparisonDateTimeFilter(string filterTypeName, string label) {
+      FilterTypeName = filterTypeName;
+      Label = label;
+    }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/OrdinalComparisonFilter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/OrdinalComparisonFilter.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/OrdinalComparisonFilter.cs	(revision 5482)
@@ -0,0 +1,30 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Query.DataTransfer {
+  [DataContract]
+  public class OrdinalComparisonFilter : Filter {
+    [DataMember]
+    public OrdinalComparison Comparison { get; set; }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/OrdinalComparisonIntFilter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/OrdinalComparisonIntFilter.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/OrdinalComparisonIntFilter.cs	(revision 5482)
@@ -0,0 +1,35 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Query.DataTransfer {
+  [DataContract]
+  public class OrdinalComparisonIntFilter : OrdinalComparisonFilter {
+    [DataMember]
+    public int Value { get; set; }
+
+    public OrdinalComparisonIntFilter(string filterTypeName, string label) {
+      FilterTypeName = filterTypeName;
+      Label = label;
+    }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/OrdinalComparisonLongFilter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/OrdinalComparisonLongFilter.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/OrdinalComparisonLongFilter.cs	(revision 5482)
@@ -0,0 +1,35 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Query.DataTransfer {
+  [DataContract]
+  public class OrdinalComparisonLongFilter : OrdinalComparisonFilter {
+    [DataMember]
+    public long Value { get; set; }
+
+    public OrdinalComparisonLongFilter(string filterTypeName, string label) {
+      FilterTypeName = filterTypeName;
+      Label = label;
+    }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/Platform.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/Platform.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/Platform.cs	(revision 5482)
@@ -0,0 +1,32 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Query.DataTransfer {
+  [DataContract]
+  public class Platform {
+    [DataMember]
+    public string Name { get; set; }
+    [DataMember]
+    public string Description { get; set; }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/Problem.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/Problem.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/Problem.cs	(revision 5482)
@@ -0,0 +1,38 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Query.DataTransfer {
+  [DataContract]
+  public class Problem {
+    [DataMember]
+    public string Name { get; set; }
+    [DataMember]
+    public string Description { get; set; }
+    [DataMember]
+    public Platform Platform { get; set; }
+    [DataMember]
+    public ProblemClass ProblemClass { get; set; }
+    [DataMember]
+    public DataType DataType { get; set; }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/ProblemClass.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/ProblemClass.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/ProblemClass.cs	(revision 5482)
@@ -0,0 +1,32 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Query.DataTransfer {
+  [DataContract]
+  public class ProblemClass {
+    [DataMember]
+    public string Name { get; set; }
+    [DataMember]
+    public string Description { get; set; }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/Run.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/Run.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/Run.cs	(revision 5482)
@@ -0,0 +1,48 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Query.DataTransfer {
+  [DataContract]
+  public class Run {
+    [DataMember]
+    public long Id { get; set; }
+    [DataMember]
+    public Algorithm Algorithm { get; set; }
+    [DataMember]
+    public Problem Problem { get; set; }
+    [DataMember]
+    public int RandomSeed { get; set; }
+    [DataMember]
+    public DateTime CreatedDate { get; set; }
+    [DataMember]
+    public Guid UserId { get; set; }
+    [DataMember]
+    public Guid ClientId { get; set; }
+    [DataMember]
+    public IEnumerable<Value> ParameterValues { get; set; }
+    [DataMember]
+    public IEnumerable<Value> ResultValues { get; set; }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/StringComparison.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/StringComparison.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/StringComparison.cs	(revision 5482)
@@ -0,0 +1,40 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Query.DataTransfer {
+  [DataContract]
+  public enum StringComparison {
+    [EnumMember]
+    Equal,
+    [EnumMember]
+    NotEqual,
+    [EnumMember]
+    Contains,
+    [EnumMember]
+    NotContains,
+    [EnumMember]
+    Like,
+    [EnumMember]
+    NotLike
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/StringComparisonAvailableValuesFilter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/StringComparisonAvailableValuesFilter.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/StringComparisonAvailableValuesFilter.cs	(revision 5482)
@@ -0,0 +1,36 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Collections.Generic;
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Query.DataTransfer {
+  [DataContract]
+  public class StringComparisonAvailableValuesFilter : StringComparisonFilter {
+    [DataMember]
+    public IEnumerable<string> AvailableValues { get; protected set; }
+
+    public StringComparisonAvailableValuesFilter(string filterTypeName, string label, IEnumerable<string> availableValues)
+      : base(filterTypeName, label) {
+      AvailableValues = availableValues;
+    }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/StringComparisonFilter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/StringComparisonFilter.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/StringComparisonFilter.cs	(revision 5482)
@@ -0,0 +1,37 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Query.DataTransfer {
+  [DataContract]
+  public class StringComparisonFilter : Filter {
+    [DataMember]
+    public StringComparison Comparison { get; set; }
+    [DataMember]
+    public string Value { get; set; }
+
+    public StringComparisonFilter(string filterTypeName, string label) {
+      FilterTypeName = filterTypeName;
+      Label = label;
+    }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/StringValue.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/StringValue.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/StringValue.cs	(revision 5482)
@@ -0,0 +1,30 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Query.DataTransfer {
+  [DataContract]
+  public class StringValue : Value {
+    [DataMember]
+    public string Value { get; set; }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/Value.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/Value.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/DataTransfer/Value.cs	(revision 5482)
@@ -0,0 +1,39 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.OKB.Query.DataTransfer {
+  [DataContract]
+  [KnownType(typeof(BoolValue))]
+  [KnownType(typeof(IntValue))]
+  [KnownType(typeof(LongValue))]
+  [KnownType(typeof(FloatValue))]
+  [KnownType(typeof(DoubleValue))]
+  [KnownType(typeof(StringValue))]
+  [KnownType(typeof(BinaryValue))]
+  public abstract class Value {
+    [DataMember]
+    public string Name { get; set; }
+    [DataMember]
+    public DataType DataType { get; set; }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/AlgorithmClassNameFilter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/AlgorithmClassNameFilter.cs	(revision 5481)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/AlgorithmClassNameFilter.cs	(revision 5482)
@@ -24,5 +24,5 @@
 using HeuristicLab.Services.OKB.DataAccess;
 
-namespace HeuristicLab.Services.OKB {
+namespace HeuristicLab.Services.OKB.Query.Filters {
   public class AlgorithmClassNameFilter : IFilter {
     public DataTransfer.StringComparison Comparison { get; set; }
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/AlgorithmDataDataTypeNameFilter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/AlgorithmDataDataTypeNameFilter.cs	(revision 5481)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/AlgorithmDataDataTypeNameFilter.cs	(revision 5482)
@@ -24,5 +24,5 @@
 using HeuristicLab.Services.OKB.DataAccess;
 
-namespace HeuristicLab.Services.OKB {
+namespace HeuristicLab.Services.OKB.Query.Filters {
   public class AlgorithmDataDataTypeNameFilter : IFilter {
     public DataTransfer.StringComparison Comparison { get; set; }
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/AlgorithmNameFilter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/AlgorithmNameFilter.cs	(revision 5481)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/AlgorithmNameFilter.cs	(revision 5482)
@@ -24,5 +24,5 @@
 using HeuristicLab.Services.OKB.DataAccess;
 
-namespace HeuristicLab.Services.OKB {
+namespace HeuristicLab.Services.OKB.Query.Filters {
   public class AlgorithmNameFilter : IFilter {
     public DataTransfer.StringComparison Comparison { get; set; }
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/AlgorithmParameterBlobValueDataTypeNameFilter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/AlgorithmParameterBlobValueDataTypeNameFilter.cs	(revision 5481)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/AlgorithmParameterBlobValueDataTypeNameFilter.cs	(revision 5482)
@@ -21,9 +21,8 @@
 
 using System;
-using System.Linq;
 using System.Linq.Expressions;
 using HeuristicLab.Services.OKB.DataAccess;
 
-namespace HeuristicLab.Services.OKB {
+namespace HeuristicLab.Services.OKB.Query.Filters {
   public class AlgorithmParameterBlobValueDataTypeNameFilter : IFilter {
     public string Name { get; protected set; }
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/AlgorithmParameterBlobValueValueFilter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/AlgorithmParameterBlobValueValueFilter.cs	(revision 5481)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/AlgorithmParameterBlobValueValueFilter.cs	(revision 5482)
@@ -21,9 +21,8 @@
 
 using System;
-using System.Linq;
 using System.Linq.Expressions;
 using HeuristicLab.Services.OKB.DataAccess;
 
-namespace HeuristicLab.Services.OKB {
+namespace HeuristicLab.Services.OKB.Query.Filters {
   public class AlgorithmParameterBlobValueValueFilter : IFilter {
     public string Name { get; protected set; }
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/AlgorithmParameterBoolValueValueFilter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/AlgorithmParameterBoolValueValueFilter.cs	(revision 5481)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/AlgorithmParameterBoolValueValueFilter.cs	(revision 5482)
@@ -21,9 +21,8 @@
 
 using System;
-using System.Linq;
 using System.Linq.Expressions;
 using HeuristicLab.Services.OKB.DataAccess;
 
-namespace HeuristicLab.Services.OKB {
+namespace HeuristicLab.Services.OKB.Query.Filters {
   public class AlgorithmParameterBoolValueValueFilter : IFilter {
     public string Name { get; protected set; }
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/AlgorithmParameterFloatValueValueFilter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/AlgorithmParameterFloatValueValueFilter.cs	(revision 5481)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/AlgorithmParameterFloatValueValueFilter.cs	(revision 5482)
@@ -21,9 +21,8 @@
 
 using System;
-using System.Linq;
 using System.Linq.Expressions;
 using HeuristicLab.Services.OKB.DataAccess;
 
-namespace HeuristicLab.Services.OKB {
+namespace HeuristicLab.Services.OKB.Query.Filters {
   public class AlgorithmParameterFloatValueValueFilter : IFilter {
     public string Name { get; protected set; }
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/AlgorithmParameterIntValueValueFilter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/AlgorithmParameterIntValueValueFilter.cs	(revision 5481)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/AlgorithmParameterIntValueValueFilter.cs	(revision 5482)
@@ -21,9 +21,8 @@
 
 using System;
-using System.Linq;
 using System.Linq.Expressions;
 using HeuristicLab.Services.OKB.DataAccess;
 
-namespace HeuristicLab.Services.OKB {
+namespace HeuristicLab.Services.OKB.Query.Filters {
   public class AlgorithmParameterIntValueValueFilter : IFilter {
     public string Name { get; protected set; }
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/AlgorithmParameterNameFilter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/AlgorithmParameterNameFilter.cs	(revision 5481)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/AlgorithmParameterNameFilter.cs	(revision 5482)
@@ -21,9 +21,8 @@
 
 using System;
-using System.Linq;
 using System.Linq.Expressions;
 using HeuristicLab.Services.OKB.DataAccess;
 
-namespace HeuristicLab.Services.OKB {
+namespace HeuristicLab.Services.OKB.Query.Filters {
   public class AlgorithmParameterNameFilter : IFilter {
     public DataTransfer.StringComparison Comparison { get; set; }
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/AlgorithmParameterStringValueValueFilter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/AlgorithmParameterStringValueValueFilter.cs	(revision 5481)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/AlgorithmParameterStringValueValueFilter.cs	(revision 5482)
@@ -21,9 +21,8 @@
 
 using System;
-using System.Linq;
 using System.Linq.Expressions;
 using HeuristicLab.Services.OKB.DataAccess;
 
-namespace HeuristicLab.Services.OKB {
+namespace HeuristicLab.Services.OKB.Query.Filters {
   public class AlgorithmParameterStringValueValueFilter : IFilter {
     public string Name { get; protected set; }
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/AlgorithmPlatformNameFilter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/AlgorithmPlatformNameFilter.cs	(revision 5481)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/AlgorithmPlatformNameFilter.cs	(revision 5482)
@@ -24,5 +24,5 @@
 using HeuristicLab.Services.OKB.DataAccess;
 
-namespace HeuristicLab.Services.OKB {
+namespace HeuristicLab.Services.OKB.Query.Filters {
   public class AlgorithmPlatformNameFilter : IFilter {
     public DataTransfer.StringComparison Comparison { get; set; }
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/AndFilter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/AndFilter.cs	(revision 5481)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/AndFilter.cs	(revision 5482)
@@ -22,9 +22,8 @@
 using System;
 using System.Collections.Generic;
-using System.Linq;
 using System.Linq.Expressions;
 using HeuristicLab.Services.OKB.DataAccess;
 
-namespace HeuristicLab.Services.OKB {
+namespace HeuristicLab.Services.OKB.Query.Filters {
   public class AndFilter : IFilter {
     public List<IFilter> Filters { get; private set; }
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/IFilter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/IFilter.cs	(revision 5482)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/IFilter.cs	(revision 5482)
@@ -0,0 +1,30 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Linq.Expressions;
+using HeuristicLab.Services.OKB.DataAccess;
+
+namespace HeuristicLab.Services.OKB.Query.Filters {
+  public interface IFilter {
+    Expression<Func<Run, bool>> Expression { get; }
+  }
+}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/OrFilter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/OrFilter.cs	(revision 5481)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/OrFilter.cs	(revision 5482)
@@ -22,9 +22,8 @@
 using System;
 using System.Collections.Generic;
-using System.Linq;
 using System.Linq.Expressions;
 using HeuristicLab.Services.OKB.DataAccess;
 
-namespace HeuristicLab.Services.OKB {
+namespace HeuristicLab.Services.OKB.Query.Filters {
   public class OrFilter : IFilter {
     public List<IFilter> Filters { get; private set; }
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/ProblemClassNameFilter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/ProblemClassNameFilter.cs	(revision 5481)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/ProblemClassNameFilter.cs	(revision 5482)
@@ -24,5 +24,5 @@
 using HeuristicLab.Services.OKB.DataAccess;
 
-namespace HeuristicLab.Services.OKB {
+namespace HeuristicLab.Services.OKB.Query.Filters {
   public class ProblemClassNameFilter : IFilter {
     public DataTransfer.StringComparison Comparison { get; set; }
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/ProblemDataDataTypeNameFilter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/ProblemDataDataTypeNameFilter.cs	(revision 5481)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/ProblemDataDataTypeNameFilter.cs	(revision 5482)
@@ -24,5 +24,5 @@
 using HeuristicLab.Services.OKB.DataAccess;
 
-namespace HeuristicLab.Services.OKB {
+namespace HeuristicLab.Services.OKB.Query.Filters {
   public class ProblemDataDataTypeNameFilter : IFilter {
     public DataTransfer.StringComparison Comparison { get; set; }
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/ProblemNameFilter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/ProblemNameFilter.cs	(revision 5481)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/ProblemNameFilter.cs	(revision 5482)
@@ -24,5 +24,5 @@
 using HeuristicLab.Services.OKB.DataAccess;
 
-namespace HeuristicLab.Services.OKB {
+namespace HeuristicLab.Services.OKB.Query.Filters {
   public class ProblemNameFilter : IFilter {
     public DataTransfer.StringComparison Comparison { get; set; }
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/ProblemParameterBlobValueDataTypeNameFilter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/ProblemParameterBlobValueDataTypeNameFilter.cs	(revision 5481)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/Filters/ProblemParameterBlobValueDataTypeNameFilter.cs	(revision 5482)
@@ -21,9 +21,8 @@
 
 using System;
-using System.Linq;
 using System.Linq.Expressions;
 using HeuristicLab.Services.OKB.DataAccess;
 
-namespace HeuristicLab.Services.OKB {
+namespace HeuristicLab.Services.OKB.Query.Filters {
   public class ProblemParameterBlobValueDataTypeNameFilter : IFilter {
     public string Name { get; protected set; }
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/IFilter.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/IFilter.cs	(revision 5481)
+++ 	(revision )
@@ -1,30 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System;
-using System.Linq.Expressions;
-using HeuristicLab.Services.OKB.DataAccess;
-
-namespace HeuristicLab.Services.OKB.Query {
-  public interface IFilter {
-    Expression<Func<Run, bool>> Expression { get; }
-  }
-}
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/IQueryService.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/IQueryService.cs	(revision 5481)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/IQueryService.cs	(revision 5482)
@@ -23,5 +23,5 @@
 using System.Net.Security;
 using System.ServiceModel;
-using HeuristicLab.Services.OKB.DataTransfer;
+using HeuristicLab.Services.OKB.Query.DataTransfer;
 
 namespace HeuristicLab.Services.OKB.Query {
@@ -35,11 +35,11 @@
 
     [OperationContract]
-    long GetNumberOfQueryResults(Filter filter);
+    long GetNumberOfRuns(Filter filter);
 
     [OperationContract]
-    IEnumerable<long> GetQueryResultIds(Filter filter);
+    IEnumerable<long> GetRunIds(Filter filter);
 
     [OperationContract]
-    IEnumerable<QueryResult> GetQueryResults(IEnumerable<long> ids);
+    IEnumerable<Run> GetRuns(IEnumerable<long> ids);
   }
 }
Index: branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/QueryService.cs
===================================================================
--- branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/QueryService.cs	(revision 5481)
+++ branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Query/QueryService.cs	(revision 5482)
@@ -26,5 +26,5 @@
 using System.ServiceModel;
 using HeuristicLab.Services.OKB.DataAccess;
-using HeuristicLab.Services.OKB.DataTransfer;
+using HeuristicLab.Services.OKB.Query.DataTransfer;
 
 namespace HeuristicLab.Services.OKB.Query {
@@ -107,5 +107,5 @@
     }
 
-    public long GetNumberOfQueryResults(Filter filter) {
+    public long GetNumberOfRuns(Filter filter) {
       using (OKBDataContext okb = new OKBDataContext()) {
         return FilterRuns(okb.Runs, filter).LongCount();
@@ -113,5 +113,5 @@
     }
 
-    public IEnumerable<long> GetQueryResultIds(Filter filter) {
+    public IEnumerable<long> GetRunIds(Filter filter) {
       using (OKBDataContext okb = new OKBDataContext()) {
         return FilterRuns(okb.Runs, filter).Select(x => x.Id).ToArray();
@@ -119,5 +119,5 @@
     }
 
-    public IEnumerable<QueryResult> GetQueryResults(IEnumerable<long> ids) {
+    public IEnumerable<DataTransfer.Run> GetRuns(IEnumerable<long> ids) {
       using (OKBDataContext okb = new OKBDataContext()) {
         DataLoadOptions dlo = new DataLoadOptions();
