code: def _traverse_relationship_rev_objs(self, rel2dst2srcs, goobj_parent, goids_seen):
          
          parent_id = goobj_parent.id
          goids_seen.add(parent_id)
          ##A self.go2obj[parent_id] = goobj_parent
          # Update goids_seen and go2obj with parent alt_ids
          for goid_altid in goobj_parent.alt_ids:
              goids_seen.add(goid_altid)
              ##A self.go2obj[goid_altid] = goobj_parent
          # Loop through children
          for reltype, recs in goobj_parent.relationship.items():
              if reltype in self.relationships:
                  for relrev_obj in recs:
                      relrev_id = relrev_obj.id
                      rel2dst2srcs[relrev_id].add(parent_id)
                      # If child has not been seen, traverse
                      if relrev_id not in goids_seen:
                          ##F self._traverse_relrev_objs(rel2dst2srcs, relrev_obj, go2obj, goids_seen)
                          self._traverse_relationship_rev_objs(rel2dst2srcs, relrev_obj, goids_seen)
docs: Traverse from source GO down children.