Fix inconsistent naming of poly classes?
Application
The class naming of the polynomial classes seems inconsistent to me ("model" vs. "polynomial"). For example, consider the higher order polynomial class (BinaryPolynomial) vs. the quadratic one (BinaryQuadraticModel).
Proposed Solution
How about BinaryPolynomialModel for the higher-order polynomial class? The documentation even uses this terminology already! ("Higher-Order Models")
I agree it is inconsistent. Though I find most of the other options unsatisfying. BinaryModel seems too general. BinaryPolynomialModel feels redundant. I am not opposed to adding some aliases though if there is consensus about what aliases should be added.
If you feel strongly that "Quadratic"/"Polynomial" are redundant then another option is keeping it BinaryPolynomial and switching the BQM to BinaryQuadratic. That would be disruptive though. I still think BinaryPolynomialModel is the best choice. It's a localized change that makes things consistent again, and each part of the name does carry significance from my point of view - the "polynomial" and "model" are not fully redundant. I think aliases are not a great solution, since two names for the same class could cause confusion.
Unfortunately simply changing the name would be a significant backwards compatibility break. The fastest we could change it would be to add an alias for the remainder of the 0.11.x run, deprecate it in 0.12.0, and then remove it in 0.13.0.
That would require consensus on what an appropriate alias should be, and you know what they say about naming. I have no strong feelings about what BinaryPolynomial should be called, but the current name has the advantage of being in use, so any change needs to require some consensus from the user base.
I would love to leave this issue up for a bit to see if there is any pickup on it.