In the spirit of release early, release often, I’m posting a first draft of a Movable Type ObjectDriver (storage backend) that uses Redland and mysql. All of the old database tables are now represented as triples in the store, with appropriate data transformations (dates are represented in W3CDTF using
dc:date, URLs are stored as resources).
Using Redland as the storage backend has some performance penalties, but I think the flexibility to be gained outweighs the speed issues (at least in some cases). New data can be added to the RDF model without any of the various issues surrounding Movable Type’s PluginData class (having to resort to serializing data with Storable before dropping the plugin data into a text field in the database).
I’ve got two plugins included in the package that add triples based on entry content. The first uses dcterms:references to added links from the entry to any external pages linked in the post text. The second is a proof-of-concept for using the Reviews schema. The semantics aren’t quite right yet (the review is attached to the entry, and not it’s topic), but it’s clearly possible to do some interesting things at the triple level.
Next steps include:
- generating RSS 1.0 directly from the model (perhaps using a new template tag) so that unexpected triples (from plugins) will show up in the feed without modifying the feed’s template.
- creating an extensible mechanism for adding interfaces to the MT posting UI to add semantic information. (The reviews plugin should use this, but is currently scraping the text of the entry.)
The code and permanent home for the project can be found in my code section: MT-Redland. (I’m not sure I’d consider this beta quality, so I won’t take any responsibility if it breaks something. That said, if you install it, I’d love to hear about it.)