private void process(ReferenceNode feature, RankProfile profile) {
        if (feature.getName().equals("onnxModel") || feature.getName().equals("onnx")) {
            if (feature.getArguments().size() > 0) {
                if (feature.getArguments().expressions().get(0) instanceof ConstantNode) {
                    ConstantNode node = (ConstantNode) feature.getArguments().expressions().get(0);
                    String path = OnnxModelTransformer.stripQuotes(node.toString());
                    String modelConfigName = OnnxModelTransformer.asValidIdentifier(path);

                    // Only add the configuration if the model can actually be found.
                    if ( ! OnnxModelInfo.modelExists(path, schema.applicationPackage())) {
                        path = ApplicationPackage.MODELS_DIR.append(path).toString();
                        if ( ! OnnxModelInfo.modelExists(path, schema.applicationPackage())) {
                            return;
                        }
                    }

                    OnnxModel onnxModel = profile.onnxModels().get(modelConfigName);
                    if (onnxModel == null)
                        profile.add(new OnnxModel(modelConfigName, path));
                }
            }
        }
    }
Processes ONNX ranking features of the form:

    onnx("files/model.onnx", "path/to/output:1")

And generates an "onnx-model" configuration as if it was defined in the profile:

  onnx-model files_model_onnx {
      file:  "files/model.onnx"
  }

Inputs and outputs are resolved in OnnxModelTypeResolver, which must be
processed after this.

@author lesters
config-model/src/main/java/com/yahoo/schema/processing/OnnxModelConfigGenerator.java