Exemple #1
0
        public override MetaTableDescription GetTableDescription()
        {
            MetaTableDescription output = new MetaTableDescription();

            output.index_propertyID = 0;
            output.index_entryID    = 1;
            output.format           = MetaTableFormatType.vertical;

            return(output);
        }
        public override MetaTableDescription GetTableDescription()
        {
            MetaTableDescription output = new MetaTableDescription();

            output.index_propertyID              = 0;
            output.index_entryID                 = 0;
            output.format                        = MetaTableFormatType.vertical;
            output.Interpretation                = MetaTableInterpretation.singleEntity;
            output.sourceDescription.valueZone   = new imbSCI.Data.primitives.coordinateXY();
            output.sourceDescription.valueZone.x = 0;
            output.sourceDescription.valueZone.y = 0;
            return(output);
        }
        public MetaTableDescription ConstructDescription(SourceTable sourceTable, TableExtractionTask task, ITextRender logger)
        {
            //if (sourceTable[0, 0].Value.isNullOrEmpty())
            //{
            //    sourceTable[0, 0].Value = "ID";
            //}

            MetaTableDescription metaDescription = null;


            builderForText reporter = task.score.CurrentEntry().reporter;


            switch (task.score.executionMode)
            {
            case ExtractionTaskEngineMode.Training:

                SourceTableDescription sourceDesc = sourceContentAnalysis.GetDescription(sourceTable);


                metaDescription = new imbSCI.DataExtraction.MetaTables.Descriptors.MetaTableDescription(sourceDesc, imbSCI.DataExtraction.MetaTables.Descriptors.MetaTableFormatType.vertical);
                // task.tableDescription = metaDescription;


                //task.score.CurrentEntry().metaTableDescription = metaDescription;

                break;

            case ExtractionTaskEngineMode.Validation:
            default:
            case ExtractionTaskEngineMode.Application:


                if (task.tableDescription == null)
                {
                    throw new Exception("Task [" + task.name + "] has no table description set.");
                }


                break;
            }

            if (folder != null)
            {
                String sp = folder.pathFor("UMTC_Construct_" + task.name + "_" + task.score.executionMode.toString() + ".txt");
                File.WriteAllText(sp, reporter.GetContent());
            }

            return(metaDescription);
        }
        public static MetaTableDescription CompileDescription(this TableExtractionTask task, List <SourceTableDescription> sourceDescriptions)
        {
            MetaTableDescription metaDescription = null;


            SourceTableDescriptionAggregation aggregatedDescriptions = sourceDescriptions.CompileSourceDescription(); // new SourceTableDescriptionAggregation();  //task.score.LastEntry().aggregatedDescriptions;

            // List<SourceTableDescription> sourceDescriptions = task.score.TaskRuns.Where(x => x.executionMode == ExtractionTaskEngineMode.Training).Where(x => x.IsSuccess).Select(x => x.metaTableDescription.sourceDescription).ToList();


            //aggregatedDescriptions.Report(report_folder, reporter);

            metaDescription         = new imbSCI.DataExtraction.MetaTables.Descriptors.MetaTableDescription(new SourceTableDescription(), imbSCI.DataExtraction.MetaTables.Descriptors.MetaTableFormatType.unknown);
            metaDescription.Comment = "Created by for " + task.name;

            SourceTableSliceTestAggregation SelectedAsPropertyUID = null;
            SourceTableSliceTestAggregation SelectedAsEntryUID    = null;

            if (aggregatedDescriptions.rowTestAggregation.IsPreferedAsPropertyUID)
            {
                SelectedAsPropertyUID = aggregatedDescriptions.rowTestAggregation;
            }
            else if (aggregatedDescriptions.columnTestAggregation.IsPreferedAsPropertyUID)
            {
                SelectedAsPropertyUID = aggregatedDescriptions.columnTestAggregation;
            }
            else if (aggregatedDescriptions.rowTestAggregation.IsSuitableAsUID)
            {
                SelectedAsPropertyUID = aggregatedDescriptions.rowTestAggregation;
            }
            else if (aggregatedDescriptions.columnTestAggregation.IsSuitableAsUID)
            {
                SelectedAsPropertyUID = aggregatedDescriptions.columnTestAggregation;
            }
            else if (aggregatedDescriptions.rowTestAggregation.IsAcceptableAsPropertyUID)
            {
                SelectedAsPropertyUID = aggregatedDescriptions.rowTestAggregation;
            }
            else if (aggregatedDescriptions.columnTestAggregation.IsAcceptableAsPropertyUID)
            {
                SelectedAsPropertyUID = aggregatedDescriptions.columnTestAggregation;
            }

            if (SelectedAsPropertyUID == null)
            {
                metaDescription.index_propertyID = -1;
            }
            else
            {
                if (aggregatedDescriptions.rowTestAggregation == SelectedAsPropertyUID)
                {
                    SelectedAsEntryUID = aggregatedDescriptions.columnTestAggregation;
                }
                else if (aggregatedDescriptions.columnTestAggregation == SelectedAsPropertyUID)
                {
                    SelectedAsEntryUID = aggregatedDescriptions.rowTestAggregation;
                }
            }

            if (SelectedAsEntryUID != null)
            {
                if (SelectedAsEntryUID.IsDistinctValue)
                {
                }
                else
                {
                    SelectedAsEntryUID            = null;
                    metaDescription.index_entryID = -1;
                }
            }


            if (SelectedAsEntryUID != null)
            {
                metaDescription.entrySource   = SelectedAsEntryUID.format;
                metaDescription.index_entryID = 0;
            }

            if (SelectedAsPropertyUID != null)
            {
                metaDescription.propertySource   = SelectedAsPropertyUID.format;
                metaDescription.index_propertyID = 0;
            }


            if (metaDescription.propertySource == SourceTableSliceType.undefined)
            {
                if (aggregatedDescriptions.sourceWidth.Range <= aggregatedDescriptions.sourceHeight.Range)
                {
                    metaDescription.propertySource = SourceTableSliceType.column;
                }
                else if (aggregatedDescriptions.sourceWidth.Range > aggregatedDescriptions.sourceHeight.Range)
                {
                    metaDescription.propertySource = SourceTableSliceType.row;
                }
            }

            if (metaDescription.entrySource == SourceTableSliceType.undefined)
            {
                switch (metaDescription.propertySource)
                {
                default:

                    break;

                case SourceTableSliceType.column:
                    metaDescription.entrySource = SourceTableSliceType.row;
                    break;

                case SourceTableSliceType.row:
                    metaDescription.entrySource = SourceTableSliceType.column;
                    break;
                }
            }

            switch (metaDescription.propertySource)
            {
            default:

                break;

            case SourceTableSliceType.column:
                metaDescription.sourceDescription.valueZone.y = 0;    // metaDescription.index_propertyID + 1;
                metaDescription.sourceDescription.valueZone.x = 0;    //metaDescription.index_entryID + 1;
                                                                      // metaDescription.IsTransposed = true;
                                                                      //   metaDescription.entrySource = SourceTableSliceType.row;
                metaDescription.format = MetaTableFormatType.vertical;
                break;

            case SourceTableSliceType.row:
                //  metaDescription.entrySource = SourceTableSliceType.column;
                metaDescription.format = MetaTableFormatType.horizontal;
                metaDescription.sourceDescription.valueZone.x = 0;     // metaDescription.index_propertyID + 1;
                metaDescription.sourceDescription.valueZone.y = 0;     // metaDescription.index_entryID + 1;
                break;
            }



            // metaDescription.Report(report_folder, reporter);

            return(metaDescription);
        }
 public MetaTable(MetaTableDescription _description)
 {
     description = _description;
     Init();
 }
