[Dev] 4Suite RDF and ZODB

Uche Ogbuji uche.ogbuji at fourthought.com
Mon Oct 28 07:54:41 PST 2002


A kind genetleman pointed me to the discussion here, and I am very
intrigued by this project.  I've surbscribed mostly to lurk, but I did
also want to clear up some misconceptions:


----------------------%-----------------------

> Take a look at
> 
> http://www.onlamp.com/pub/a/python/2001/05/02/pythonnews.html
> 
> for details on Redfoot and 4RDF.  
> This is an older article and the dependency on Python 2.0 has probably
> evolved by now.

I've got a passing familiarity (as in I've read articles and such about)
4RDF, but as far as I can tell, it does not seem appropriate to the
design goal of persisting python class instances in the ZODB. 4RDF
already abstracts transactions and storage to a pluggable interface,
which would have to be ripped out to transparently persist the Python
classes representing RDF. As I recall (and I may be misremembering), it
was largely this issue that led to 4Thought pulling out of the Zope
community's Parsed-XML development effort.

Redfoot (which I was not familiar with), on the other hand, seems to be
better suited for modification in this regard. The in-memory triple
store (http://rdflib.net/latest/doc/triple_store.html) looks like it
could be converted for this purpose in a fairly straightforward fashion.

Now, please bear in mind that the possibility still exists that I am
either misrepresenting these toolkits, or even that I've misunderstood
the architectural approach OSAF developers are contemplating.

----------------------%-----------------------

The RDF library in 4Suite does not have a tight coupling to the back
end.  In fact, it has a very loose coupling , and a ZODB driver would be
trivial.  All it would mean is using the "Memory" driver, which is
nothing more than all the information stored in Python tuples and dicts,
and then using ZODB to make this persistent.  This is already how the
DBM driver works.

People add RDF drivers to 4Suite all the time, most recently MetaKit and
Informix.

As for the Fourthought/Zope split, it's old history that I don't wish to
rehash, but I'll point out that the technical issues had much more to do
with how to mix DOM and Zope persistence.  We had not even got to
thinking about RDF at all.  I think RDF would have been a much easier
nut to crack.

Occasionally, people say they want to have some libraries from 4Suite
without having to install the whole thing (XML repository and all
that).  For them, I've posted:

http://uche.ogbuji.net/tech/akara/pyxml/trimming/

There is much other handy info at

http://uche.ogbuji.net/tech/akara/pyxml/
http://uche.ogbuji.net/tech/akara/4suite/

4Suite 0.12.0x works on Python 2.1 or more recent.


-- 
Uche Ogbuji                                    Fourthought, Inc.
http://uche.ogbuji.net    http://4Suite.org    http://fourthought.com
Python&XML column: 2. Introducing PyXML -
http://www.xml.com/pub/a/2002/09/25/py.html
The Past, Present and Future of Web Services 1 -
http://www.webservices.org/index.php/article/articleview/663/1/24/
The Past, Present and Future of Web Services 2 -
'http://www.webservices.org/index.php/article/articleview/679/1/24/
Serenity through markup - http://adtmag.com/article.asp?id=6807
Tip: Using generators for XML processing -
http://www-106.ibm.com/developerworks/xml/library/x-tipgenr.html




More information about the Dev mailing list