public static Description createDescriptionForStellaRelationAndAncestors(Relation self) {
    if (self == null) {
      return (null);
    }
    { NamedDescription description = Logic.getDescription(self);
      TaxonomyNode taxonomynode = Description.findOrCreateDescriptionImplicationSubsumptionNode(description);

      { Relation renamed_Super = null;
        Iterator iter000 = Logic.directSuperrelations(self);

        while (iter000.nextP()) {
          renamed_Super = ((Relation)(iter000.value));
          { Description superdescription = Logic.createDescriptionForStellaRelationAndAncestors(renamed_Super);
            TaxonomyNode supertaxonomynode = Description.findDescriptionImplicationSubsumptionNode(superdescription);

            TaxonomyGraph.createTaxonomyLink(Logic.$IMPLICATION_SUBSUMPTION_GRAPH$, supertaxonomynode, taxonomynode);
          }
        }
      }
      return (description);
    }
  }