public virtual IThingGraph Use(IGraph <IThing, ILink> source, IThingGraph sink) { var thingGraph = Use(source); if (thingGraph != null) { var things = ExpandThings(thingGraph, source); var completeThings = things.Distinct().CompletedThings(thingGraph) .ToList(); sink.AddRange(completeThings); foreach (var thing in completeThings.OfType <IStreamThing>()) { var data = thingGraph.ContentContainer.GetById(thing.Id); sink.ContentContainer.Add(data); } } return(sink); }