Drupal treats taxonomies like any other entity and so you can have as many as you like. You then associate them with module types and when someone creates an instance of a new module (Node) they are given the option to select which term(s) (i.e. category) they want to put the data in. Modules can have more than one taxonomy associated with it. In reality all data is treated the same and the taxonomies make the bumps in the landscape. we had the problem that you couldn’t associate one bit of content with another but someone wrote a handy module to do this. It basically allowed parent child relationships between the data of different module types i.e. so a an ‘Article’ about a course could have ‘Events’ listed with it to book those courses. The interface became unintuitive because the admin had to make then both separately and then separately make the associating between the course description and the booking listings.
I was thinking that you can globally use a flat Tag like taxonomy for organiising data and have small fixed hierarchies for building composate data types e.g. if you want to do a booking system you could have a ‘Gig’ which can be made up of three smaller modules ‘Address’, ‘Event’, ‘Price Tag’ (for buying tickets). This would be a small hierarchy but grouped as one entity and perhaps appear on the site under ‘Festival listings’ and also with the band when you look at them. Parts of the Gig could be used separately e.g. the Event which has a Date could be used in a Calendar of what’s on in the Festival, and the Price Tag might appear in the shop with other band merchandise.
I’m thinking this mini hierarchy thing will present one face for entering the data for a ‘Gig’ to the three ‘sub modules’ of Gig, ether as a series of forms or some how as one form (avoiding conflicts with field names etc) and processed as one.
The way that the mini hierarchy can be put together using Tags I’m thinking is that they will all be given Node ID’s (all module instances will have one) and have the same Tags as the ‘Gig’ is given but the sub modules will automatically be give the ‘Gig’ node ID as a tag, so when you view the ‘Gig’ anything with the Gigs Node ID as a Tag will appear with it. The only problem this leaves is ordering of content on the screen which is no trivial matter and a problem that Drupal had too but I’m working on an answer.