From Microformats Wiki
Revision as of 15:51, 20 February 2007 by SMulcahy (talk | contribs) (Thoughts on publicising and encouraging adoption)
Jump to navigation Jump to search

Brainstorming for hProduct Microformat

This is a brainstorm for the hProduct microformat. See also examples of hProduct.


The Problem

There are numerous ways to publish product information on the web, but nothing is stanardized. It would be useful to have standardized product information on the web for creating mash-up applications which could

  • allow aggregated product details to be linked to from hListings or hReviews
  • match hListings to hReviews
  • aggregate product-specific information from across the web
  • aggregate and compare like products based on features

Elements that come up often in practice

Examples of elements that might be included because they seem to come up often in user- and CMS-generated product publishing, include the following:

Base Elements

  • name (or fn)
  • image (could be sub-categorized)
    • thumb (for thumbnail)
    • full (for full size image)
    • photo (for a photograph)
    • illo (for an illustration).
  • description (could be sub-categorized)
    • summary
    • extended
  • brand
  • uri (or url) - URI for the product at its brand website; not to be confused with the hListing 'permalink'.
  • msrp


Being that so many products in the world have specific charachteristics or properties, we thought it might be wise to create a means of standardizing the listing of that information, setting the stage for possible subformats of hProduct. This could be done by setting up property value pairs or groups using a CLASS of "p-v". It would be possible to offer a few means of doing this.

Natural language property-value association

<p class="p-v">The <span class="property">dimensions</span> of this book are 
  <span class="value">6½"(<abbr title="width">W</abbr>) × 
  12"(<abbr title="height">H</abbr>) ×
  1¾"(<abbr title="depth">D</abbr>)</span></p>

List property-value association (pairs)

  <li class="p-v">
    <span class="property">Mileage</span>: 
    <em class="value">34,787</em>
  <li class="p-v">
    <span class="property">Year</span>: 
    <em class="value">2006</em>
  <li class="p-v">
    <span class="property">Exterior Color</span>: 
    <em class="value">Burgundy</em>
  <li class="p-v">
    <span class="property">Body Style</span>: 
    <em class="value">Hatchback</em>

List property-value association (groups)

Note: as a DL contains semantic property-value pairs/groups, setting a CLASS of "p-v" should be enough (reducing extra markup).

<dl class="p-v">
  <dd>Burgundy (Exterior)</dd>
  <dd>Tan (Interior)</dd>

Non-visible property names

We have considered the possibility of allowing property names to be invisible to users by allowing the addition of the property name as a class immediately following the "propery" CLASS keyword:

<ul class="p-v">
  <li class="property mileage">34,787</li>
  <li class="property year">2006</li>
  <li class="property color-exterior">Burgundy</li>
  <li class="property body-style>Hatchback</li>

Parsing would be a bit trickier, but from the perspective of someone marking up the document, it is pretty simple and straightforward.

Suggested Additions

  • image sub-categorization (could make use of Media microformat?):
    • thumb (for thumbnail)
    • full (for full size image)
    • photo (for a photograph)
    • illo (for an illustration).
  • description sub-categorization:
    • summary
    • extended
  • uri (or url) - URI for the product at its brand website; not to be confused with the hListing 'permalink'.

Isn't this duplicating hListing and hReview?

No, hProduct would not seek to compete with hListing or hReview, it simply aims to enhance them. In either of these microformats, the item could easily contain the hProduct. Also, hProduct is the more appropriate place for Manufacturer's Suggested Retail Price (MSRP), which is not likely to be the final price of the product being listed. The actual price/sale price/final price should be solely in the domain of hListing.

Random Thoughts

Please add your thoughts & feelings below. If you are interested in getting involved in the development of this microformat. Please contact aaron [at] easy-designs [dot] net and/or join the microformats mailing list.


Wouldn't the release date of the product be a good addition? I'm writing product re- and previews. I use hReviews to give my opinion about the product, but there's now way to indicate that the product is or is not in stores yet. As far as i can see, the release date is a usefull product attribute, not only usefull in combination with other Microformats, but also for indicating the "age" of a product.

  • Release date is a good idea but how to specify it? Is it the date on which the product first becomes available in shops? Would you have a per-region release date (certainly applicable to DVDs, CDs and at least some electronic devices such as gaming consoles) --SMulcahy 13:38, 15 Feb 2007 (PST)

Aaron Gustafson

Actual price, savings, discounts, etc. should be part of hListing instead of hProduct. MSRP (suggested retail price) should be part of the hProduct, however.

  • Not all products have a MSRP. Andy Mabbett 09:08, 19 Nov 2006 (PST)
    • I agree, they don't which is why it should not be required. Aaron Gustafson 16:60, 20 Nov 2006 (MST)

Andy Mabbett

Please see my proposal, on the mailing list -- Andy Mabbett 09:08, 19 Nov 2006 (PST)

  • I agree with the idea of enabling sub-product formats, but am not sure I like the idea of a "wrapper" for hReview or hListing, I think the item should exist within an instance of one of those microformats. Aaron Gustafson 16:60, 20 Nov 2006 (MST)
    • There may be more than one review of a product, on one page e.g. [1] Andy Mabbett 00:54, 21 Nov 2006 (PST)

Adam Craven

hProduct will definitely be one of the largest microformats.

What about specifications of products, which is important for data aggregation. To categories every type and variation of a product would be mad. So how should the hurdle be crossed, if at all?

The nearest related uF is the citation format, although it isn't overly suited.

Stephen Mulcahy

As with microformats in general maybe the approach to take to specifications of products is to let people who need/want them start specifying the ones they are interested in - we don't need an exhaustive universe of potential things categorised. See my posting for some other comments here - , in particular note that I think the hard part of this is defining the specifications of individual products. I'm happy to start on the laptop one ... it would be good to have some laptop vendor on board but maybe its too soon for anyone to be interested.

  • Some potential subformats (what kind of naming scheme do we want to use here)
    • hNotebook (or hProductNotebook ?) - for products like laptops, notebooks, tablets
      • os
      • bundledSoftware
      • size (height, width, depth)
      • weight (units?)
      • processor
      • display
        • size
        • resolution
      • video (for video card)
      • embeddedVideo (boolean)
      • hard drive (maybe manufacturer,model,size? .. eeek is hard drive a hProduct subformat itself?)
      • memory (type and size?)
      • optical drive (types?)
      • battery
      • warranty
      • videoOut (types supported - is it acceptable have a bunch of boolean options for laptop features that may or may not exist on a particular model?)
    • hDesktop - for desktop PCs and similar
    • hConsole - for gaming consoles such as the Wii, PS3 and XBox360
    • hMobilePhone (or hMobileDevice .. not sure we generally want generic subcategory since the whole point of subformats is to give a concrete set of characteristics, or do we want to have nesting of subformats to capture general characteristics at higher levels?).
    • hPda (maybe a hMobileDevice .. it starts getting a bit fuzzy here)

Maybe we should talk to some projects like the Linux on Laptops [2] project and get them to encourage contributors to mark-up their laptop reviews in hProductNotebook? --SMulcahy 07:51, 20 Feb 2007 (PST)