What is Blosxonomy?

Simply put: It's a Zen thing...

Blosxonomy is a very lightweight Blosxom like blogging system written in Ruby, and designed around four core ities: simplic-ity, taggabil-ity, extensibil-ity and compatibil-ity.

Download the latest version, and a sample flavour to get started! There's also a set of plugins too. Already a pyBlosxom user?

Interested, but not sure?
Posted Mon, 30 Jun 2008

Interested in Blosxonomy, but not quite sure? If you're an existing pyBlosxom user, you can install Blosxonomy in parallel, without needing to change anything about your existing set up! That way you can give Blosxonomy a test run with no risk to your site.

Why Switch?

Folksonomy is an extremely powerful concept that allows relationships between entities to grow naturally, instead of being defined. I've recently written some plugins for pyBlosxom that enable Folksonomies for it - but in Blosxonomy, it's a central concept. The power and flexibility of tagging is tremendous, and while it may seem on the surface as just having "multiple categories", you'll discover that with Blosxonomy, you can do much much more.

That having been said, Blosxonomy is very young - and not quite full featured as far as blogging goes. If you regularly blog via XML-RPC or use other advanced blogging technologies, then Blosxonomy is not ready for you.

If you're like me, and you like simplicity and power - you're going to love Blosxonomy.

Installing Blosxonomy Safely

The first thing to do is download Blosxonomy - there's a link to the latest release in the sidebar (currently 0.3.1), and extract it to a folder on your web server. I prefer to use /opt/blosxonomy like so:

tar -C /opt -xjf blosxonomy-0.3.1.tbz2
ln -sf /opt/blosxonomy-0.3 /opt/blosxonomy

This will create /opt/blosxonomy-0.3, which you can symlink to /opt/blosxonomy for simplicity. This scheme makes it easy to install new versions, just redirect your symlink, and you're done.

Next, lets copy the CGI script and config file to your cgi-bin directory. I'll assume you're using ~/public_html as your document root, and ~/public_html/cgi-bin as your CGI directory.

cp /opt/blosxonomy/web/* ~/public_html/cgi-bin

Great! We're almost there. For this next step, you'll want to have your pyBlosxom config handy, as we'll be copying some settings out of it. Open ~/public_html/cgi-bin/config.rb in your text editor of choice, and at a minimum, set the following settings:

bc['codebase'] = /opt/blosxonomy
bc['datadir'] = < copy this from your config.py >
bc['flavourdir'] = < typically the same as your datadir in pyBlosxom >

# e.g. http://www.myserver.com/cgi-bin/blosxonomy.cgi
bc['base_url'] = < copy from config.py, changing pyblosxom.cgi to blosxonomy.cgi >

Most of the rest of the settings are self explanatory, fill them in as you see fit.

You should now be able to access your website through Blosxonomy at the base url you specified in config.rb! Since we didn't touch anything related to pyBlosxom, your original site is still in tact, and you can give Blosxonomy a fair shot!

NOTE: If you were using my Folksonomy or TagCloud plugins in pyBlosxom, you'll get an Internal Server Error when you try to access the blosxonomy site! This is because the $tags variable that you use in your story template has been replaced. Follow my steps below to safely get Blosxonomy working!

Blosxonomy's Power

Now that we've gotten this far, you'll want to add tags, a tag cloud, related stories, and related amazon items to your blog. Doing so requires that you modify your flavour templates, however we don't want to do anything that could mess with your existing site. We'll make a blosxonomy-specific copy of your flavours, and then you can modify them any way you like. Let's assume that your flavour templates and data files exist in ~/public_html/data - and do the following:

mkdir ~/public_html/flavours
cp ~/public_html/data/*.html ~/public_html/flavours

Then edit your config.rb:

bc['flavourdir'] = /home/username/public_html/flavours

Blosxonomy will now use the new copy of your flavour templates, which you can modify without any consequence to pyBlosxom.

Tag your Stories

Blosxonomy is focused on Tags, not categories. You can tag your entries by adding a tags metadata line with comma separated keywords, like so:

My Post Title
#tags apples,oranges,bananas
My entry body

This is the same tagging format I use for my pyBlosxom plugins. If you don't already use tags, pyBlosxom will treat this as meta data which just doesn't get used - so it's completely safe - there's no reason to make a blosxonomy specific copy of your data.

Be careful though, because editing a file will change it's mtime, which pyBlosxom (and Blosxonomy) use as it's post date. A neat trick is to retouch the file back to it's original date immediately after the edit. Suppose your post has an mtime of Nov 1, 2005 at 1:59pm, you would do:

nano -w my_post.txt && touch -t 0511011359 my_post.txt

When your text editor exits, the file is retouched to it's original post date.

To make your stories show what their tags are, simply add $tagstring to your story template.

While tagging can be tedious if you have a lot of posts, but to truly benefit from Blosxonomy, it's well worth the time!

Add a tag cloud

Now that you're tagged, you'll want to replace your boring list of categories (which don't mean anything to Blosxonomy anyway) with a tag cloud. Tag clouds give an immediate visual representation of your blog content, emphasizing your primary content. Edit your head or foot template, and replace your categories with the $tagcloud variable. $tagcloud contains a <div> with id='tagcloud' which you can customize using CSS to fit your blog's style.

Relate your Stories

This is where the power of tags starts to come in handy. Blosxonomy can infer relationships between your entries based on how you tag. To see this in action, simply add $relatedstories to your story template. When you view the story directly (i.e. through it's permalink), you'll now see a Related Stories section, with links to other stories on your blog that are similarly tagged.

The Power of Folksonomy

Folksonomy refers more specifically to the situation when large groups of people tag a large set of entities, allowing relationships to be inferred among seemingly disparate items. To this end, Blosxonomy allows you to reach out to the world and find things that are related to your stories! This is done via a powerful plugins mechanism, that allows for infinite expansion of the core system.

Blosxonomy 0.3 ships with an Amazon Web Services plugin to demonstrate this. It requires an Amazon Web Services account, and you'll need to know your access key (all this is free). Populate the settings in config.rb that are commented for the RelatedAmazonItems plugin, and then add $relatedproducts to your story template. When you view a story directly, you'll see links to Amazon products related to your entry!

Conclusion

You'll find that Blosxonomy is a light weight and powerful system, that's been designed to be immediately useful to a large audience. I'm actively developing more plugins to bring standard features such as Trackback and comments to Blosxonomy, and any help and contributions are more than welcome!

You can view a working example of all these things on my personal blog, timfanelli dot com. That site is currently running Blosxonomy and pyBlosxom in parallel -- all of the main content is driven off Blosxonomy, and I kept pyBlosxom around because I use a nifty Gallery plugin that I haven't ported over yet.

( permalink | add to del.icio.us | 0 comments | tags: documentation )

Post a Comment




clear comment | submit comment