The way hierachies are built from context in Traumtank
Hierarchical structures can be used to group a set of 'pages' by a common theme or topic.
In website-building frameworks like *Frontier* (and *RadioUserland* which inherits this same functionality from it's ancestor) this hierarcy is often akso used to define certain attributes (page-template etc.) through this 'grouping'. (All pages in one folder share a common color theme etc.) This is also often expanded to a hierarcical 'inheritance', so that pages 'in a folder under that folder' also 'inherit' those attributes.
As powerfull and usefull this concept is, it has (at least) one major drawback:
The grouping is a fixed categorisation. One given page can only belong to one (and exactly one) 'topic' or 'category'. As the hierarchical model often directly correlates to the physical storage of the data involved (file-system, odb), putting one piece of text under two or more topics results in physical duplication and the resulting maintainance hassle of keeping multiple 'duplicates' in synch.
Here, each piece of data (atom) is stored only once, and the storage of atoms is basically 'flat'. From the storage view all atoms lie directly beside each other (in one 'folder')
But how do 'hierarchies', or grouping by topic fit into this?
Each atom can be addressed directly, by name.
But they can also be addressed in a hierarchical way like so:
Now if one observes the page-title of these atoms, one will notice that they 'inherit' from the atom before them.
Well, this is arguably only are very weak demo for this inheritance stuff, but it shows the concept.
This inheritance can also be applied to attributes like page-templates, color-definitions etc.
Now what is noteably about this approach is the fact that each of these atoms could be grouped in other ways also.
And that last Link also illustrates an advanced 'feature', the #contains attribute.
This attribute controls inheritance, and is also a the beginning of a 'silbling' concept of relatd atoms.
Powered by Traumtank
© 2002 firstname.lastname@example.org