Hello everyone, I am very pleased to announce the initial release of ZOQL Method, version 0.2.0! What does ZOQL stand for? As you might have guessed, ZOQL stands for Zope Object Query Language. What does it do? With ZOQL you can query through the ZODB and retrieve objects, as you might be used to from SQL. Other statements, such as INSERT, CREATE, UPDATE, DELETE are supported as well. I hope to implement the ALTER statement soon. For more details on the language go to: http://demo.iuveno-net.de/iuveno/Products/ZOQLMethod/Documentation. The online help has also the reference as well as a nice and long example. Does the ZOQL try to compete with the ZCatalog? No, not at all! In fact, ZOQL uses the ZCatalog to implement its Indexes. Yes, ZOQL can use a ZCatalog for queries, instead of walking through the tree itself. Can I create Classes with ZOQL? Yes! You can create Products and put Classes into it. This is in particular useful for making temporary classes quickly. Later it will also serve as a method to generate Products from Case Tools like ObejctDomain. At the moment only ZClasses are supported though. Does it implement any standard? No! Back in May, when I first thought about ZOQL, I looked at many of the current so-called "standards". At the end, there were basically three choices left. Use (1) XPath/XQuery, (2) OQL/OCL or (3) implement a new language. Well, while XPath is okay, it really does not support any object manipulation and XQuery's syntax on the other hand is unacceptable for a Python programmer in my opinion. The OQL/OCL is supposed to be THE official standard for object-oriented query languages; yeah right, after reading a good chunk of the specs it was so obvious that it was horribly Java-bias, having three different data structures for a simple list... Well, so I was left with choice number 3. So I wrote down the original language reference and tried to keep it as close to SQL as I could. But the next task was to write a parser. This was the end of the project, until Thomas Foerster used Aaron Watter's kwParsing engine to implement the basic parser last month. Thanks a lot for the work! He gave the entire language a Pythonic twist by copying large parts of the Python Language Reference. :-) I finally got around to implement the product this weekend. If you feel like sending me a hate mail right now, please send it to srichter@cbu.edu! Did you get interested? The main URL is http://demo.iuveno-net.de/iuveno/Products/ZOQLMethod, but you can also find the files on Zope.org at http://www.zope.org/Members/srichter/Products/ZOQLMethod. Please feel free to send me any ideas, thoughts, comments, criticism, bugs and patches to srichter@cbu.edu! Regards, Stephan PS: ZOQL is pronounced 'So cool!' :-) -- Stephan Richter CBU - Physics and Chemistry Student Web2k - Web Design/Development & Technical Project Management