示例#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();
            }
        }
示例#2
0
        protected override void onInstanceActivated(ConceptInstance instance, BeamGenerator generator)
        {
            var target         = generator.GetValue(instance, Concept2.Target);
            var targetProperty = generator.GetValue(instance, Concept2.TargetProperty);
            var subject        = generator.GetValue(instance, Concept2.Subject);

            var generalTarget = new PropertySetTarget(target.Concept, targetProperty.Concept);
            var setEvent      = new PropertySetEvent(generalTarget, subject);

            generator.Push(new ExportEvent(setEvent));
            generator.Push(setEvent);
            if (generator.IsDefined(instance.Concept))
            {
                generator.Push(new InstanceOutputEvent(instance));
            }
        }