protected IEnumerable <string> GetUnknownPhrases(BeamGenerator generator) { var allInputPhrases = GetMany <InputPhraseEvent>(); var currentBuffer = new List <InputPhraseEvent>(); foreach (var inputPhrase in allInputPhrases) { var phrase = inputPhrase; var isPhraseDisconnected = currentBuffer.Count > 0 && phrase.InputId - currentBuffer.Last().InputId != 1; if (generator.IsInputUsed(phrase) || isDelimiter(inputPhrase) || isPhraseDisconnected) { if (currentBuffer.Count > 0) { yield return(composeUnknownPhrase(currentBuffer)); } currentBuffer.Clear(); continue; } currentBuffer.Add(phrase); } if (currentBuffer.Count > 0) { yield return(composeUnknownPhrase(currentBuffer)); } }