#region License Information /* HeuristicLab * Copyright (C) 2002-2008 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 . */ #endregion using System; using System.Collections.Generic; using System.Linq; using System.Text; using HeuristicLab.CEDMA.DB.Interfaces; using System.Runtime.Serialization; namespace HeuristicLab.CEDMA.DB.Interfaces { public static class Ontology { public static string CedmaNameSpace { get { return "http://www.heuristiclab.com/cedma/"; } } #region model attribute types /// /// Attribute value is ordinal, values can be sorted. /// Examples are quality measures or complexity measures. /// public static Entity TypeOrdinalAttribute { get { return new Entity(CedmaNameSpace + "TypeOrdinalAttribute"); } } /// /// Attribute value is categorical and thus can't be sorted. /// Examples is target-variable. /// public static Entity TypeCategoricalAttribute { get { return new Entity(CedmaNameSpace + "TypeCategoricalAttribute"); } } /// /// Attribute is a quality measure /// public static Entity TypeQualityAttribute { get { return new Entity(CedmaNameSpace + "TypeQualityAttribute"); } } /// /// Attribute is a complexity measure /// public static Entity TypeComplexityAttribute { get { return new Entity(CedmaNameSpace + "TypeComplexityAttribute"); } } #endregion #region meta-data predicates public static Entity PredicateName { get { return new Entity(CedmaNameSpace + "Name"); } } /// /// Each entity can have a serialized XML representation that can be loaded in HL. /// public static Entity PredicateSerializedData { get { return new Entity(CedmaNameSpace + "SerializedData"); } } /// /// Link from data set to model. /// A data set can have multiple models. /// public static Entity PredicateHasModel { get { return new Entity(CedmaNameSpace + "Model"); } } /// /// Link from model to algorithm. /// An algorithm can generate multiple models, each model is generated by exactly one algorithm. /// public static Entity PredicateGeneratedBy { get { return new Entity(CedmaNameSpace + "GeneratedBy"); } } #endregion #region types and type relations public static Entity PredicateInstanceOf { get { return new Entity(CedmaNameSpace + "InstanceOf"); } } public static Entity TypeGeneticProgrammingFunctionTree { get { return new Entity(CedmaNameSpace + "FunctionTree"); } } public static Entity TypeDataSet { get { return new Entity(CedmaNameSpace + "DataSet"); } } public static Entity TypeAlgorithm { get { return new Entity(CedmaNameSpace + "Algorithm"); } } public static Entity TypeModel { get { return new Entity(CedmaNameSpace + "Model"); } } #endregion #region default attributes public static Entity TargetVariable { get { return new Entity(CedmaNameSpace + "TargetVariable"); } } public static Entity TrainingMeanSquaredError { get { return new Entity(CedmaNameSpace + "TrainingMeanSquaredError"); } } public static Entity ValidationMeanSquaredError { get { return new Entity(CedmaNameSpace + "ValidationMeanSquaredError"); } } public static Entity TrainingMeanAbsolutePercentageError { get { return new Entity(CedmaNameSpace + "TrainingMeanAbsolutePercentageError"); } } public static Entity ValidationMeanAbsolutePercentageError { get { return new Entity(CedmaNameSpace + "ValidationMeanAbsolutePercentageError"); } } public static Entity TreeSize { get { return new Entity(CedmaNameSpace + "TreeSize"); } } public static Entity TreeHeight { get { return new Entity(CedmaNameSpace + "TreeHeight"); } } public static Entity EvaluatedSolutions { get { return new Entity(CedmaNameSpace + "EvaluatedSolutions"); } } #endregion public static ICollection InitialStatements { get { return new List { new Statement(TargetVariable, PredicateInstanceOf, TypeCategoricalAttribute), new Statement(TrainingMeanSquaredError, PredicateInstanceOf, TypeOrdinalAttribute), new Statement(TrainingMeanSquaredError, PredicateInstanceOf, TypeQualityAttribute), new Statement(ValidationMeanSquaredError, PredicateInstanceOf, TypeOrdinalAttribute), new Statement(ValidationMeanSquaredError, PredicateInstanceOf, TypeQualityAttribute), new Statement(TrainingMeanAbsolutePercentageError, PredicateInstanceOf, TypeOrdinalAttribute), new Statement(TrainingMeanAbsolutePercentageError, PredicateInstanceOf, TypeQualityAttribute), new Statement(ValidationMeanAbsolutePercentageError, PredicateInstanceOf, TypeOrdinalAttribute), new Statement(ValidationMeanAbsolutePercentageError, PredicateInstanceOf, TypeQualityAttribute), new Statement(TreeSize, PredicateInstanceOf, TypeOrdinalAttribute), new Statement(TreeSize, PredicateInstanceOf, TypeComplexityAttribute), new Statement(TreeHeight, PredicateInstanceOf, TypeOrdinalAttribute), new Statement(TreeHeight, PredicateInstanceOf, TypeComplexityAttribute), new Statement(EvaluatedSolutions, PredicateInstanceOf, TypeOrdinalAttribute) }; } } /// /// Wildcard entity for filtering. /// public static Entity AnyEntity { get { return new Entity(null); } } } }