private bool Compare(ByzVerseWordInfo viWord, TroVerseWordInfo tiWord)
        {
            var viWordTransliterit = viWord.Text.TransliterateAncientGreek().ToLower();
            var tiWordTransliterit = tiWord.Text.TransliterateAncientGreek().ToLower();

            if (viWordTransliterit.Equals(tiWordTransliterit))
            {
                return(true);
            }

            if ($"h{viWordTransliterit}".Equals(tiWordTransliterit))
            {
                return(true);
            }
            if (viWordTransliterit.Equals($"h{tiWordTransliterit}"))
            {
                return(true);
            }
            if (tiWordTransliterit.Length > 1 && viWordTransliterit.Equals($"hy{tiWordTransliterit.Substring(1)}"))
            {
                return(true);
            }

            // jeszcze trzeba opracować przypadek hymin / umin

            return(default);
        /*
         * Ἀζὼρ<S>107</S> <m>N-PRI</m>
         * δὲ<S>1161</S> <m>CONJ</m>
         * ἐγέννησεν<S>1080</S> <m>V-AAI-3S</m>
         * τὸν<S>3588</S> <m>T-ASM</m>
         * Σαδώκ<S>4524</S> <m>N-PRI</m>·
         * Σαδὼκ<S>4524</S> <m>N-PRI</m>
         * δὲ<S>1161</S> <m>CONJ</m>
         * ἐγέννησεν<S>1080</S> <m>V-AAI-3S</m>
         * τὸν<S>3588</S> <m>T-ASM</m>
         * Ἀχείμ<S>885</S> <m>N-PRI</m> <n>NA27/UBS4 variant:</n> { Ἀχείμ Ἀχεὶμ | Ἀχίμ Ἀχὶμ }·
         * Ἀχεὶμ<S>885</S> <m>N-PRI</m>
         * δὲ<S>1161</S> <m>CONJ</m>
         * ἐγέννησεν<S>1080</S> <m>V-AAI-3S</m>
         * τὸν<S>3588</S> <m>T-ASM</m>
         * Ἐλιούδ<S>1664</S> <m>N-PRI</m>·
         */

        public ByzVerseInfo(int book, int chapter, int verse, string data)
        {
            Words   = new List <ByzVerseWordInfo>();
            Book    = book;
            Chapter = chapter;
            Verse   = verse;

            var wordIndex         = 1;
            var xmlText           = $"<verse>{data}</verse>";
            var xml               = XElement.Parse(xmlText);
            ByzVerseWordInfo word = null;

            foreach (var node in xml.Nodes())
            {
                if (node.NodeType == System.Xml.XmlNodeType.Text)
                {
                    var text = (node as XText).Value;
                    if (text.Trim().StartsWith("{"))
                    {
                        var pattern = @"\{(?<variant>.+)\}(?<nextWord>.+)";
                        var regex   = new Regex(pattern);
                        var match   = regex.Match(text.Trim());
                        if (match.Success)
                        {
                            word.Variant = match.Groups["variant"].Value.Trim();

                            var _text = match.Groups["nextWord"].Value.RemoveAny(".", ":", ",", ";", "·", "—", "-", ")", "(", "]", "[", "’", ";", "|").Trim();
                            if (_text.IsNotNullOrEmpty())
                            {
                                word = new ByzVerseWordInfo()
                                {
                                    WordIndex = wordIndex,
                                    Text      = _text
                                };
                                Words.Add(word);
                                wordIndex++;
                            }
                        }
                    }
                    else
                    {
                        var _text = text.RemoveAny(".", ":", ",", ";", "·", "—", "-", ")", "(", "]", "[", "’", ";", "|").Trim();
                        if (_text.IsNotNullOrEmpty())
                        {
                            word = new ByzVerseWordInfo()
                            {
                                WordIndex = wordIndex,
                                Text      = _text
                            };
                            Words.Add(word);
                            wordIndex++;
                        }
                    }
                }
                else if (node.NodeType == System.Xml.XmlNodeType.Element)
                {
                    XElement el = node as XElement;
                    if (el.Name.LocalName == "S")
                    {
                        var code = Convert.ToInt32(el.Value.Trim());
                        word.StrongCode = code;
                    }
                    else if (el.Name.LocalName == "m")
                    {
                        word.GrammarCode = el.Value;
                    }
                }
            }
        }