Exemple #1
0
        public void Execute(Selection selection, string[] args, AbstractTableWriter writer)
        {
            var arguments = args.ToList();
            var l1        = arguments[0];

            arguments.RemoveAt(0);
            var w1 = arguments[0];

            arguments.RemoveAt(0);
            var l2 = arguments[0];

            arguments.RemoveAt(0);

            var vm = new PositionFrequencyViewModel
            {
                Selection        = selection,
                LayerDisplayname = l1,
                LayerQueries     = new[] { w1 },
                CorrespondingLayerValueFilter = new CorrespondingLayerValueFilterViewModel
                {
                    Layer1Displayname  = l1,
                    Layer2Displayname  = l2,
                    AnyMatch           = true,
                    Layer2ValueFilters = new HashSet <string>(arguments),
                    Selection          = selection
                }
            };

            vm.Execute();

            writer.WriteTable(selection.Displayname, vm.GetDataTable());
        }
Exemple #2
0
        public void Execute(Selection selection, string[] args, AbstractTableWriter writer)
        {
            if (args == null || args.Length < 2)
            {
                return;
            }

            var queries = new List <string>(args);

            queries.RemoveAt(0);

            queries = ResolveFileQueriesRecursive(queries);

            var spanHelper = new KwicSpanHelper(queries);

            var vm = new TextLiveSearchViewModel
            {
                Selection = selection,
                AddContextSentencesPre  = spanHelper.SentencePre,
                AddContextSentencesPost = spanHelper.SentencePost
            };

            vm.AddQuery(GetQuery(args[0], spanHelper.CleanArguments));
            vm.Execute();

            writer.WriteTable(selection.Displayname, vm.GetUniqueDataTableCsv());
        }
        public void Execute(Selection selection, string[] args, AbstractTableWriter writer)
        {
            var vm = new NgramViewModel {
                Selection = selection
            };

            if (args.Length == 0)
            {
                vm.NGramSize = 5;
            }
            if (args.Length >= 1)
            {
                vm.NGramSize = int.Parse(args[0]);
            }
            if (args.Length >= 2)
            {
                vm.LayerDisplayname = args[1];
            }
            if (args.Length == 3)
            {
                vm.NGramMinFrequency = int.Parse(args[2]);
            }
            vm.Execute();

            writer.WriteTable(selection.Displayname, vm.GetDataTable());
        }
        public void Execute(Selection selection, string[] args, AbstractTableWriter writer)
        {
            var columns = selection.GetDocumentMetadataPrototypeOnlyPropertiesAndTypes();

            if (columns.ContainsKey(Resources.Guid))
            {
                columns.Remove(Resources.Guid);
            }

            var dt = new DataTable();

            dt.Columns.Add(Resources.Guid, typeof(string));
            foreach (var column in columns)
            {
                dt.Columns.Add(column.Key, column.Value);
            }

            dt.BeginLoadData();
            foreach (var pair in selection.DocumentMetadata)
            {
                var items = new List <object> {
                    pair.Key.ToString("N")
                };
                items.AddRange(columns.Select(column => pair.Value.ContainsKey(column.Key) ? pair.Value[column.Key] : null));
                dt.Rows.Add(items.ToArray());
            }

            dt.EndLoadData();

            writer.WriteTable(selection.Displayname, dt);
        }
        public void Execute(Selection selection, string[] args, AbstractTableWriter writer)
        {
            if (args == null || args.Length != 1)
            {
                return;
            }

            var guid = Guid.Parse(args[0]);

            if (!selection.ContainsDocument(guid))
            {
                return;
            }

            var columns = selection.GetDocumentMetadata(guid);

            var dt = new DataTable();

            dt.Columns.Add(Resources.Category, typeof(string));
            dt.Columns.Add(Resources.Value, typeof(string));

            dt.BeginLoadData();
            dt.Rows.Add(Resources.Guid, args[0]);
            foreach (var pair in columns)
            {
                dt.Rows.Add(pair.Key, pair.Value.ToString());
            }

            dt.EndLoadData();

            writer.WriteTable(selection.Displayname, dt);
        }
        public void Execute(Selection selection, string[] args, AbstractTableWriter writer)
        {
            if (args == null || args.Length != 3)
            {
                return;
            }

            var s = args[0].Split(new[] { "::" }, StringSplitOptions.RemoveEmptyEntries);

            if (s.Length != 2)
            {
                return;
            }

            var query = QueryParser.Parse(args[0]);

            if (query is FilterQueryUnsupportedParserFeature feature)
            {
                UnsupportedQueryParserFeatureHelper.Handle(selection, feature, args[1], writer);
                return;
            }

            var sub = selection.Create(new[] { query }, Path.GetFileNameWithoutExtension(args[1]), false);

            writer.WriteTable(args[2], sub.GetDocumentGuidAndDisplaynamesAsDataTable());
        }
        public void Execute(Selection selection, string[] args, AbstractTableWriter writer)
        {
            var vm = new CooccurrenceViewModel {
                Selection = selection
            };

            var arguments = args.ToList();
            var l1        = arguments[0];

            arguments.RemoveAt(0);
            var l2 = arguments[0];

            arguments.RemoveAt(0);
            var any = bool.Parse(arguments[0]);

            arguments.RemoveAt(0);

            vm.LayerDisplayname = l1;
            vm.CorrespondingLayerValueFilter = new CorrespondingLayerValueFilterViewModel
            {
                Layer1Displayname  = l1,
                Layer2Displayname  = l2,
                AnyMatch           = any,
                Layer2ValueFilters = new HashSet <string>(arguments),
                Selection          = selection
            };
            vm.Execute();

            writer.WriteTable(selection.Displayname, vm.GetFullDataTable());
        }
