code: def _traverse_relationship_objs(self, rel2src2dsts, goobj_child, goids_seen):
          
          child_id = goobj_child.id
          goids_seen.add(child_id)
          ##A self.go2obj[child_id] = goobj_child
          # Update goids_seen and go2obj with child alt_ids
          for goid_altid in goobj_child.alt_ids:
              goids_seen.add(goid_altid)
              ##A self.go2obj[goid_altid] = goobj_child
          # Loop through relationships of child object
          for reltype, recs in goobj_child.relationship.items():
              if reltype in self.relationships:
                  for relationship_obj in recs:
                      relationship_id = relationship_obj.id
                      rel2src2dsts[reltype][relationship_id].add(child_id)
                      # If relationship has not been seen, traverse
                      if relationship_id not in goids_seen:
                          self._traverse_relationship_objs(rel2src2dsts, relationship_obj, goids_seen)
docs: Traverse from source GO up relationships.