private SentenceElement _addPredicate(Sentence sentence, int wordBeforeInsertOrder)
        {
            var predicate = new SentenceElement
            {
                SyntacticChain = NodeTree<string>.NewTree()
                , UniformLinkChain = NodeTree<string>.NewTree()
                , GUID = Guid.NewGuid().ToString()
                , Id = sentence.Elements.Last().Id + 1
                , Position = wordBeforeInsertOrder + 1
                , Order = wordBeforeInsertOrder + 1
                , Text = "есть"
                , ElementType = SentenceElementType.Word
                , Lemma = "быть"
                , SyntacticRole = SyntacticRole.Predicate
                , SurfaceSlot = string.Empty
                , SyntacticParentWordId = -1
                , SyntacticParentWordGUID = string.Empty
                , IsRestored = true
                , PrepositionUsed = PrepositionUsed.Undefined
                , ControllerNodes = new List<Controller>()
                , ConjunctedWithGUID = string.Empty
                , ConjunctedWithId = -1
                , GrammarInfo = new GrammarInfo()
                {
                    PartOfSpeech = PartOfSpeech.Verb
                    , Case = Case.Undefined
                    , IsSingular = false
                }
                , SemanticInfo = new SemanticInfo()
                , EquivalentGUIDs = new List<string>()
                , EquivalentIds = new List<int>()
                , IsWord = true
            };

            sentence.AddWord(predicate);
            return predicate;
        }