Exemple #8
0
        private static IEnumerable <Selection> UnsupportedParserRandomFeatureToFile(
            AbstractTableWriter writer, string output, RandomSelectionBlock block)
        {
            var outputOptions = output.Split(new[] { "#" }, StringSplitOptions.RemoveEmptyEntries);

            if (outputOptions.Length != 2)
            {
                return(null);
            }

            var export = new ConvertAction();

            export.Execute(block.RandomSelection, new[] { output }, writer);

            var form = outputOptions[0];
            var path = outputOptions[1];
            var nam  = Path.GetFileNameWithoutExtension(path);
            var ext  = Path.GetExtension(path);
            var dir  = Path.GetDirectoryName(path);

            if (!string.IsNullOrWhiteSpace(dir) && !Directory.Exists(dir))
            {
                Directory.CreateDirectory(dir);
            }

            export.Execute(block.RandomInvertSelection, new[] { $"{form}#\"{Path.Combine(dir, $"{nam}_inverse{ext}")}\"" },
                           writer);
            return(null);
        }
Exemple #9
0
        public void Execute(Selection selection, string[] args, AbstractTableWriter writer)
        {
            if (args == null || args.Length < 4)
            {
                return;
            }

            var queries = new List <string>(args);

            queries.RemoveAt(0);
            queries.RemoveAt(0);
            queries.RemoveAt(0);

            var vm = new TextFlowSearchViewModel
            {
                Selection              = selection,
                Layer1Displayname      = args[0],
                Layer2Displayname      = args[1],
                MinFrequency           = int.Parse(args[2]),
                LayerQueryPhrase       = queries,
                AutoJoin               = true,
                HighlightCooccurrences = false
            };

            vm.Execute();

            writer.WriteDirectThroughStream(Convert(vm.DiscoveredConnections.ToArray()));
        }
Exemple #10
0
        private static IEnumerable <Selection> UnsupportedParserFeatureAutosplitToFile(
            AbstractTableWriter writer, string output, IEnumerable <Selection> selections)
        {
            var outputOptions = output.Split(new[] { "#" }, StringSplitOptions.RemoveEmptyEntries);

            if (outputOptions.Length != 2)
            {
                return(null);
            }

            var form = outputOptions[0];
            var path = outputOptions[1];
            var dir  = Path.GetDirectoryName(path);
            var nam  = Path.GetFileNameWithoutExtension(path);
            var ext  = Path.GetExtension(path);

            if (!string.IsNullOrWhiteSpace(dir) && !Directory.Exists(dir))
            {
                Directory.CreateDirectory(dir);
            }

            var export = new ConvertAction();

            foreach (var cluster in selections)
            {
                export.Execute(cluster,
                               new[] { $"{form}#\"{Path.Combine(dir, $"{nam}_{cluster.Displayname.EnsureFileName()}{ext}")}\"" },
                               writer);
            }

            return(null);
        }
