*
   * @throws UnknownHostException if cyc server host not found on the network
   * @throws IOException if a data communication error occurs
   * @throws CycApiException if the api request results in a cyc server error
   */
  public CycConstant makeCycConstant(String name)
          throws UnknownHostException, IOException, CycApiException {
    String constantName = name;

    if (constantName.startsWith("#$")) {
      constantName = constantName.substring(2);
    }

    CycConstant cycConstant = getConstantByName(name);

    if (cycConstant != null) {
      return cycConstant;
    }

    String command = wrapBookkeeping("(ke-create-now \"" + constantName + "\")");
    Object object = converseObject(command);

    if (object instanceof CycConstant) {
      cycConstant = (CycConstant) object;
    } else {
      throw new CycApiException("Cannot create new constant for " + name);
    }
    CycObjectFactory.addCycConstantCache(cycConstant);

    return cycConstant;
  }