Exemple #1
0
        protected override void onInstanceActivated(ConceptInstance instance, BeamGenerator generator)
        {
            var parameterValue    = generator.GetValue(instance, _parameter);
            var relevantInstances = getRelevantInstances(instance, parameterValue.Concept, generator).ToArray();

            foreach (var relevantInstance in relevantInstances)
            {
                //avoid reference circles
                if (relevantInstance.Concept == instance.Concept)
                {
                    continue;
                }

                if (!generator.IsDefined(relevantInstance.Concept))
                {
                    continue;
                }

                //try tunnel instances between turns
                generator.Push(new StaticScoreEvent(0.05));
                generator.Push(new InstanceReferencedEvent(relevantInstance));
                generator.Pop();
                generator.Pop();
            }
        }
Exemple #2
0
        protected override void onInstanceActivated(ConceptInstance instance, BeamGenerator generator)
        {
            var activations = generator.GetInstanceActivations();

            foreach (var relevantInstanceActivation in activations)
            {
                if (!relevantInstanceActivation.CanBeReferenced)
                {
                    continue;
                }

                var relevantInstance = relevantInstanceActivation.Instance;
                if (relevantInstance == instance)
                {
                    //dont reference self
                    continue;
                }

                //try tunnel instances between turns
                generator.Push(new StaticScoreEvent(0.05));
                generator.Push(new InstanceReferencedEvent(relevantInstance));
                generator.Pop();
                generator.Pop();
            }
        }
Exemple #3
0
        public static void BeamBranchTesting()
        {
            var b = new BeamGenerator();

            b.Push(new InputPhraseEvent("x"));
            b.Pop();
            b.Push(new InputPhraseEvent("y"));
            b.PushSelf();
        }