Exemple #11
0
 public static IEnumerable <Selection> Handle(Selection selection, FilterQueryUnsupportedParserFeature query,
                                              string output = null, AbstractTableWriter writer = null)
 {
     return(query.MetaLabel == "<:RANDOM:>"
        ? UnsupportedParserRandomFeature(selection, query, output, writer)
        : UnsupportedParserFeatureAutosplit(selection, query, output, writer));
 }
        public void Execute(Selection selection, string[] args, AbstractTableWriter writer)
        {
            if (args.Length != 1)
            {
                return;
            }

            var query = QueryParser.Parse(args[0]);

            if (!(query is FilterQueryUnsupportedParserFeature))
            {
                return;
            }

            var selections =
                UnsupportedQueryParserFeatureHelper.Handle(selection, (FilterQueryUnsupportedParserFeature)query);

            if (selections == null)
            {
                return;
            }

            foreach (var sub in selections)
            {
                writer.WriteTable(sub.Displayname, sub.GetDocumentGuidAndDisplaynamesAsDataTable());
            }
        }
        public void Execute(Selection selection, string[] args, AbstractTableWriter writer)
        {
            if (args.Length < 4)
            {
                return;
            }

            var vm = new Ngram1LayerSelectiveViewModel
            {
                Selection         = selection,
                NGramSize         = int.Parse(args[0]),
                LayerDisplayname  = args[1],
                NGramMinFrequency = int.Parse(args[2])
            };

            var queries = args.ToList();

            queries.RemoveAt(0);
            queries.RemoveAt(0);
            queries.RemoveAt(0);

            if (queries.Count == 1 && queries[0].StartsWith("FILE:"))
            {
                vm.LayerQueries = File.ReadAllLines(queries[0].Replace("FILE:", ""), Configuration.Encoding);
            }
            else
            {
                vm.LayerQueries = queries;
            }

            vm.Execute();

            writer.WriteTable(selection.Displayname, vm.GetDataTable());
        }
Exemple #14
0
        public void Execute(Selection selection, string[] args, AbstractTableWriter writer)
        {
            if (args == null || args.Length != 2)
            {
                return;
            }

            var block = selection.CreateBlock <CorrespondingLayerValueBlock>();

            block.Layer1Displayname = args[0];
            block.Layer2Displayname = args[1];
            block.Calculate();

            var dt = new DataTable();

            dt.Columns.Add(args[0], typeof(string));
            dt.Columns.Add(args[1], typeof(string));

            dt.BeginLoadData();
            foreach (var x in block.CorrespondingLayerValues)
            {
                dt.Rows.Add(x.Key, string.Join(" | ", x.Value));
            }
            dt.EndLoadData();

            writer.WriteTable(selection.Displayname, dt);
        }
Exemple #15
0
        public void Execute(Selection selection, string[] args, AbstractTableWriter writer)
        {
            if (args.Length != 2)
            {
                return;
            }

            var layer = args[0];

            selection.LayerDelete(layer);

            var output = args[1].Split(new[] { "#" }, StringSplitOptions.RemoveEmptyEntries);

            if (output.Length != 2)
            {
                return;
            }

            var exporter = Configuration.AddonExporters.GetReflectedType(output[0], "Exporter");

            if (exporter == null)
            {
                return;
            }

            var path = output[1].Replace("\"", "");
            var dir  = Path.GetDirectoryName(path);

            if (!string.IsNullOrWhiteSpace(dir) && !Directory.Exists(dir))
            {
                Directory.CreateDirectory(dir);
            }

            exporter.Export(selection, path);
        }
        private void ExecuteFileQuery(string tid, AbstractTableWriter writer, Frequency1LayerViewModel vm, double div,
                                      string path)
        {
            var lines = File.ReadAllLines(path, Configuration.Encoding);

            var res = new DataTable();

            res.Columns.Add(vm.LayerDisplayname, typeof(string));
            res.Columns.Add(Resources.Frequency, typeof(double));
            res.Columns.Add(Resources.FrequencyRel, typeof(double));

            res.BeginLoadData();

            foreach (var line in lines)
            {
                if (!vm.Frequency.ContainsKey(line))
                {
                    continue;
                }

                var sum = vm.Frequency[line];
                res.Rows.Add(line, sum, sum / div);
            }

            res.EndLoadData();

            writer.WriteTable(tid, res);
        }
        public void Execute(Selection selection, string[] args, AbstractTableWriter writer)
        {
            var vm = new ValidateSelectionIntegrityViewModel {
                Selection = selection
            };

            vm.Execute();
        }
