Miles is correct, NLPModels is closer to MathProgBase than to JuMP, but we focus on Nonlinear Optimization, and on writing solvers.
The MPB way, from what I saw, is to create the functions a solver requires, and JuMP provides a way for the user to write something connecting to MPB.
The NLPModels way is to write solvers with an
AbstractNLPModel as argument, and use the NLPModels API. Furthermore, there are some ways to create NLPModels, so the writer can test his solver on hand-written problems, JuMP-written problems and CUTEst problems.
To finalize, we also have a function called
NLPtoMPB than converts a NLPModel to a MPB model. So there is some interchangeability. In this example we solve a CUTEst problem using