public ObjectVariants GetNode(Action <ObjectVariants, ObjectVariants, ObjectVariants> addTriple, NodeGenerator q) { ObjectVariants sparqlBlankNodeFirst = q.CreateBlankNode(); ObjectVariants sparqlBlankNodeNext = q.CreateBlankNode(); foreach (var node in nodes.Take(nodes.Count - 1)) { addTriple(sparqlBlankNodeNext, q.SpecialTypes.first, node); addTriple(sparqlBlankNodeNext, q.SpecialTypes.rest, sparqlBlankNodeNext = q.CreateBlankNode()); } addTriple(sparqlBlankNodeNext, q.SpecialTypes.first, nodes[nodes.Count - 1]); addTriple(sparqlBlankNodeNext, q.SpecialTypes.rest, q.SpecialTypes.nil); return(sparqlBlankNodeFirst); }