def clusterBackward(self, selection) :
        if self.parent1 != None and self.parent2 != None:
            return self.parent1.clusterBackward(selection) \
                    + self.parent2.clusterBackward(selection)

        else:
            clusterB = SPARQLGraph()
            # to be on the safe side, see if the query has been properly
            # finished
            for r in reduce(lambda x,y: list(x) + list(y),self.select(selection), ()):
                self.triples.clusterBackward(r, clusterB)

            return clusterB
creates a new parent to zero out the transformations
dataset/ETHPy150Open RDFLib/rdfextras/rdfextras/sparql/query.py/Query.clusterBackward--crossover with--dataset/ETHPy150Open eoyilmaz/anima/anima/env/mayaEnv/auxiliary.py/axial_correction_group