[ZODB-Dev] Excellent overview of ODBMS and my take on ZODB

Casey Duncan c.duncan@nlada.org
Tue, 26 Feb 2002 09:49:50 -0500


On Tuesday 26 February 2002 08:05 am, Patrick K. O'Brien allegedly wrote:
> Hmmm. Why is that? I've looked at the source code and it looked like it
> would be quite possible to strip out all of the Zope stuff. Or do you mean
> that the Zope folks have no interest in doing so? No offense to Zope, but
> if StandaloneZODB is going to make any headway as an ODB for non-Zope
> applications it would help to have features like cataloging that didn't
> have a bunch of Zope overhead. At least that's how I feel about it.
>
> I'll also not that the ZODB Roadmap
> (http://www.zope.org//Wikis/ZODB/ZODBRoadmap) has this to say:
>
> "Query and index support
> Allow automatic indexing of objects, a feature frequently requested by ZODB
> users. Perhaps the concrete form of the project would be to integrate the
> catalog more closely with the transaction mechanism.
>
> There is a fair amount of research needed to figure out how to attack this
> problem and to see what previous work we can build on. It might be good,
> e.g., to build on OQL, which is part of the object data standard, but I
> don't know enough about it to make an informed decision."
>
>
> I look forward to hearing more about this. Thanks for the feedback so far.
>
> ---
> Patrick K. O'Brien
> Orbtech

There are several indexing options for standalone ZODB. The most basic one, 
that comes with the standalone package is BTrees. They are pretty low-level, 
but can be used to create indexes of objects.

PluginIndexes and Catalog (not ZCatalog), can also, in theory, be used 
outside of Zope, but you would need to pry them loose from their Zope 
moorings. IOW they will probably not work by just pulling the packages out of 
Zope right away. I imagine TextIndexes would be quite useful outside of Zope 
tho.

On the bright side, Zope 3 should go a long way toward solving this problem, 
since it not only makes it easier to use non-Zope Python packages in Zope, 
but should also make it much easier to pluck specific fruit out of Zope (like 
ObjectHub) and use it standalone.

As for a query language, I hope to have a hand in creating a Pythonic query 
language that can encapsulate queries as Python objects. These query objects 
could then be applied to any collection of Python objects that has an adapter 
implemented to run queries. Things like ObjectHub and Folder could have 
adapters for this. That could be used as a basis for other minilanguages like 
OQL or XPath if somebody else wanted them (I don't 8^)

/---------------------------------------------------\
  Casey Duncan, Sr. Web Developer
  National Legal Aid and Defender Association
  c.duncan@nlada.org
\---------------------------------------------------/