Exemple #6
0
        object IInvokeServiceOps.InvokeServiceOperation(int opCode, object[] args)
        {
            MobiusMetaTableService op = (MobiusMetaTableService)opCode;

            switch (op)
            {
            case MobiusMetaTableService.Initialize:
            {
                Mobius.Data.MetaTableCollection.MetaTableFactory = new Mobius.MetaFactoryNamespace.MetaTableFactory();
                Mobius.MetaFactoryNamespace.MetaTableFactory.Initialize();
                return(null);
            }

            case MobiusMetaTableService.GetMetaTable:
            {
                string metaTableName = (string)args[0];
                Data.MetaTableCollection.GetDefaultRootMetaTable();
                Data.MetaTable mobiusMetaTable = Data.MetaTableCollection.MetaTableFactory.GetMetaTable(metaTableName);
                if (mobiusMetaTable == null)
                {
                    return(null);
                }
                else
                {
                    return(mobiusMetaTable.Serialize());
                }
            }

            case MobiusMetaTableService.GetMetaTableDescription:
            {
                string metaTableName = (string)args[0];
                Data.MetaTableCollection.GetDefaultRootMetaTable();
                Data.TableDescription mobiusMetaTableDescription =
                    Data.MetaTableCollection.MetaTableFactory.GetDescription(metaTableName);
                MetaTableDescription metaTableDescription =
                    _transHelper.Convert <Data.TableDescription, MetaTableDescription>(mobiusMetaTableDescription);
                return(metaTableDescription);
            }

            case MobiusMetaTableService.GetMetaTableFromDatabaseDictionary:
            {
                string         metaTableName   = (string)args[0];
                Data.MetaTable mobiusMetaTable = MetaFactoryNamespace.OracleMetaFactory.GetMetaTableFromDatabaseDictionary(metaTableName);
                if (mobiusMetaTable == null)
                {
                    return(null);
                }
                else
                {
                    return(mobiusMetaTable.Serialize());
                }
            }

            case MobiusMetaTableService.BuildFromFile:
            {
                string serverFileName = (string)args[0];
                MetaFactoryNamespace.MetaTableFactory.BuildFromXmlFile(serverFileName);
                return(true);
            }

            case MobiusMetaTableService.AddServiceMetaTable:
            {
                string         serializedMetaTable = args[0].ToString();
                Data.MetaTable mobiusMetaTable     = Data.MetaTable.Deserialize(serializedMetaTable);
                Data.MetaTableCollection.Add(mobiusMetaTable);
                return(null);
            }

            case MobiusMetaTableService.RemoveServiceMetaTable:
            {
                string metaTableName = (string)args[0];
                Data.MetaTableCollection.Remove(metaTableName);
                return(null);

                //Types.MetaTable metaTable = (Types.MetaTable)args[0];
                //Data.MetaTable mobiusMetaTableToUpdate = Data.MetaTableCollection.Get(metaTable.Name);

                ////to take advantage of the logic in the TypeConversionHelper to update the MetaTable in place
                ////  (No way of knowing in how many places references to the metatable might exist...)
                ////  -- create a conversion helper (with retention) and
                ////     add this single metatable to its list of known objects
                ////     The conversion (if the metatable is "known") updates the Mobius metatable in place
                //TypeConversionHelper transHelper =
                //    new TypeConversionHelper(TypeConversionHelper.ContextRetentionMode.RememberAndUpdateMobiusObjects);
                //transHelper.AddKnownObject<Data.MetaTable>(mobiusMetaTableToUpdate);
                //Data.MetaTable mobiusMetaTable = _transHelper.Convert<MetaTable, Data.MetaTable>(metaTable);
                //return true;
            }

            case MobiusMetaTableService.UpdateStats:
            {
                string factoryName = (string)args[0];
                return(Mobius.MetaFactoryNamespace.MetaTableFactory.UpdateStats(factoryName));
            }
            }
            return(null);
        }