protected override IEnumerable <string> execute(BeamGenerator generator)
        {
            var unknownPhrases = GetUnknownPhrases(generator);

            if (!PreviousPolicy <RequestRefinement>(out var refinementPolicy) || unknownPhrases.Count() != 1)
            {
                yield break;
            }

            var instanceToRefine = generator.GetValue(refinementPolicy.Tag, Concept2.Target);

            var unknown = unknownPhrases.First();
            var assignUnknownProperty = AssignUnknownProperty.Create(instanceToRefine, unknown, generator);

            YesNoPrompt.Generate(generator, assignUnknownProperty, instanceToRefine);
            yield return($"I suppose, you would like to find {plural(instanceToRefine)} which are {unknown}?");
        }
        protected override IEnumerable <string> execute(BeamGenerator generator)
        {
            var evt = Get <InstanceOutputEvent>();

            if (evt?.Instance.Concept != Concept2.NeedsRefinement)
            {
                yield break;
            }

            var instanceToRefine = generator.GetValue(evt.Instance, Concept2.Subject);
            var activationTarget = generator.GetValue(evt.Instance, Concept2.Target);

            var prefixesForRefine = generator.GetPrefixingUnknowns(instanceToRefine);

            if (!prefixesForRefine.TryGetValue(instanceToRefine, out var propertyUnknownRaw))
            {
                //nothing to ask for
                yield break;
            }

            var propertyUnknown = toMeaningfulPhrase(propertyUnknownRaw);

            if (propertyUnknown == "")
            {
                yield break;
            }

            /*
             * //TODO feature based questions
             *
             * //ACTION SEQUENCE
             * //Do you want X which is UNKNOWN ?    * Prompt
             * //-yes: what property UNKNOWN is ?    *   yes -> expect (properties)
             * //-- expect property                  *
             * //-no: So which X you want ?          *   no -> ?
             * //--standard refinement               *
             *
             * yield return $"I know many {plural(instanceToRefine)} which one would you like?";*/


            var assignUnknownProperty = AssignUnknownProperty.Create(instanceToRefine, propertyUnknown, generator);

            YesNoPrompt.Generate(generator, assignUnknownProperty, instanceToRefine);
            yield return($"So, you would like to find {plural(instanceToRefine)} which are {propertyUnknown}?");
        }