docs: def execute(self, triple_map, output, **kwargs):
          """Method executes mapping between source
  
          Args:
  
          -----
              triple_map: SimpleNamespace, Triple Map
  
          """
          subjects = []
          found_elements = self.source.xpath(
              str(triple_map.logicalSource.iterator),
              namespaces=self.xml_ns)
          for element in found_elements:
              subject = self.generate_term(term_map=triple_map.subjectMap,
                                           element=element,
                                           **kwargs)
              start = len(output)
              for row in triple_map.predicateObjectMap:
                  predicate = row.predicate
                  if row.template is not None:
                      obj_ = self.generate_term(term_map=row, **kwargs)
                      output.add((subject, predicate, obj_))
                  if row.parentTriplesMap is not None:
                      self.__handle_parents__(
                          output,
                          parent_map=row.parentTriplesMap,
                          subject=subject,
                          predicate=predicate,
                          **kwargs)
                  new_subjects = self.__reference_handler__(
                      output,
                      predicate_obj_map=row,
                      element=element,
                      subject=subject)
                  subjects.extend(new_subjects)
                  if row.constant is not None:
                      output.add((subject, predicate, row.constant))
              if start < len(output):
                  if triple_map.subjectMap.class_ is not None:
                      output.add((subject,
                                  NS_MGR.rdf.type.rdflib,
                                  triple_map.subjectMap.class_))
                  subjects.append(subject)
          return subjects