zlcatalog is a C library that can be used to organize information in a non-hierarchical way. It features an XML file structure, elements that can belong to multiple groups, groups that can be sorted by name or date, and an API that provides easy methods of bulding groups from directories, adding/removing groups, adding/removing elements, etc.
zlplay is an MP3 player that uses the zlcatalog system to organize songs. zlcatalog is a library for organizing things in non-hierarchical ways. Songs in zlplay can belong to multiple groups. Navigation through the groups shows songs and related groups. So, for example, it's very easy to start listening to all of your songs randomly and then when you hear a song by a particular artist, a single click switches the song list to songs by that artist.
I've been wanting a non-hierarchical organizational system for quite some time. My main reason for wanting this is to organize browser bookmarks that can belong to more than one category. So, I've written the beginnings of such a system which can be found at zenlunatics.com (http://www.zenlunatics.com/zl_catalog/index.htm)
It's currently somewhere around the alpha stage and I haven't worked on it in a while. I haven't written a bookmark manager yet but did write an image viewer, an mp3 player, a simple note keeper and a utility for creating catalogs from a file system. For the bookmark manager I'm thinking of modifying gnobog, galeon or maybe mozilla (suggestions welcome). After that I'd like to like to tackle the file system possibly with a document launcher although I recently read about multi-session support which may solve that problem in a different way.
Anyway I'd really appreciate any comments on zl_catalog including suggestions for a better name :-)