docs: def obo(self):
          """str: the `Term` serialized in an Obo ``[Term]`` stanza.
  
          Note:
              The following guide was used:
              ftp://ftp.geneontology.org/pub/go/www/GO.format.obo-1_4.shtml
          """
          def add_tags(stanza_list, tags):
              for tag in tags:
                  if tag in self.other:
                      if isinstance(self.other[tag], list):
                          for attribute in self.other[tag]:
                              stanza_list.append("{}: {}".format(tag, attribute))
                      else:
                          stanza_list.append("{}: {}".format(tag, self.other[tag]))
  
          # metatags = ["id", "is_anonymous", "name", "namespace","alt_id", "def","comment",
          #             "subset","synonym","xref","builtin","property_value","is_a",
          #             "intersection_of","union_of","equivalent_to","disjoint_from",
          #             "relationship","created_by","creation_date","is_obsolete",
          #             "replaced_by", "consider"]
  
          stanza_list = ["[Term]"]
  
          # id
          stanza_list.append("id: {}".format(self.id))
  
  
          # name
          if self.name is not None:
              stanza_list.append("name: {}".format(self.name))
          else:
              stanza_list.append("name: ")
  
          add_tags(stanza_list, ['is_anonymous', 'alt_id'])
  
          # def
          if self.desc:
              stanza_list.append(self.desc.obo)
  
          # comment, subset
          add_tags(stanza_list, ['comment', 'subset'])
  
          # synonyms
          for synonym in sorted(self.synonyms, key=str):
              stanza_list.append(synonym.obo)
  
          add_tags(stanza_list, ['xref'])
  
          # is_a
          if Relationship('is_a') in self.relations:
              for companion in self.relations[Relationship('is_a')]:
                  stanza_list.append("is_a: {} ! {}".format(companion.id, companion.name))
  
          add_tags(stanza_list, ['intersection_of', 'union_of', 'disjoint_from'])
  
          for relation in self.relations:
              if relation.direction=="bottomup" and relation is not Relationship('is_a'):
                  stanza_list.extend(
                      "relationship: {} {} ! {}".format(
                          relation.obo_name, companion.id, companion.name
                      ) for companion in self.relations[relation]
                  )
  
          add_tags(stanza_list, ['is_obsolete', 'replaced_by', 'consider',
                                 'builtin', 'created_by', 'creation_date'])
  
          return "\n".join(stanza_list)