code: def complete_definition(subj: Node,
                          source_graph: Graph,
                          target_graph: Optional[Graph]=None) -> PrettyGraph:
      
      if target_graph is None:
          target_graph = PrettyGraph()
      for p, o in source_graph.predicate_objects(subj):
          target_graph.add((subj, p, o))
          if isinstance(o, BNode):
              complete_definition(o, source_graph, target_graph)
      return target_graph
docs: Return the transitive closure of subject.
      :param subj: URI or BNode for subject
      :param source_graph: Graph containing defininition
      :param target_graph: return graph (for recursion)
      :return: target_graph