code: def generate_term(self, **kwargs):
          
          term_map = kwargs.pop('term_map')
          if hasattr(term_map, "termType") and\
              term_map.termType == NS_MGR.rr.BlankNode.rdflib:
              return rdflib.BNode()
          if not hasattr(term_map, 'datatype'):
              term_map.datatype = NS_MGR.xsd.anyURI.rdflib
          if hasattr(term_map, "template") and term_map.template is not None:
              template_vars = kwargs
              template_vars.update(self.constants)
              # Call any functions to generate values
              for key, value in template_vars.items():
                  if hasattr(value, "__call__"):
                      template_vars[key] = value()
              raw_value = term_map.template.format(**template_vars)
              if term_map.datatype == NS_MGR.xsd.anyURI.rdflib:
                  return rdflib.URIRef(raw_value)
              return rdflib.Literal(raw_value,
                                    datatype=term_map.datatype)
          if term_map.reference is not None:
              # Each child will have different mechanisms for referencing the
              # source based
              return self.__generate_reference__(term_map, **kwargs)
docs: Method generates a rdflib.Term based on kwargs