[Zope-Annce] ZOQL Method 0.2.0 released
Stephan Richter
srichter@cbu.edu
Sun, 07 Oct 2001 21:17:52 -0500
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