Ionrock Dot Org

by Eric Larson

My Weblog

Bright Content Deployed

So, this week the Semantic Technologies conference went live. This is the first commercial deployment of Bright Content as well as its first foray into more generalized content management. I did want to take a second to say thanks to Uche and Eric for having me on the team. A big thank you goes to Zepheira for using Bright Content and seeing its potential.

The big question then is where you can see Bright Content on the Semantic Technologies Conference site. The answer is everywhere! The site uses XSLT for rendering content via a core data file and XSLTemplates . Each page then is created by adding a new template that extends the base XSLT. The templates are stored in an AtomPub store and could potentially be administered using AtomPub, but for our purposes, we left that out. Beyond the pages there are a few programmatic helpers out there such as scheduler, which uses Bright Content to mess with iCal files.

The other big feature of the site is comments. More specifically, we are referring these as annotations since they are really more than simple comments. Again, we are using Bright Content's AtomPub store. The comments are simply posted to the comment store and can be queried via a key to get a feed. The comments are moderated via Atom's control element.

This was all very simple due to Bright Content's core libraries. The first main library is XSLTemplates that has become relatively simple and easy to use. The other primary core lib is the Bright Content Atom store. The store is based on Amplee and has helped drive its development. Specifically, we have used Amplee for its indexers. Amplee allows you to create indexes that can be driven by whatever sort of scheme as needed. This means indexing pieces such as Atom categories or in the case of commenting, the Atom Threading Extension in-reply-to elements. The model can definitely be applied to generic XML, but at the moment we are using Atom. With that said, the indexing can occur on both the Atom entry and/or the actual content. So, in theory, one could do some crazy image processing to see if the picture is a person or not and make a feed of people pics.

The indexing piece of Amplee is nice because you can specify how the index is stored as well as how the actual data is stored. We are using a file storage and memory for indexes, but Sylvain has hooked up S3, SVN, and a wealth of other basic storage facilities that are all very nice. This means if one index is rarely used and large, we can persist to disk or S3 while those we use all the time can be directly in memory for faster look ups.

At the moment we are still actively working on getting Bright Content to be something someone could easily install. For the moment though, it is becoming apparent the XML with indexes model is very robust. Our pattern for applying business logic seems to be pretty solid in that it was easy to layer the store with our requirements. Overall, I would say the project was a huge success!

Posted Tue Feb 26 21:52:58 2008 by Eric Larson
using python, jquery and emacs ;)