I’ve been tasked with coding the front-end on a new-fangled wish list app for my dear Co., Inc. While that isn’t particularly exciting or interesting, these days I’m always looking to throw a little semantic twist in there, usually along the lines of a rel tag here, full-on microformat there. Since we’re talking product lists here, I’d be remiss if I didn’t use the emerging hProduct draft spec in my markup, which is already part of the plan.
In talking with the project brain wizards and a colleague, it appears one of the requirements is to make these lists “portable”. This I’m a fan of. I sport a dataportability.org sticker on my laptop, but haven’t necessarily found an outlet to use the portability techniques prescribed. This could be a perfect opportunity.
It should be relatively straight forward to build unique list-based Atom feeds (I’m assuming the best out of our technology partners here, they’ve been much maligned in my blog comments before). This may be perfect to build a basic list to share via a feed reader. But what about an open standard similar to hProduct that would more fully define the products in lists to the apps that want it?
Extending the data elements of hProduct to an atom feed may be just the fix. With a simple hProduct namespace (or other aptly-named namespace) we can define rich product details outside of the current atom spec to machines and applications while preserving the integrity of a basic feed for those who want to utilize it in a reader.
A quick example:
<?xml version='1.0' encoding='UTF-8'?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:hproduct="http://microformats.org/hproduct/namespace/1.0">
<id>http://www.jaysstore.com/gifting/lists</id>
<updated>2008-01-14T08:06:21+01:00</updated>
<title>jaysstore.com Gifting list for Bill Morgan</title>
<link rel="alternate" type="text/html" href="http://www.jaysstore.com/gifting"/>
<link rel="self" href="http://www.jaysstore.com/gifting/bmorgan/list" />
<author>
<name>jaysstore.com</name>
<email>gifting@jaysstore.com</emai>
</author>
<generator version="1.0" uri="http://www.jaysstore.com/gifting">jaysstore.com gifting list generator</generator>
<entry>
<title type="text">Flip Video MinoHD Camcorder</title>
<link href="http://www.jaysstore.com/gifting/lists/bmorgan#minohd"/>
<id>urn:uuid:26d11340-c155-11dd-9711-0002a5d5c51b</id>
<category term="Products"/>
<updated>2008-12-03T08:06:21+01:00</updated>
<content type="html">Product short description</content>
<author>
<name>Bill Morgan</name>
<email>bill@billmorgan.com</email>
</author>
<hproduct:availability type="online">This product is available online</hproduct:availability>
<hproduct:brand type="text">Pure Digital</hproduct:brand>
<hproduct:buy type="url">http://www.jaysstore.com/site/minohd/9077054</hproduct:buy>
<hproduct:category type="text">Video Cameras</hproduct:category>
<hproduct:condition type="text">New</hproduct:condition>
<hproduct:description type="text">This camcorder offers true high-definition recording in an incredibly compact body, so you can be sure you won't miss a minute of recording time</hproduct:description>
<hproduct:model type="text">F460B</hproduct:model>
<hproduct:n type="text>Flip Video MinoHD Camcorder</hproduct:n>
<hproduct:photo type="url">http://images.jaysstore.com/images/products/9077054.jpg</hproduct:photo>
<hproduct:price type="sale">206.99</hproduct:price>
<hproduct:quantity type="int">1</hproduct:quantity>
<hproduct:shipping type="text">Usually leaves our warehouse in 1 business day</hproduct:shipping>
<hproduct:url type="url">http://www.jaysstore.com/site/minohd/9077054</hproduct:url>
<hproduct:version type="text">1.0</hproduct:version>
<hproduct:identifier type="sku">9077054</hproduct:identifier>
<hproduct:p-v>
<hproduct:property type="color">black</hproduct:property>
<hproduct:property type="height">3.9"</hproduct:property>
<hproduct:property type="width">2"</hproduct:property>
<hproduct:property type="format">Flash memory</hproduct:property>
</hproduct:p-v>
</entry>
</feed>
I’m thinking out loud on this one. Please feel free to poke holes in my idea here…