Monday, June 10, 2002

More ZCML brick walls
There are approximately 91 ZCML files in a fresh CVS update of Zope 3. I still can can barely figure out what one of them is doing. And I still abhor the syntax. Fortunately, documentation of ZCML has started. Unfortunately, with a large project and tight deadline, I still don't have time to investigate Zope 3 further. Why? ZCML terrifies me. It shouldn't, but it does. Part of it is that it's a moving target. Part of it is the giant question mark floating over my head and steam coming out of my ears every time I encounter a ZCML file.

Hopefully, I can use or tweak Slip to edit/generate it.
6:40:33 PM  blips[]    

Organization Objects
Ken Manheimer has also posted a proposal (a little bit dated) about what he calls Organization Objects, and a really good companion paper about the motivations for organization objects. The motivations paper discusses how the parent/child and table of contents relationship(s) were done for ZWiki, and how Organization Objects (which bear similarity to XLink) would have benefited the application.

A bullet point in the Organization Objects proposal that I really liked is:

  • Living with only links and searches is like living in an imaginary world where every room is connected to every other by transporters - it lacks a basis for regionality, neighborhood.

    In other words, it lacks progressively grouped regions by which you can realize "where you are".

2:43:36 PM  blips[]    
ZWiki and logical structures.
ZWiki is a sehr-cool beast, as far as Wikis go. A very attractive feature, seen all over the Zope.org web site is Ken Manheimer's work on page/parenting relationships. This makes it so that Wiki pages, although stored in a flat namespace (all in one folder) can appear to be hierarchical, depending on which page generated which page (parenting can be altered of course). This in turn leads to cool things, like a structured table of contents (see the Zope 3 wiki's TOC Here).

It's especially cool in that it's fairly easy to change the hierarchical structure of the Wiki - by looking at a page's backlinks, one can reparent a page to one or more of its linkers. Essentially, new logical structures can grow independent of the physical structure.

I've used a similar feature in a recent simple content system, wherein all documents were stored in a single folder, but the users entering content could classify documents in one or more categories. The main pages on the site were basically database queries (actually, catalog queries) based on the classifications. Thus, the site was built out of a simple logical structure rather than a physical one, which allowed documents to appear in more than one place if they needed to be. It's no unique concept, Radio and some other blogging tools allow this, much to my delight.

In the simple compound system I did for that customer, the flat namespace also allowed simple inter-document link management. The author could say "document A links to document B", and when document B was deleted, the link to it would also evaporate. For some reason, doing deep inter-object linking in Zope is still tricky business, but there's hope on the Zope 3 horizon (some of which looks like it may be backported to Zope 2).
12:59:30 PM  blips[]