Beispiel #1
0
        internal static NodeInfo Create(BetaMemoryNode node, IBetaMemory memory)
        {
            var tuples = memory.Tuples.Select(
                t => string.Join(" || ", t.OrderedFacts().Select(f => f.Value).ToArray()));

            return(new NodeInfo(NodeType.BetaMemory, string.Empty, Empty, Empty, tuples));
        }
Beispiel #2
0
 protected internal virtual void VisitBetaMemoryNode(TContext builder, BetaMemoryNode node)
 {
     foreach (var tupleSink in node.Sinks)
     {
         Visit(builder, tupleSink);
     }
 }
Beispiel #3
0
 protected internal override void VisitBetaMemoryNode(SchemaBuilder builder, BetaMemoryNode node)
 {
     if (builder.IsVisited(node))
     {
         return;
     }
     builder.AddNode(node, ReteNode.Create);
     builder.AddLinks(node, node.Sinks);
     base.VisitBetaMemoryNode(builder, node);
 }
Beispiel #4
0
 protected internal override void VisitBetaMemoryNode(SnapshotBuilder builder, BetaMemoryNode node)
 {
     if (builder.IsVisited(node))
     {
         return;
     }
     builder.AddNode(node, n => NodeInfo.Create(n, _workingMemory.GetNodeMemory(n)));
     builder.AddLinks(node, node.Sinks);
     base.VisitBetaMemoryNode(builder, node);
 }
Beispiel #5
0
 internal static NodeInfo Create(BetaMemoryNode node, IBetaMemory memory)
 {
     var tuples = memory.Tuples.Select(
         t => string.Join(" || ", t.Facts.Reverse().Select(f => f.Object).ToArray()));
     return new NodeInfo(NodeType.BetaMemory, string.Empty, Empty, Empty, tuples);
 }
Beispiel #6
0
 internal static ReteNode Create(BetaMemoryNode node)
 {
     return(new ReteNode(node.Id, NodeType.BetaMemory, rules: node.NodeInfo.Rules));
 }