Free cookie consent management tool by TermsFeed Policy Generator

Changeset 2355 for trunk


Ignore:
Timestamp:
09/15/09 09:47:38 (15 years ago)
Author:
mkommend
Message:

stored model metadata into modeling.database
changed analyzermodel to use dictionary of string, object (ticket #731)

Location:
trunk/sources
Files:
4 added
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Modeling.Database.SQLServerCompact/3.2/DatabaseService.cs

    r2344 r2355  
    5656      DataLoadOptions dlo = new DataLoadOptions();
    5757      dlo.LoadWith<ModelResult>(mr => mr.Result);
     58      dlo.LoadWith<ModelMetaData>(mmd => mmd.MetaData);
    5859      dlo.LoadWith<InputVariableResult>(ir => ir.Variable);
    5960      dlo.LoadWith<InputVariableResult>(ir => ir.Result);
    6061      dlo.LoadWith<Model>(m => m.TargetVariable);
    61       dlo.LoadWith<Model>(m => m.Algorithm);
     62      dlo.LoadWith<Model>(m => m.Algorithm);     
    6263      ctx.LoadOptions = dlo;
    6364    }
     
    117118
    118119      // code to store meta-information for models (gkronber (8.9.09))
    119       //using (ModelingDataContext ctx = new ModelingDataContext(connection)) {
    120       //  foreach (KeyValuePair<string, double> pair in model.MetaData) {
    121       //    MetaData metaData = GetOrCreateMetaData(pair.Key);
    122       //    ctx.ModelMetaData.InsertOnSubmit(new ModelMetaData(m, metaData, pair.Value));
    123       //  }
    124       //  ctx.SubmitChanges();
    125       //}
     120      using (ModelingDataContext ctx = new ModelingDataContext(connection)) {
     121        foreach (KeyValuePair<string, double> pair in model.MetaData) {
     122          MetaData metaData = GetOrCreateMetaData(pair.Key);
     123          ctx.ModelMetaData.InsertOnSubmit(new ModelMetaData(m, metaData, pair.Value));
     124        }
     125        ctx.SubmitChanges();
     126      }
    126127
    127128      using (ModelingDataContext ctx = new ModelingDataContext(connection)) {
     
    267268    #endregion
    268269
     270    #region ModelMetaData
     271    public IEnumerable<IModelMetaData> GetModelMetaData(IModel model) {
     272      var metadata = from md in ctx.ModelMetaData
     273                     where md.Model == model
     274                     select md;
     275      return metadata.ToList().Cast<IModelMetaData>();
     276    }
     277    #endregion
     278
     279    #region MetaData
     280    public IEnumerable<IMetaData> GetAllMetaData() {
     281      return ctx.MetaData.ToList().Cast<IMetaData>();
     282    }
     283
     284    public MetaData GetOrCreateMetaData(string name) {
     285      MetaData metadata;
     286      using (ModelingDataContext ctx = new ModelingDataContext(connection)) {
     287        var md = from r in ctx.MetaData
     288                      where r.Name == name
     289                      select r;
     290        if (md.Count() == 0) {
     291          metadata = new MetaData(name);
     292          ctx.MetaData.InsertOnSubmit(metadata);
     293          ctx.SubmitChanges();
     294        } else if (md.Count() == 1)
     295          metadata = md.Single();
     296        else
     297          throw new ArgumentException("Could not get metadata. More than one metadata with the name " + name + " are saved in database.");
     298      }
     299      return metadata;
     300    }
     301
     302    #endregion
     303
    269304    #region Model
    270305    public IEnumerable<IModel> GetAllModels() {
  • trunk/sources/HeuristicLab.Modeling.Database.SQLServerCompact/3.2/HeuristicLab.Modeling.Database.SQLServerCompact-3.2.csproj

    r2223 r2355  
    121121    <Compile Include="DataObjects\InputVariable.cs" />
    122122    <Compile Include="DataObjects\InputVariableResult.cs" />
     123    <Compile Include="DataObjects\MetaData.cs" />
    123124    <Compile Include="DataObjects\Model.cs" />
    124125    <Compile Include="DataObjects\ModelData.cs" />
     126    <Compile Include="DataObjects\ModelMetaData.cs" />
    125127    <Compile Include="HeuristicLabModelingDatabaseSQLServerCompactPlugin.cs" />
    126128    <Compile Include="ModelingDataContext.cs" />
  • trunk/sources/HeuristicLab.Modeling.Database.SQLServerCompact/3.2/ModelingDataContext.cs

    r2229 r2355  
    6666    }
    6767
     68    public Table<ModelMetaData> ModelMetaData {
     69      get { return GetTable<ModelMetaData>(); }
     70    }
     71
     72    public Table<MetaData> MetaData {
     73      get { return GetTable<MetaData>(); }
     74    }
     75
    6876    public Table<InputVariable> InputVariables {
    6977      get { return GetTable<InputVariable>(); }
  • trunk/sources/HeuristicLab.Modeling.Database/3.2/HeuristicLab.Modeling.Database-3.2.csproj

    r2304 r2355  
    8282    <Compile Include="IInputVariableResult.cs" />
    8383    <Compile Include="IAlgorithm.cs" />
     84    <Compile Include="IMetaData.cs" />
     85    <Compile Include="IModelMetaData.cs" />
    8486    <Compile Include="IProblem.cs" />
    8587    <Compile Include="IVariable.cs" />
  • trunk/sources/HeuristicLab.Modeling.Database/3.2/IModelingDatabase.cs

    r2333 r2355  
    3636
    3737    IEnumerable<IModel> GetAllModels();
    38     IEnumerable<IResult> GetAllResults();
     38    IEnumerable<IResult> GetAllResults();   
    3939    IEnumerable<IResult> GetAllResultsForInputVariables();
     40    IEnumerable<IMetaData> GetAllMetaData();
    4041    IEnumerable<IAlgorithm> GetAllAlgorithms();
    4142       
     
    4546    IEnumerable<IModelResult> GetModelResults(IModel model);
    4647    IEnumerable<IInputVariableResult> GetInputVariableResults(IModel model);
     48    IEnumerable<IModelMetaData> GetModelMetaData(IModel model);
    4749
    4850    void Connect();
  • trunk/sources/HeuristicLab.Modeling/3.2/AnalyzerModel.cs

    r2344 r2355  
    7474    }
    7575
    76     private Dictionary<string, object> metadata = new Dictionary<string, object>();
    77     public IEnumerable<KeyValuePair<string, object>> MetaData {
     76    private Dictionary<string, double> metadata = new Dictionary<string, double>();
     77    public IEnumerable<KeyValuePair<string, double>> MetaData {
    7878      get { return metadata; }
    7979    }
    8080
    81     public void SetMetaData(string name, object value) {
     81    public void SetMetaData(string name, double value) {
    8282      metadata.Add(name, value);
    8383    }
    8484
    85     public object GetMetaData(string name) {
     85    public double GetMetaData(string name) {
    8686      return metadata[name];
    8787    }
  • trunk/sources/HeuristicLab.Modeling/3.2/IAnalyzerModel.cs

    r2344 r2355  
    3333    IEnumerable<string> InputVariables { get; }
    3434    IEnumerable<KeyValuePair<string, double>> Results { get; }
    35     IEnumerable<KeyValuePair<string, object>> MetaData { get; }
     35    IEnumerable<KeyValuePair<string, double>> MetaData { get; }
    3636    int TrainingSamplesStart { get; set; }
    3737    int TrainingSamplesEnd { get; set; }
     
    4242    void SetResult(string name, double value);
    4343    double GetResult(string name);
    44     void SetMetaData(string name, object data);
    45     object GetMetaData(string name);
     44    void SetMetaData(string name, double data);
     45    double GetMetaData(string name);
    4646    double GetVariableEvaluationImpact(string variableName);
    4747    double GetVariableQualityImpact(string variableName);
Note: See TracChangeset for help on using the changeset viewer.