public static ClassificationSession getClassificationSession(Keyword instanceordescription) {
    if (((ClassificationSession)(Logic.$CLASSIFICATIONSESSION$.get())) != null) {
      return (((ClassificationSession)(Logic.$CLASSIFICATIONSESSION$.get())));
    }
    { World world = null;
      ClassificationSession session = null;

      if (instanceordescription == Logic.KWD_DESCRIPTION) {
        world = Logic.getInferenceCache(((Module)(Stella.$MODULE$.get())), Logic.KWD_META);
      }
      else if (instanceordescription == Logic.KWD_INSTANCE) {
        world = Logic.getInferenceCache(((Module)(Stella.$MODULE$.get())), Logic.KWD_TMS);
      }
      else {
        { OutputStringStream stream000 = OutputStringStream.newOutputStringStream();

          stream000.nativeStream.print("`" + instanceordescription + "' is not a valid case option");
          throw ((StellaException)(StellaException.newStellaException(stream000.theStringReader()).fillInStackTrace()));
        }
      }
      session = ((ClassificationSession)(KeyValueList.dynamicSlotValue(world.dynamicSlots, Logic.SYM_LOGIC_CLASSIFICATION_SESSION, null)));
      if (session == null) {
        session = ClassificationSession.newClassificationSession();
        KeyValueList.setDynamicSlotValue(world.dynamicSlots, Logic.SYM_LOGIC_CLASSIFICATION_SESSION, session, null);
        session.classificationWorld = world;
      }
      return (session);
    }
  }