Exemple #18
0
        public void Execute(Selection selection, string[] args, AbstractTableWriter writer)
        {
            var vm = new CorpusWeightUnlimmitedViewModel {
                Selection = selection
            };

            vm.Execute();
            writer.WriteTable(selection.Displayname, vm.GetDataTable());
        }
        private void ExecuteSdmFileQuery(string tid, AbstractTableWriter writer, Frequency1LayerViewModel vm, double div,
                                         string path)
        {
            var lines = File.ReadAllLines(path, Configuration.Encoding);

            var res = new DataTable();

            res.Columns.Add(Resources.Category, typeof(string));
            res.Columns.Add(vm.LayerDisplayname, typeof(string));
            res.Columns.Add(Resources.Frequency, typeof(double));
            res.Columns.Add(Resources.FrequencyRel, typeof(double));
            res.Columns.Add(Resources.Value, typeof(double));

            res.BeginLoadData();
            var match = 0d;

            foreach (var line in lines)
            {
                var split = line.Split(new[] { "\t" }, StringSplitOptions.RemoveEmptyEntries);
                if (split.Length != 3)
                {
                    continue;
                }

                var word = split[1];
                if (word.StartsWith("*")) // Postfix
                {
                    foreach (var w in GetSdmPostfixQuery(word.Substring(1), vm.Frequency))
                    {
                        res.Rows.Add(split[0], w.Key, w.Value, w.Value / div, split[2]);
                        match += w.Value;
                    }
                }
                else if (word.EndsWith("*")) // Prefix
                {
                    foreach (var w in GetSdmPrefixQuery(word.Substring(0, word.Length - 1), vm.Frequency))
                    {
                        res.Rows.Add(split[0], w.Key, w.Value, w.Value / div, split[2]);
                        match += w.Value;
                    }
                }
                else if (vm.Frequency.ContainsKey(word))
                {
                    res.Rows.Add(split[0], word, vm.Frequency[word], vm.Frequency[word] / div, split[2]);
                    match += vm.Frequency[word];
                }
            }

            var other = vm.Selection.CountToken - match;

            res.Rows.Add(Resources.Other, Resources.TokenCount, other, other / div, 0);

            res.EndLoadData();

            writer.WriteTable(tid, res);
        }
 protected AbstractWebService(AbstractTableWriter writer, string ip, int port, int timeout = 0)
 {
     Writer   = writer;
     _ip      = ip;
     _port    = port;
     _timeout = timeout;
     Writer   = writer;
     Mime     = writer.MimeType;
     Url      = $"http://{ip}:{port}/";
     InitializeDefaultParameter();
 }
        public void Execute(Selection selection, string[] args, AbstractTableWriter writer)
        {
            var dt = new DataTable();

            dt.Columns.Add(Resources.Param, typeof(string));
            dt.Columns.Add(Resources.Value, typeof(double));

            dt.BeginLoadData();
            dt.Rows.Add(Resources.Documents, (double)selection.CountDocuments);
            dt.EndLoadData();

            writer.WriteTable(selection.Displayname, dt);
        }
Exemple #22
0
        public void Execute(Selection selection, string[] args, AbstractTableWriter writer)
        {
            var vm = new DocumentTermFrequencyViewModel {
                Selection = selection, MetadataKey = args[0]
            };

            if (args.Length == 2)
            {
                vm.LayerDisplayname = args[1];
            }
            vm.Execute();

            writer.WriteTable(selection.Displayname, vm.GetDataTable());
        }
        public void Execute(Selection selection, string[] args, AbstractTableWriter writer)
        {
            if (args.Length != 1)
            {
                return;
            }

            var vm = new DocumentMetadataViewModel {
                Selection = selection
            };

            vm.Execute();
            vm.Export(args[0]);
        }
