ZOQL Methods allow you to quickly query and manipulate objects in the ZODB. You do not require the ZCatalog or worry about all the namespace issues. And, I tried to keep it as close to SQL as I possibly was able to, which makes it easy to use for the long-time SQL coders.
Why did I not use a standard? Well, in my opinion there is no real standard out there. Oh, you mean the OQL and OCL standard? Have you looked at it? It is so Java-centric that no Python programmer would use it. Why not XML (XPath/XQuery...)? In my opinion XPath is okay and with 4Suite you already have nice XPath support in Zope. XQuery has simply a disgusting syntax, which I would never use. Furthermore, I think for a Programming language like Python and an advanced Application server like Zope, there needs to be a simple, leightweight query language. And that's the goal of ZOQL!
A lot of the credit for this product goes to Thomas Foerster, who implemented the original parser and wrote the first proof of concept. I took it from there to make it a Python product.
How do you pronounce ZOQL? It is like: So cool! :-)
So cool!