Will Holcomb

22 January 2010

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.