[ZODB-Dev] I want Object Gadfly

Jim Fulton jim at zope.com
Fri Jul 18 11:45:51 EDT 2003


I've been thinking a lot recently about relationships, relations,
and associations.  I'm coming to the conclusions that:

- There should be two separate concepts:

   - Relations, which model externally imposed relationships
     between objects.

   - Accociations, which model direct relationships between objects
     You should be able to access associations directly through objects
     without accessing some service.  Maybe there are two kinds of these:
     simple and "content" (for lack of a better term)>  Simple associations
     are just Python references. Content associations are themselves content.
     They may have hub ids, can be cataloged. Maybe they can even show up in
     relations.

- Relations should be implemented via Object Gadfly (or something
   like it). Object Gadfly is Gadfly implemented over ZODB.  It
   allows you to use SQL (and presumably other sorts of analysis)
   against relations (tables) stored in the ZODB. These relations
   can contain any objects.

   With Object Gadfly, you can create relations between objects using
   content-space tables or named site-wide utilities. Data can be added
   to them explicitly, or automatically via event subscription. Tables can
   be indexed and you can execute automatically optimized queries against
   them using SQL.

Unfortunately, Object Gadfly doesn't exist. :(
Any takers? :)

Notes:

    . Despite references to Zope concepts like
      hubs, content and utilities, Object Gadfly need have
      nothing to do with Zope.

      Object Gadfly need not be ZODB specific.
      It only needs to have an open enough storage model to allow
      ZODB to be plugged in.


Jim

-- 
Jim Fulton           mailto:jim at zope.com       Python Powered!
CTO                  (703) 361-1714            http://www.python.org
Zope Corporation     http://www.zope.com       http://www.zope.org




More information about the ZODB-Dev mailing list