public override string PerformPreprocessing(Sentence sentenceForPreprocess)
        {
            var colons = sentenceForPreprocess.ElementList.FindAll(x => x.ElementType.Value == ComprenoSentenceElementType.Punctuator_Colon.Value);
            log.InfoFormat("Found {0} colon(s) in sentence", colons.Count);

            foreach (var colon in colons)
                _processColon(colon, sentenceForPreprocess.ElementList);

            return sentenceForPreprocess.GetSentenceTextFromElements();
        }
        public override string PerformPreprocessing(Sentence sentenceForPreprocess)
        {
            var predicateElements = sentenceForPreprocess.ElementList.FindAll(x => x.SyntacticRole.Value == LWS.Compreno.FormatEntities.SyntacticRole.Predicate.Value);

            if (predicateElements.Count > 0)
                foreach (var predicateElement in predicateElements)
                    _processPredicate(predicateElement, sentenceForPreprocess.ElementList);
            else
                log.WarnFormat("During processing with {0} predicates were not found. Sentence is not changed", Name);
            return sentenceForPreprocess.GetSentenceTextFromElements();
        }
        public override string PerformPreprocessing(Sentence sentenceForPreprocess)
        {
            var result = sentenceForPreprocess.SentenceText;
            // ищем вставки

            var insertsList = new SentenceInsertBlocks(sentenceForPreprocess);
            log.InfoFormat("Inserts found count is {0}. Data is {1}{2}", insertsList.Enumerations.Count, Environment.NewLine, insertsList.ToString());
            foreach (var insert in insertsList.Enumerations)
            {
                if (insert.Value.IsMainWordPresented)
                {
                    sentenceForPreprocess.ElementList.RemoveAll(x => x.Order == insert.Value.EndElementOrder);
                    sentenceForPreprocess.ElementList.Find(x => x.Order == insert.Value.StartElementOrder).Text = ReplaceStringForOpenBracket;
                }
                else
                    sentenceForPreprocess.ElementList.RemoveAll(x => (x.Order >= insert.Value.StartElementOrder && x.Order <= insert.Value.EndElementOrder));
            }
            result = sentenceForPreprocess.GetSentenceTextFromElements();

            return result;
        }