Every time I write this down, I dislike how it sounds, so I'm going to brainstorm for a while.
Templates build composite documents from constituent documents. The example that I mentioned previously was:
<html> <head><title>Greeting</title></head> <body><p>Hello <?php print $name ?></p></body> </html>
Which can be represented as a tree by:
What I would like to explore is a templating system that is drawing from a content tree which organizes binary strings.
For example, the previous example might be written as:
<html> <head><title>Greeting</title></head> <body><p>Hello <templ:var name="user/name/first" /></p></body> </html>
So there are now two trees, the template and the content:
The content tree is simply a method of organizating binary strings, so the template also has a location in that tree:
"Strings" are any list of '0's and '1's, so the tree contains not only text but also other types of media as well:
So this basic idea can be expanded for larger trees.
So, imagine that I would like to create a repository of strings that is collaboratively maintained. For example, Magnatune or Open Clip Art. Each user has their own content tree that they are able to edit without restriction.