@Override
  public Command createCommand(HttpServletRequest request, Workspace workspace) {
    String hNodeId = request.getParameter(Arguments.hNodeId.name());
    String worksheetId = request.getParameter(Arguments.worksheetId.name());
    String rdfLiteralType = request.getParameter(Arguments.rdfLiteralType.name());

    METAPROPERTY_NAME prop =
        METAPROPERTY_NAME.valueOf(request.getParameter(Arguments.metaPropertyName.name()));
    String propUri = request.getParameter(Arguments.metaPropertyUri.name());
    String propId = request.getParameter(Arguments.metaPropertyId.name());
    String selectionName = request.getParameter(Arguments.selectionName.name());

    if (propUri == null && propId == null) {
      propUri = request.getParameter(ArgumentsOld.metaPropertyValue.name());
      propId = propUri;
    }

    return new SetMetaPropertyCommand(
        getNewId(workspace),
        Command.NEW_MODEL,
        worksheetId,
        hNodeId,
        prop,
        propUri,
        propId,
        true,
        rdfLiteralType,
        selectionName);
  }
 public Command createCommand(
     String model,
     Workspace workspace,
     String hNodeId,
     String worksheetId,
     String metaPropertyName,
     String propUri,
     String propId,
     boolean train,
     String rdfLiteralType,
     String selectionId) {
   METAPROPERTY_NAME prop = METAPROPERTY_NAME.valueOf(metaPropertyName);
   SetMetaPropertyCommand comm =
       new SetMetaPropertyCommand(
           getNewId(workspace),
           model,
           worksheetId,
           hNodeId,
           prop,
           propUri,
           propId,
           train,
           rdfLiteralType,
           selectionId);
   return comm;
 }
  @Override
  public Command createCommand(JSONArray inputJson, String model, Workspace workspace)
      throws JSONException, KarmaException {

    String hNodeId = HistoryJsonUtil.getStringValue(Arguments.hNodeId.name(), inputJson);
    String worksheetId = HistoryJsonUtil.getStringValue(Arguments.worksheetId.name(), inputJson);
    METAPROPERTY_NAME prop =
        METAPROPERTY_NAME.valueOf(
            HistoryJsonUtil.getStringValue(Arguments.metaPropertyName.name(), inputJson));
    String propUri, propId;
    if (HistoryJsonUtil.valueExits(Arguments.metaPropertyUri.name(), inputJson)) {
      propUri = HistoryJsonUtil.getStringValue(Arguments.metaPropertyUri.name(), inputJson);
      propId = HistoryJsonUtil.getStringValue(Arguments.metaPropertyId.name(), inputJson);
    } else {
      propUri = HistoryJsonUtil.getStringValue(ArgumentsOld.metaPropertyValue.name(), inputJson);
      propId = propUri;
    }
    boolean train =
        HistoryJsonUtil.getBooleanValue(Arguments.trainAndShowUpdates.name(), inputJson);
    String rdfLiteralType =
        HistoryJsonUtil.getStringValue(Arguments.rdfLiteralType.name(), inputJson);
    this.normalizeSelectionId(worksheetId, inputJson, workspace);
    String selectionName =
        CommandInputJSONUtil.getStringValue(Arguments.selectionName.name(), inputJson);
    SetMetaPropertyCommand comm =
        new SetMetaPropertyCommand(
            getNewId(workspace),
            model,
            worksheetId,
            hNodeId,
            prop,
            propUri,
            propId,
            train,
            rdfLiteralType,
            selectionName);

    comm.setInputParameterJson(inputJson.toString());
    return comm;
  }