Share |

Home > Archive > Recipes & articles > Trellis: Blogging for ideas > Evolution of Trellis


Growing and shaping Trellis

Origin and name

The best way to make something work is to test it within a real-world application. Led by this rule, and after conceiving the idea of Trellis, I created a new blog to test the concept. The goal of this blog was for Trellis to develop itself by providing a medium for logging and discussing ideas about it. Through the practice of using the blog as a research tool, these ideas matured and were further modified.

The first significant change I made to the blog was to integrate several WordPress plug-ins. Plugins are ready-made modules (in the context of WordPress, code snippets) that perform an action or modify the behavior of the parent blogging system. The plugin architecture of WordPress is robust, allowing plug-ins to be tied to a specific action, such as when a post is made, or act as a filter, such as when returning posts that meet certain criteria.

The first plugin I added to Trellis was "Dunstan’s Time Since," a simple plugin that displays the date of a post as the difference between the point it was written and the time it is viewed. This behavior was quite helpful in making the post datestamps more relevant to the chronology of the blog.

I then developed a name for the approach. Given the nature of a system for developing evolving knowledge, I selected metaphors for growing, gardening, and cultivation as generators.

In a brainstorming session, I found an excellent metaphor in the word “trellis.” Just like the commonly seen companion to a growing tomato plant, Trellis acts as a scaffold for cultivating ideas and ripening knowledge. This same feeling was carried out in the logo used to represent trellis, designed using the same garden metaphor.

Hierarchy – The lesson learned from nature

As more posts were compiled, I realized that an organizational system was needed to structure the developing knowledge. Initially, this was accomplished using WordPress’ category system, and supplemented by the addition of a plugin to support tagging. This kind of simple categorization, however, quickly proved insufficient to facilitate a developing idea.

This need prompted research into the organization and visualization of information. A survey of man-made and nature-based organizational systems revealed that the most effective methodologies were usually the simplest and most flexible. This was evident in the pattern of seeds in a sunflower pictured below - a complex organization simplified by a singular rule.

Further research into nature led to the understanding that by defining an implicit structure, ideas and knowledge could be more easily mapped and understood.

Nature is an organized hierarchy. Just as this sunflower orders its seeds upon a fractal-based hierarchical spiral, so do humans in the ways we are structured (arms leading to fingers, arteries branching to capillaries), act (social hierarchies, family trees, structures of government), and think (listing, outlining, breaking down larger problems into smaller ones).

Taking suggestions from nature, I decided that a hierarchical method was the most relevant and perhaps even an instinctual approach for organizing information.


I initial implemented a hierarchical structure within Trellis by adapting an open-source Tree class written for PHP. This class, like the organic system it is based upon, uses a single recursive operation to organize and traverse its own structure. This adaptation required some intensive modification to WordPress.

As the hierarchical structure inflated with information, a new problem appeared. Even though the structure was well organized, it was difficult to interpret its development. This problem stemmed from the fact that the structure was only visualized hierarchically. It was like a table of contents for a book that has no story. The need for a system to visualize both the developing story and its growing body of knowledge soon became apparent.

Research into how to solve this problem began a wave of simplification. I found out that WordPress already supports a system of hierarchical organization through Pages - static blog posts that exist outside of the regular blog chronology. By using this system, I dramatically simplified the code base of Trellis, as the custom-designed PHP Tree class was no longer necessary. This simplification also provided clarity to the nature and definition of Trellis. The hierarchical knowledgebase could be used as an index for collecting and organizing information, and the chronological blog could act as a story of the developing ideas.

Through the synthesis of a hierarchy and chronology, the blog was developing into a rich knowledgebase of research on ideation, organization, and visualization. Ideas were becoming more solid as to what utility a blog can provide when applied to research and development. These thoughts were stored inside the blog, and the conversations with friends, colleagues, and collaborators were also recorded, directly in context with the content. The historical ability of Trellis was beginning to reveal itself, as the blog archives provided details of activities and developments early in the process.

Visualizing changes over time

As the core of the Trellis system became better defined, some preliminary workarounds required further attention.

One area needing work involved the visualization of changes within the blog and knowledgebase. By default, WordPress does not broadcast the addition of the hierarchical pages within the chronology of the blog. This was problematic, since the notice of additions or updates to the knowledgebase were not visible to the user. Numerous solutions were hypothesized as to how to trace the development of a hierarchy within a chronological timeframe. Using what I had learned from nature, several visualization concepts were developed that explored the concept of an evolving hierarchy.

These ideas, although visually attractive, lacked both usability and functionality. It so happened that I found a solution while spending time on Facebook, a popular social networking web site.

Facebook had recently undergone a major redesign and implemented the “newsfeed,” a dynamically generated reverse-chronological list of updates to the profiles of friends within one’s social network. The newsfeed concentrated changes in a social network to one centralized area, so that users weren’t required to skip from profile to profile attempting to ascertain new information. This is illustrated in the figure below, taken from my own newsfeed:

Then I realized that a similar concept could be modeled within Trellis. Just as the Facebook newsfeed shows updates to a social network over time in a blog-like reverse-chronological list, so could Trellis visualize updates to the blog and knowledgebase. This approach was delightfully easy to implement, and only required modifying a single database query that told the blog which posts to display on the front page. The result is a list of updates, in reverse-chronological order, which visualizes the result of developing knowledge over time, as seen on the picture below:

Achieving organic adaptation

By design, Trellis is a self-sustaining system that systematically seeks to better organize and visualize itself. This implicit research goal set Trellis’ development into motion and accelerated exponentially as new methods were conceived, tested, and implemented. Such a process isn’t anything revolutionary, as it has happened - and still keeps happening - actively throughout nature.

Being developed at the speed of growing knowledge, I created numerous workarounds in order to keep the system evolving. Although many of these workarounds were initially made as a simple proof of concept, they were soon heavily used and relied upon so that the system could continue to evolve.

Share |