This seems very close to what PHP does. The difference is that PHP doesn't have so many ways to express itself so it's all done with method-chaining.
In my opinion, this is the way to write the core of an ORM and it should allow to use this abstraction layer too! It's somewhat between SQL queries as strings and ORM-level, I think.