Exemple #24
0
        public void Execute(Selection selection, string[] args, AbstractTableWriter writer)
        {
            if (args == null || args.Length == 0)
            {
                return;
            }

            var vm = new CorpusWeightUnlimmitedViewModel {
                Selection = selection
            };

            vm.Execute();
            writer.WriteTable(selection.Displayname, vm.GetFilteredDataTable(args));
        }
Exemple #25
0
        public void Execute(Selection selection, string[] args, AbstractTableWriter writer)
        {
            var vm = new EditDistantCalculationViewModel {
                Selection = selection
            };

            if (args.Length >= 1)
            {
                vm.LayerDisplayname = args[0];
            }
            vm.Execute();

            writer.WriteTable(selection.Displayname, vm.GetDataTable());
        }
        public void Execute(Selection selection, string[] args, AbstractTableWriter writer)
        {
            var vm = new VocabularyComplexityViewModel {
                Selection = selection
            };

            if (args != null && args.Length == 1)
            {
                vm.LayerDisplayname = args[0];
            }
            vm.Execute();

            writer.WriteTable(selection.Displayname, vm.GetDataTableSimple());
        }
Exemple #27
0
        public void Execute(Selection selection, string[] args, AbstractTableWriter writer)
        {
            var vm = new Frequency1LayerViewModel {
                Selection = selection
            };

            if (args != null && args.Length == 1)
            {
                vm.LayerDisplayname = args[0];
            }
            vm.Execute();

            writer.WriteTable(selection.Displayname, vm.GetNormalizedDataTable());
        }
        public void Execute(Selection selection, string[] args, AbstractTableWriter writer)
        {
            if (args.Length != 2)
            {
                return;
            }

            var block = selection.CreateBlock <NgramHighlightCooccurrencesBlock>();

            block.NGramSize        = int.Parse(args[0]);
            block.LayerDisplayname = args[1];
            block.Calculate();

            var dt = new DataTable();

            dt.Columns.Add(Resources.NGram, typeof(string));

            var max = block.NgramsWeighted[0].Key.Length;

            for (var cnt = 1; cnt <= max; cnt++)
            {
                dt.Columns.Add($"{Resources.Token} ({cnt})", typeof(string));
                dt.Columns.Add($"{Resources.Rank} ({cnt})", typeof(byte));
            }
            dt.Columns.Add(Resources.Frequency, typeof(double));
            dt.Columns.Add(Resources.Significance + " (max.)", typeof(double));
            dt.Columns.Add(Resources.Significance + " (sum)", typeof(double));

            dt.BeginLoadData();
            foreach (var x in block.NgramsWeighted)
            {
                var data = new List <object> {
                    string.Join(" ", x.Key.Select(y => y.Key))
                };
                foreach (var y in x.Key)
                {
                    data.Add(y.Key);
                    data.Add(y.Value);
                }

                data.Add(x.Value[0]);
                data.Add(x.Value[1]);
                data.Add(x.Value[2]);
                dt.Rows.Add(data.ToArray());
            }
            dt.EndLoadData();

            writer.WriteTable(selection.Displayname, dt);
        }
Exemple #29
0
        public void Execute(Selection selection, string[] args, AbstractTableWriter writer)
        {
            var dt = new DataTable();

            dt.Columns.Add(Resources.Layernames, typeof(string));

            dt.BeginLoadData();
            foreach (var x in selection.LayerDisplaynames)
            {
                dt.Rows.Add(x);
            }
            dt.EndLoadData();

            writer.WriteTable(selection.Displayname, dt);
        }
        public void Execute(Selection selection, string[] args, AbstractTableWriter writer)
        {
            var dt = new DataTable();

            dt.Columns.Add(Resources.Tokens, typeof(string));

            dt.BeginLoadData();
            foreach (var v in selection.GetLayers(args[0]).FirstOrDefault().Values)
            {
                dt.Rows.Add(v);
            }
            dt.EndLoadData();

            writer.WriteTable(selection.Displayname, dt);
        }