public static NamedDescription slotDgetDescription(Slot self) {
    if (((NamedDescription)(KeyValueList.dynamicSlotValue(self.dynamicSlots, Logic.SYM_LOGIC_DESCRIPTION, null))) != null) {
      return (((NamedDescription)(KeyValueList.dynamicSlotValue(self.dynamicSlots, Logic.SYM_LOGIC_DESCRIPTION, null))));
    }
    else if (self.slotSlotref != null) {
      return (Logic.getDescription(self.slotSlotref));
    }
    else {
      return (Logic.getDescription(Surrogate.lookupSlotref(self.slotOwner, self.slotName)));
    }
  }