private void saveQuantifiers(QuantifierSettingStruct[] quantifiers, int taskID, string boxIdentity) { PropertySetting[] setting; Dictionary<string, double> properties = new Dictionary<string, double>(); PropertySettingHelper propertySettingHelper; foreach (QuantifierSettingStruct quantifier in quantifiers) { setting = quantifier.setting; propertySettingHelper = new PropertySettingHelper(setting); properties.Clear(); RelationEnum relation; //ParamP,ParamAlfa,ParamBeta,ParamDelta switch (quantifier.typeIdentifier) { case Ferda.Modules.Boxes.LISpMinerTasks.FFTTask.Quantifiers.Functional.AboveAverageImplication.AboveAverageImplicationBoxInfo.typeIdentifier: //15 Above Average Implication ;;;;p //ParamK properties.Add("ParamP", propertySettingHelper.GetDoubleProperty("ParamK")); saveQuantifier(taskID, 15, properties, false); break; case Ferda.Modules.Boxes.LISpMinerTasks.FFTTask.Quantifiers.Functional.BaseCeil.BaseCeilBoxInfo.typeIdentifier: //18 BASE ;;count;p; //19 Ceiling ;;count;p; //17 Support p;;;; //Relation,Treshold,Units relation = (RelationEnum)Enum.Parse(typeof(RelationEnum), propertySettingHelper.GetStringProperty("Relation")); UnitsEnum units = (UnitsEnum)Enum.Parse(typeof(UnitsEnum), propertySettingHelper.GetStringProperty("Units")); bool relative = false; double treshold = propertySettingHelper.GetDoubleProperty("Treshold"); switch (units) { case UnitsEnum.AbsoluteNumber: properties.Add("ParamAlfa", treshold); relative = false; break; case UnitsEnum.RelativeToActCondition: properties.Add("ParamBeta", treshold); relative = true; break; } switch (relation) { case RelationEnum.GreaterThanOrEqual: saveQuantifier(taskID, 18, properties, relative); break; case RelationEnum.LessThanOrEqual: saveQuantifier(taskID, 19, properties, relative); break; } break; case Ferda.Modules.Boxes.LISpMinerTasks.FFTTask.Quantifiers.Functional.BelowAverageImplication.BelowAverageImplicationBoxInfo.typeIdentifier: //16 Below Average Implication ;;;;p //ParamK properties.Add("ParamP", propertySettingHelper.GetDoubleProperty("ParamK")); saveQuantifier(taskID, 16, properties, false); break; case Ferda.Modules.Boxes.LISpMinerTasks.FFTTask.Quantifiers.Functional.DoubleFoundedImplication.DoubleFoundedImplicationBoxInfo.typeIdentifier: //4 Double Founded Implication p; //ParamP properties.Add("ParamP", propertySettingHelper.GetDoubleProperty("ParamP")); saveQuantifier(taskID, 4, properties, false); break; case Ferda.Modules.Boxes.LISpMinerTasks.FFTTask.Quantifiers.Functional.DoubleCriticalImplication.DoubleCriticalImplicationBoxInfo.typeIdentifier: //5 Double Lower Critical Implication p;;Alpha //6 Double Upper Critical Implication p;;Alpha //ParamP,ParamAlpha relation = (RelationEnum)Enum.Parse(typeof(RelationEnum), propertySettingHelper.GetStringProperty("Relation")); properties.Add("ParamP", propertySettingHelper.GetDoubleProperty("ParamP")); properties.Add("ParamAlfa", propertySettingHelper.GetDoubleProperty("ParamAlpha")); switch (relation) { case RelationEnum.GreaterThanOrEqual: saveQuantifier(taskID, 6, properties, false); break; case RelationEnum.LessThanOrEqual: saveQuantifier(taskID, 5, properties, false); break; } break; case Ferda.Modules.Boxes.LISpMinerTasks.FFTTask.Quantifiers.Functional.E.EBoxInfo.typeIdentifier: //14 E-quantifier ;;Delta //ParamP properties.Add("ParamDelta", propertySettingHelper.GetDoubleProperty("ParamP")); saveQuantifier(taskID, 4, properties, false); break; case Ferda.Modules.Boxes.LISpMinerTasks.FFTTask.Quantifiers.Functional.Fisher.FisherBoxInfo.typeIdentifier: //11 Fisher quantifier ;;Alpha //ParamAlpha properties.Add("ParamAlfa", propertySettingHelper.GetDoubleProperty("ParamAlpha")); saveQuantifier(taskID, 11, properties, false); break; case Ferda.Modules.Boxes.LISpMinerTasks.FFTTask.Quantifiers.Functional.FoundedEquivalence.FoundedEquivalenceBoxInfo.typeIdentifier: //7 Founded Equivalence p; //ParamP properties.Add("ParamP", propertySettingHelper.GetDoubleProperty("ParamP")); saveQuantifier(taskID, 7, properties, false); break; case Ferda.Modules.Boxes.LISpMinerTasks.FFTTask.Quantifiers.Functional.FoundedImplication.FoundedImplicationBoxInfo.typeIdentifier: //1 Founded Implication p; //ParamP properties.Add("ParamP", propertySettingHelper.GetDoubleProperty("ParamP")); saveQuantifier(taskID, 1, properties, false); break; case Ferda.Modules.Boxes.LISpMinerTasks.FFTTask.Quantifiers.Functional.ChiSquared.ChiSquaredBoxInfo.typeIdentifier: //12 Chi-Squared quantifier ;;Alpha //ParamAlpha properties.Add("ParamAlfa", propertySettingHelper.GetDoubleProperty("ParamAlpha")); saveQuantifier(taskID, 12, properties, false); break; case Ferda.Modules.Boxes.LISpMinerTasks.FFTTask.Quantifiers.Functional.CriticalEquivalence.CriticalEquivalenceBoxInfo.typeIdentifier: //8 Lower Critical Equivalence p;;Alpha //9 Upper Critical Equivalence p;;Alpha //ParamP,ParamAlpha relation = (RelationEnum)Enum.Parse(typeof(RelationEnum), propertySettingHelper.GetStringProperty("Relation")); properties.Add("ParamP", propertySettingHelper.GetDoubleProperty("ParamP")); properties.Add("ParamAlfa", propertySettingHelper.GetDoubleProperty("ParamAlpha")); saveQuantifier(taskID, 8, properties, false); switch (relation) { case RelationEnum.GreaterThanOrEqual: saveQuantifier(taskID, 9, properties, false); break; case RelationEnum.LessThanOrEqual: saveQuantifier(taskID, 8, properties, false); break; } break; case Ferda.Modules.Boxes.LISpMinerTasks.FFTTask.Quantifiers.Functional.CriticalImplication.CriticalImplicationBoxInfo.typeIdentifier: //2 Lower Critical Implication p;;Alpha //3 Upper Critical Implication p;;Alpha //ParamP,ParamAlpha relation = (RelationEnum)Enum.Parse(typeof(RelationEnum), propertySettingHelper.GetStringProperty("Relation")); properties.Add("ParamP", propertySettingHelper.GetDoubleProperty("ParamP")); properties.Add("ParamAlfa", propertySettingHelper.GetDoubleProperty("ParamAlpha")); switch (relation) { case RelationEnum.GreaterThanOrEqual: saveQuantifier(taskID, 3, properties, false); break; case RelationEnum.LessThanOrEqual: saveQuantifier(taskID, 2, properties, false); break; } break; case Ferda.Modules.Boxes.LISpMinerTasks.FFTTask.Quantifiers.Functional.SimpleDeviation.SimpleDeviationBoxInfo.typeIdentifier: //10 Simple Deviation ;;;;Delta //ParamK properties.Add("ParamDelta", propertySettingHelper.GetDoubleProperty("ParamK")); saveQuantifier(taskID, 10, properties, false); break; default: throw Ferda.Modules.Exceptions.SwitchCaseNotImplementedError(quantifier.typeIdentifier); } } }
private void saveQuantifiers(QuantifierSettingStruct[] quantifiers, int taskID, string boxIdentity) { PropertySettingHelper propertySettingHelper; string tableName = "tdDFQuantifier"; string autoIncrementColumn = common.GetAutoIncrementColumnName(tableName); foreach (QuantifierSettingStruct quantifier in quantifiers) { propertySettingHelper = new PropertySettingHelper(quantifier.setting); OperationModeEnum operationMode = (OperationModeEnum)Enum.Parse(typeof(OperationModeEnum), propertySettingHelper.GetStringProperty("OperationMode")); RelationEnum relation = (RelationEnum)Enum.Parse(typeof(RelationEnum), propertySettingHelper.GetStringProperty("Relation")); UnitsEnum units = UnitsEnum.AbsoluteNumber; try { units = (UnitsEnum)Enum.Parse(typeof(UnitsEnum), propertySettingHelper.GetStringProperty("Units")); } catch { units = UnitsEnum.AbsoluteNumber; } double treshold = propertySettingHelper.GetDoubleProperty("Treshold"); int quantifierTypeID = 0; #region Quantifier switch switch (quantifier.typeIdentifier) { case Ferda.Modules.Boxes.LISpMinerTasks.SDFFTTask.Quantifiers.Aggregation.SumOfValues.SumOfValuesBoxInfo.typeIdentifier: quantifierTypeID = 1; break; case Ferda.Modules.Boxes.LISpMinerTasks.SDFFTTask.Quantifiers.Aggregation.MinValue.MinValueBoxInfo.typeIdentifier: quantifierTypeID = 2; break; case Ferda.Modules.Boxes.LISpMinerTasks.SDFFTTask.Quantifiers.Aggregation.MaxValue.MaxValueBoxInfo.typeIdentifier: quantifierTypeID = 3; break; case Ferda.Modules.Boxes.LISpMinerTasks.SDFFTTask.Quantifiers.Aggregation.BaseCeil.BaseCeilBoxInfo.typeIdentifier: quantifierTypeID = 20; break; case Ferda.Modules.Boxes.LISpMinerTasks.SDFFTTask.Quantifiers.Functional.FoundedImplication.FoundedImplicationBoxInfo.typeIdentifier: units = UnitsEnum.AbsoluteNumber; quantifierTypeID = 4; break; case Ferda.Modules.Boxes.LISpMinerTasks.SDFFTTask.Quantifiers.Functional.AboveAverageImplication.AboveAverageImplicationBoxInfo.typeIdentifier: units = UnitsEnum.AbsoluteNumber; quantifierTypeID = 5; break; case Ferda.Modules.Boxes.LISpMinerTasks.SDFFTTask.Quantifiers.Functional.DoubleFoundedImplication.DoubleFoundedImplicationBoxInfo.typeIdentifier: units = UnitsEnum.AbsoluteNumber; quantifierTypeID = 9; break; case Ferda.Modules.Boxes.LISpMinerTasks.SDFFTTask.Quantifiers.Functional.FoundedEquivalence.FoundedEquivalenceBoxInfo.typeIdentifier: units = UnitsEnum.AbsoluteNumber; quantifierTypeID = 12; break; default: throw Ferda.Modules.Exceptions.SwitchCaseNotImplementedError(quantifier.typeIdentifier); } #endregion long autoIncrementValue = common.GetTableAutoIncrementValue(tableName, 1); string query = "INSERT INTO " + tableName + " (" + autoIncrementColumn + ",TaskID,SDQuantifierSourceTypeID,DFQuantifierTypeID,DFQuantifierValueTypeID,ValuePar,CompareTypeID) VALUES " + "(" + autoIncrementValue + "," + taskID + "," + common.Constants.OperationModeEnumDictionary[operationMode] + "," + quantifierTypeID + "," + common.Constants.UnitsEnumDictionary[units] + "," + "'" + treshold + "'," + common.Constants.RelationEnumDictionary[relation] + ")"; common.ExecuteInsertQuery(query, tableName); } }
private void saveQuantifiers(QuantifierSettingStruct[] quantifiers, int taskID, string boxIdentity) { Dictionary<string, double> properties = new Dictionary<string, double>(); PropertySettingHelper propertySettingHelper; string tableName = "tdCFQuantifier"; string autoIncrementColumn = common.GetAutoIncrementColumnName(tableName); foreach (QuantifierSettingStruct quantifier in quantifiers) { propertySettingHelper = new PropertySettingHelper(quantifier.setting); UnitsEnum units = UnitsEnum.AbsoluteNumber; bool quantifierWithUnits = true; try { units = (UnitsEnum)Enum.Parse(typeof(UnitsEnum), propertySettingHelper.GetStringProperty("Units")); } catch (ArgumentException) { quantifierWithUnits = false; } DirectionEnum direction = DirectionEnum.ColumnsOnRows; try { direction = (DirectionEnum)Enum.Parse(typeof(DirectionEnum), propertySettingHelper.GetStringProperty("Direction")); } catch (ArgumentException) { } bool quantifierWithRelativeTreshold = false; bool aggregationQuantifierFlag = true; int fromColumn = 0; int toColumn = 0; int quantifierTypeID = 0; RelationEnum relation = RelationEnum.Equal; try { relation = (RelationEnum)Enum.Parse(typeof(RelationEnum), propertySettingHelper.GetStringProperty("Relation")); } catch (ArgumentException) { } double threshold = propertySettingHelper.GetDoubleProperty("Treshold"); #region Quantifiers switch switch (quantifier.typeIdentifier) { case Boxes.LISpMinerTasks.CFTask.Quantifiers.Aggregation.SumOfValues.SumOfValuesBoxInfo.typeIdentifier: quantifierTypeID = 1; break; case Boxes.LISpMinerTasks.CFTask.Quantifiers.Aggregation.MinValue.MinValueBoxInfo.typeIdentifier: quantifierTypeID = 2; break; case Boxes.LISpMinerTasks.CFTask.Quantifiers.Aggregation.MaxValue.MaxValueBoxInfo.typeIdentifier: quantifierTypeID = 3; break; case Boxes.LISpMinerTasks.CFTask.Quantifiers.Aggregation.AverageValue.AverageValueBoxInfo.typeIdentifier: quantifierTypeID = 4; break; case Boxes.LISpMinerTasks.CFTask.Quantifiers.Aggregation.AnyValue.AnyValueBoxInfo.typeIdentifier: quantifierTypeID = 5; break; case Boxes.LISpMinerTasks.CFTask.Quantifiers.Functional.VariationRatio.VariationRatioBoxInfo.typeIdentifier: quantifierTypeID = 8; break; case Boxes.LISpMinerTasks.CFTask.Quantifiers.Functional.NominalVariation.NominalVariationBoxInfo.typeIdentifier: quantifierTypeID = 9; break; case Boxes.LISpMinerTasks.CFTask.Quantifiers.Functional.DiscreteOrdinaryVariation.DiscreteOrdinaryVariationBoxInfo.typeIdentifier: quantifierTypeID = 10; break; case Boxes.LISpMinerTasks.CFTask.Quantifiers.Functional.ArithmeticAverage.ArithmeticAverageBoxInfo.typeIdentifier: quantifierTypeID = 11; break; case Boxes.LISpMinerTasks.CFTask.Quantifiers.Functional.GeometricAverage.GeometricAverageBoxInfo.typeIdentifier: quantifierTypeID = 12; break; case Boxes.LISpMinerTasks.CFTask.Quantifiers.Functional.Variance.VarianceBoxInfo.typeIdentifier: quantifierTypeID = 13; break; case Boxes.LISpMinerTasks.CFTask.Quantifiers.Functional.StandardDeviation.StandardDeviationBoxInfo.typeIdentifier: quantifierTypeID = 14; break; case Boxes.LISpMinerTasks.CFTask.Quantifiers.Functional.Skewness.SkewnessBoxInfo.typeIdentifier: quantifierTypeID = 15; break; case Boxes.LISpMinerTasks.CFTask.Quantifiers.Functional.Asymetry.AsymetryBoxInfo.typeIdentifier: quantifierTypeID = 16; break; default: throw Ferda.Modules.Exceptions.SwitchCaseNotImplementedError(quantifier.typeIdentifier); } #endregion long autoIncrementValue = common.GetTableAutoIncrementValue(tableName, 1); string unitsColumn, unitsColumnValue, aggregationQuantifier, aggregationQuantifierValue; unitsColumn = unitsColumnValue = aggregationQuantifier = aggregationQuantifierValue = String.Empty; try { units = (UnitsEnum)Enum.Parse(typeof(UnitsEnum), propertySettingHelper.GetStringProperty("Units")); } catch (ArgumentException) { quantifierWithUnits = false; } try { fromColumn = Ferda.Modules.Helpers.Common.Parsing.ZeroBasedBoundFromOneBasedString(propertySettingHelper.GetStringProperty("CategoryRangeFrom")); toColumn = Ferda.Modules.Helpers.Common.Parsing.ZeroBasedBoundFromOneBasedString(propertySettingHelper.GetStringProperty("CategoryRangeTo")); } catch (ArgumentException) { aggregationQuantifierFlag = false; } if (aggregationQuantifierFlag) { //aggregationQuantifier = "FromCol,ToCol,"; aggregationQuantifierValue = fromColumn.ToString() + "," + toColumn.ToString() + ","; } else { aggregationQuantifierValue = "1, -1, "; } if (quantifierWithUnits) { unitsColumn = "CFQuantifierValueTypeID,"; unitsColumnValue = common.Constants.UnitsEnumDictionary[units] + ","; } string thresholdColumn; if (quantifierWithRelativeTreshold) { thresholdColumn = "Threshold,"; } else { thresholdColumn = "ValuePar,"; } string query = "INSERT INTO " + tableName + " (" + autoIncrementColumn + ",TaskID,CFQuantifierTypeID,FromCol,ToCol," + unitsColumn + thresholdColumn + "CompareTypeID) VALUES " + "(" + autoIncrementValue + "," + taskID + "," + quantifierTypeID + "," + aggregationQuantifierValue + unitsColumnValue + "'" + threshold.ToString() + "'" + "," + common.Constants.RelationEnumDictionary[relation] + ")"; common.ExecuteInsertQuery(query, tableName); } }
private void saveQuantifiers(QuantifierSettingStruct[] quantifiers, int taskID, string boxIdentity) { PropertySettingHelper propertySettingHelper; string tableName = "tdDKQuantifier"; string autoIncrementColumn = common.GetAutoIncrementColumnName(tableName); foreach (QuantifierSettingStruct quantifier in quantifiers) { propertySettingHelper = new PropertySettingHelper(quantifier.setting); int fromRow = Ferda.Modules.Helpers.Common.Parsing.ZeroBasedBoundFromOneBasedString(propertySettingHelper.GetStringProperty("RowFrom")); int toRow = Ferda.Modules.Helpers.Common.Parsing.ZeroBasedBoundFromOneBasedString(propertySettingHelper.GetStringProperty("RowTo")); int fromColumn = Ferda.Modules.Helpers.Common.Parsing.ZeroBasedBoundFromOneBasedString(propertySettingHelper.GetStringProperty("ColumnFrom")); int toColumn = Ferda.Modules.Helpers.Common.Parsing.ZeroBasedBoundFromOneBasedString(propertySettingHelper.GetStringProperty("ColumnTo")); RelationEnum relation = (RelationEnum)Enum.Parse(typeof(RelationEnum), propertySettingHelper.GetStringProperty("Relation")); double treshold = propertySettingHelper.GetDoubleProperty("Treshold"); bool quantifierWithUnits = true; UnitsEnum units = UnitsEnum.AbsoluteNumber; OperationModeEnum operationMode = (OperationModeEnum)Enum.Parse(typeof(OperationModeEnum), propertySettingHelper.GetStringProperty("OperationMode")); try { units = (UnitsEnum)Enum.Parse(typeof(UnitsEnum), propertySettingHelper.GetStringProperty("Units")); } catch (ArgumentException) { quantifierWithUnits = false; } DirectionEnum direction = DirectionEnum.ColumnsOnRows; try { direction = (DirectionEnum)Enum.Parse(typeof(DirectionEnum), propertySettingHelper.GetStringProperty("Direction")); } catch (ArgumentException) { } bool quantifierWithRelativeTreshold = false; bool kendalQuantifier = false; int quantifierTypeID = 0; switch (quantifier.typeIdentifier) { case Ferda.Modules.Boxes.LISpMinerTasks.SDKLTask.Quantifiers.Aggregation.SumOfValues.SumOfValuesBoxInfo.typeIdentifier: quantifierTypeID = 1; break; case Ferda.Modules.Boxes.LISpMinerTasks.SDKLTask.Quantifiers.Aggregation.MinValue.MinValueBoxInfo.typeIdentifier: quantifierTypeID = 4; break; case Ferda.Modules.Boxes.LISpMinerTasks.SDKLTask.Quantifiers.Aggregation.MaxValue.MaxValueBoxInfo.typeIdentifier: quantifierTypeID = 5; break; case Ferda.Modules.Boxes.LISpMinerTasks.SDKLTask.Quantifiers.Aggregation.AverageValue.AverageValueBoxInfo.typeIdentifier: quantifierTypeID = 6; break; case Ferda.Modules.Boxes.LISpMinerTasks.SDKLTask.Quantifiers.Aggregation.AnyValue.AnyValueBoxInfo.typeIdentifier: quantifierTypeID = 7; break; /* * (not implemented yet) * usefull in future if somebody will be implementing functional quatnifiers for SDKL Miner * no guarantee for rightness of the list of quantifiers below * case Ferda.Modules.Boxes.LISpMinerTasks.SDKLTask.Quantifiers.Functional.FunctionSumOfRows.FunctionSumOfRowsBoxInfo.typeIdentifier: quantifierWithRelativeTreshold = true; quantifierTypeID = 9; break; case Ferda.Modules.Boxes.LISpMinerTasks.SDKLTask.Quantifiers.Functional.FunctionEachRow.FunctionEachRowBoxInfo.typeIdentifier: quantifierWithRelativeTreshold = true; quantifierTypeID = 10; break; case Ferda.Modules.Boxes.LISpMinerTasks.SDKLTask.Quantifiers.Functional.ConditionalEntropy.ConditionalEntropyBoxInfo.typeIdentifier: quantifierTypeID = 10; break; case Ferda.Modules.Boxes.LISpMinerTasks.SDKLTask.Quantifiers.Functional.MutualInformationNormalized.MutualInformationNormalizedBoxInfo.typeIdentifier: quantifierTypeID = 13; break; case Ferda.Modules.Boxes.LISpMinerTasks.SDKLTask.Quantifiers.Functional.InformationDependency.InformationDependencyBoxInfo.typeIdentifier: quantifierTypeID = 11; break; case Ferda.Modules.Boxes.LISpMinerTasks.SDKLTask.Quantifiers.Functional.Kendal.KendalBoxInfo.typeIdentifier: kendalQuantifier = true; quantifierTypeID = 14; break; */ default: throw Ferda.Modules.Exceptions.SwitchCaseNotImplementedError(quantifier.typeIdentifier); } long autoIncrementValue = common.GetTableAutoIncrementValue(tableName, 1); string unitsColumn, unitsColumnValue; unitsColumn = unitsColumnValue = String.Empty; if (quantifierWithUnits) { unitsColumn = "DKQuantifierValueTypeID,"; unitsColumnValue = common.Constants.UnitsEnumDictionary[units] + ","; } /* * // this direction is not implemented by LMGens * if (direction == DirectionEnum.RowsOnColumns) * ; * */ string tresholdColumn; if (quantifierWithRelativeTreshold) { tresholdColumn = "Threshold,"; } else { tresholdColumn = "ValuePar,"; } string kendalColumn, kendalColumnValue; kendalColumn = kendalColumnValue = String.Empty; if (kendalQuantifier) { kendalColumn = "KendalAbsValueTauB,"; kendalColumnValue = common.Constants.TrueValue + ","; } string query = "INSERT INTO " + tableName + " (" + autoIncrementColumn + ",TaskID,SDQuantifierSourceTypeID,DKQuantifierTypeID,FromRow,ToRow,FromCol,ToCol," + unitsColumn + tresholdColumn + kendalColumn + "CompareTypeID) VALUES " + "(" + autoIncrementValue + "," + taskID + "," + common.Constants.OperationModeEnumDictionary[operationMode] + "," + quantifierTypeID + "," + fromRow + "," + toRow + "," + fromColumn + "," + toColumn + "," + unitsColumnValue + "'" + treshold.ToString() + "'" + "," + kendalColumnValue + common.Constants.RelationEnumDictionary[relation] + ")"; // Console.WriteLine(query); common.ExecuteInsertQuery(query, tableName); } }