private void doSubLWorkerDataAvailable(SubLWorkerEvent event) {
    Object obj = event.getWork();
    if ((obj == null) || (!(obj instanceof CycList))) {
      if (CycObjectFactory.nil.equals(obj)) {
        return;
      }
      throw new RuntimeException("Got invalid result from inference: " + obj);
    }
    final CycList data = (CycList) obj;
    if (data.size() < 2) {
      throw new RuntimeException("Got wrong number of arguments " + "from inference result: " + data);
    }
    Object obj2 = data.get(0);
    if ((obj2 == null) || (!(obj2 instanceof CycSymbol))) {
      throw new RuntimeException("Got bad result keyword " + "from inference result: " + obj2);
    }
    CycSymbol keyword = (CycSymbol) obj2;
    final String keywordName = keyword.toCanonicalString();
    if (keywordName.equals(":INFERENCE-START")) {
      handleInferenceInitializationResult(data);
    } else if (keywordName.equals(":INFERENCE-ANSWER")) {
      handleInferenceAnswerResult(data);
    } else if (keywordName.equals(":INFERENCE-STATUS")) {
      handleInferenceStatusChangedResult(data);
    }
  }