public static IGraph GetContextualGraphV2(this SparqlRemoteEndpoint endpoint, string uri, HashSet <string> processed, int rank) { if (rank <= 0) { return(new Graph()); } rank--; var graph = endpoint.GetContextualGraph(uri); processed.Add(uri); var graphToMerge = new List <IGraph>(); foreach (var uriString in graph.Triples.GetAllUriNodeToString()) { if (processed.Contains(uriString)) { continue; } var tmpGraph = endpoint.GetContextualGraphV2(uriString, processed, rank); if (!tmpGraph.IsEmpty) { graphToMerge.Add(tmpGraph); } } foreach (var g in graphToMerge) { graph.Merge(g); } return(graph); }
public static IEnumerable <Triple> GetTriples(this SparqlRemoteEndpoint endpoint, Uri uri) { return(endpoint.GetContextualGraph(uri.ToString()).Triples); }