Ejemplo n.º 1
0
        private HashSet <NodeReference> findDomain(NodeReference generalNode)
        {
            //TODO this has to be refactored out
            var domains = new HashSet <NodeReference>();

            foreach (var question in _questions.Values)
            {
                var featureNode = question.GetFeatureNode(generalNode, Graph);
                domains.UnionWith(Graph.GetForwardTargets(new[] { featureNode }, new[] { Edge.Incoming("en.label"), Edge.Incoming("P31") }));
            }

            /*  var edges = Graph.GetNeighbours(new NodeReference("Q30"),100).ToArray();*/
            return(domains);
        }
Ejemplo n.º 2
0
        internal void ExtendBy(IEnumerable <Edge> edges)
        {
            var extended = Graph.GetForwardTargets(ActiveNodes, edges);

            _accumulator.Clear();
            _accumulator.UnionWith(extended);
        }
Ejemplo n.º 3
0
        private IEnumerable <TraceNode2> getCommonTraceNodes(NodeReference answerCandidate, MultiTraceLog2 pattern)
        {
            var compatibleTraces = new List <TraceNode2>();
            var filteredTraces   = getFilteredTraces(pattern);

            foreach (var node in filteredTraces)
            {
                if (node.PreviousNode == null)
                {
                    if (node.CurrentNodes.Contains(answerCandidate))
                    {
                        //candidate matches directly as an answer
                        compatibleTraces.Add(node);
                    }
                }
                else
                {
                    var tracePath = node.Path;
                    if (_graph.GetForwardTargets(new[] { answerCandidate }, tracePath).Any())
                    {
                        compatibleTraces.Add(node);
                    }
                }
            }

            return(compatibleTraces);
        }
Ejemplo n.º 4
0
 internal HashSet <NodeReference> FindSet(NodeReference constraintNode, ComposedGraph graph)
 {
     return(new HashSet <NodeReference>(graph.GetForwardTargets(new[] { constraintNode }, Path)));
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Make transition from layer to a next one along the given edge.
 /// </summary>
 private HashSet <NodeReference> makeLayerTransition(HashSet <NodeReference> layer, Edge edge)
 {
     return(Graph.GetForwardTargets(layer, new[] { edge.Reversed() }));
 }
Ejemplo n.º 6
0
        internal IEnumerable <NodeReference> FindTargets(ComposedGraph graph)
        {
            var path = OriginalTrace.Path.ToArray();

            return(graph.GetForwardTargets(new[] { Substitution }, path).ToArray());
        }
Ejemplo n.º 7
0
 private HashSet <NodeReference> getSimilarNodes(NodeReference node)
 {
     return(new HashSet <NodeReference>(Graph.GetForwardTargets(new[] { node }, new[] { Edge.Outcoming(Graph.IsEdge), Edge.Incoming(Graph.IsEdge) })));
 }