From Microformats Wiki
Jump to navigation Jump to search

product microformat brainstorming

This is brainstorming for a product microformat per the process. See also product-examples, and product-formats.



The Problem

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

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

Additionally, it should be recognized that more mature formats like hListing are not granular or specific enough to cover the many possible attributes of a product. Without these specifics, hListings describing products lose much of their value and don't accurately represent product data. (For more discussion on this, see section below on "Is this duplicating hListing?")

To be incorporated

The following pages should be incorporated into this page:

And then those pages should simply redirect to this one via: #redirect [[product-brainstorming]]

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 Schema Elements

  • hProduct (hproduct)
    • version. optional. text.
    • name. required.
    • image. optional. IMG element or rel='image'. could be further refined as image type ( thumb || full || photo || illo).
    • description. optional. could be denoted as 'summary' or 'extended'.
    • brand. text | hCard
    • model. optional.
    • condition. optional.
    • availability. optional. text containing availablity message. could be further refined as availability type (instore || online || specialorder).
    • quantity. optional.
    • shipping. optional. shipping messaging.
    • reviews. text | hReview
    • buy. optional. text purchase messaging and/or rel="purchase" indicating target URI for purchasing item
    • category. optional. single phrase or open string with multiple.
    • uri. optional. URI to product page, href could contain rel='product'.
    • price. optional. could be further refined as specific type (sale || regular || msrp || clearance). should follow currency format.
    • tags. optional. product category and subcategory tags, using rel-tag
    • identifier. optional.
    • p-v. optional. opens up possibilities for custom property-value pairs in more complex examples.
      • property. required. property types could include:
        • artist
        • author
        • rating - could be further denoted into rating types (product || merchant || mpaa || esrb || others)
        • released - hcalendar event for date of release
        • batch
        • size
        • color
        • uid - unique id, item number
        • offer
        • others. possibly around product specs, features.
      • value. required. (label may be implied)

(Note: What about promoting upc, isbn to top-level optional? Would also suggest adding mpn, condition.--Paul Lee 09:39 21 Aug 2008)

(Note: Good suggestion. Also promoting SKU, as most product are identified by them.--Jay Myers 07:52 26 Aug 2008)


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 a product microformat. 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).
  • video (for a product video)
  • 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, a product microformat 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 product. Also, a product microformat 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.

Note: hListing was clearly designed with retail products out of its scope. From their proposal page: "We are focusing on providing "just enough" structure to enable matching, not to consummate transactions. This is distinct from the majority of formats described on the wiki under listing-examples, which are specific enough to completely describe products for retail sale according to the idiosyncratic semantics of particular merchants and shopping engines. Instead of encoding retail-oriented fields such as UPCs, SKUs, and manufacturer part numbers, this proposal acknowledges that many listings are for "inventories of one" that may not have such precise abstractions." Product could be key for filling the gap for information like condition, brand, MPN, and unique product identifiers (UPC/EAN, ISBN).--Paul Lee 21:51 20 Aug 2008

  • Might a better solution be to define a small number of additional properties for hListing? TobyInk 10:43, 21 Aug 2008 (PDT)

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)
    • Seems like this depends on whether this is intended for use by retailers and/or manufacturers. Retailers might have access to the manufacturer release date, but their date may differ from other retailers; so they would probably want to use when they have it available, similar to saying that this is a valid_from_date. Manufacturers, on the other hand, would probably be able to offer a limited or wide release availability date. These do not need to be mutually exclusive. --Paul Lee 21:01, 20 Aug 2008 (PST)

Aaron Gustafson

Actual price, savings, discounts, etc. should be part of hListing instead of a product microformat. MSRP (suggested retail price) should be part of the product microformat, 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

A product microformat 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.

  • To this and the point below, it is also important to keep in mind that product categories evolve over time, and may take awhile to mature. Think about the specs on cameras over the past 15 years. --Paul Lee 21:05 20 Aug 2008

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)

Attempting to create a taxonomy of product subformats is a really bad idea. There are too many different kinds of products. Large e-commerce sites keep many employees busy with product taxonomy work, not something a standard should attempt to do. Tantek 23:04, 21 Aug 2007 (PDT)

Robbie van der Blom

What about unique identifiers for products like ISBN nr. and the UPC codes for a product? My gut feeling is that they should be part of a product microformat.

With respect to the above, do we really need to talk about hProductNotebook etc. this seems odd.

Adam Craven

In relation to the p-v and general property values. The abbr-design-pattern could be used over the hidden class variable. So

<h1 class="name">Breitling SuperOcean Chrono</h1>
Water resistant up to <span class="p-v"><abbr class="property value" title="water-resistance">1500m</abbr></span>

In this second example, the color is embedded within the name of the shirt itself.

<h1 class="name"><span class="p-v"><abbr class="property value" title="color">White</abbr> Coxmoor shirt</h1>
<img src="white-coxmoor-shirt.jpg" rel="image thumb" />

For items such as books, whereby authors sometimes aren't explicitly denoted visibly (, rather inferred by convention. Could arguably still use the abbr pattern:

<h1><span class="name">Great Tales From English History</span> - 3 Books</h1>
by <span class="p-v"><abbr class="property value" title="author">Robert Lacey</abbr></span>

Or even

<h1><span class="name">Great Tales From English History</span> - 3 Books</h1>
<span class="p-v"><abbr class="property" title="author">by</abbr> <span class="value">Robert Lacey</span></span>

A final thought to throw in. If the property and values are within the same HTML tag, it might be possible to remove the property & value class, as the p-v indicates a property value relationship itself.

<abbr class="p-v" title="author">Robert Lacey</abbr>

What do you think?


A product microformat would I think be useful for corporate sites. For example, my employers site lists the products and services we work with, I am able to (and have) used microformats to contact details, but would like to microformat products and services. At present I have as a start added rel="product" to links to our individual product pages, but to be able to do it in a better manner would be good, also so I could microformat the product page itself so that one could find say all the products from a specific manufacturer.


There's a lot of interesting discussion here re: formats for sub-categories of product types that are each quite different, e.g., vehicles vs. computers vs. apparel. I think it's an ambitious and worthwhile undertaking to look at examples in each of these categories. However, I also think there is a lot of value in taking the common pieces that apply across all products, and using that as a foundation to build upon. Otherwise, I think the effort has the potential to get bogged down while figuring out how to accommodate the entire world or products. Paul Lee 21:09 20 Aug 2008 (PST)


We should really land on a single hProduct format to fit product attributes common in all possible subcategories. Things would really get messy if we attempted to fork hProduct into subs like "hLaptop" or "hApparel", etc. The true beauty of the hProduct uF is the use of p-v, which allows for customization, and could be used to define custom attributes specific to a product category.

This being said, I would like to propose adding an optional "category" element with "subcategory" children to define the product category and hierarchy. Jay Myers 14:18 26 Aug 2008


Here are candidate names for a product microformat:

  • hProduct

Coded examples

(Note: this example contains additional markup for positioning and presentation purposes)

<div class="hproduct">
	<ul id="breadcrumbs">
		<li class="category">Cameras</li>
		<li class="category">Video Cameras</li>
		<li class="category">High-Definition Cameras</li>
	<h1 class="fn">Pure Digital Flip Video MinoHD Camcorder</h1>
	<div id="topbox">
		<div class="rightcol">
			<img src="" alt="Image of Pure Digital F460B" class="photo" />
		<div class="leftcol">
			<div class="infomain">
					<li><strong>Brand: </strong><span class="brand">Pure Digital</span></li>
					<li><strong>Model: </strong><span class="model">F460B</span></li>
					<li><strong>SKU: </strong><span class="sku">9077054</span></li>
				<p class="description">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.</p>
					<span class="availability online">Available online</span>. <span class="shipping">Backordered: Usually leaves our warehouse within 1-2 weeks. <span class="money">Estimated shipping cost: <abbr class="currency" title="USD" lang="en">$</abbr><span class="amount">0.0</span>.</span></span>
					<span class="availability instore">Not available for purchase in store</span>.
					<span class="availability specialorder">Not available for special order</span>.
			<div class="infoside">
				<span class="price sale"><span class="money"><strong>Sale Price: </strong><abbr class="currency" title="USD" lang="en">$</abbr><span class="amount">206.99</span></span></span>
				<div class="buy">
					<img src="" alt="buy this product"></div>
				<div class="clear"></div>
		<div class="clear"></div>
	<div id="bottombox">
		<div id="tabs">
				<li><a href="#featuresbox"><span>Features</span></a></li>
				<li><a href="#specsbox"><span>Specs</span></a></li>
				<li><a href="#reviewsbox"><span>Reviews</span></a></li>
		<div id="specsbox">
		<h3>Product Specs</h3>
			<dl class="p-v">
				<dd>3.3 oz.</dd>
				<dt>Warranty -- Parts</dt>
				<dd>90 days</dd>
				<dt>Warranty -- Labor</dt>
				<dd>90 days</dd>
				<dd>Flash memory</dd>
				<dt>Vista Compatible</dt>
				<dd>Home Basic</dd>
				<dt>LCD Screen Size</dt>
				<dt>Image Stabilization</dt>
				<dt>Optical Zoom</dt>
				<dt>Digital Zoom</dt>
				<dt>Night Recording</dt>
				<dt>Audio Sensor</dt>
				<dt>Lines of Resolution</dt>
				<dt>Video Resolution</dt>
				<dd>Up to 1280 x 720</dd>
				<dt>Digital Still Resolution</dt>
				<dd>Up to 1280 x 720</dd>
				<dt>Auto Date/Time Stamp</dt>
				<dt>Audio Recording</dt>
				<dt>Color Viewfinder</dt>
				<dt>Exposure Control</dt>
				<dt>PC Software</dt>
				<dd>USB 2.0</dd>
				<dt>PC Cable</dt>
				<dt>Rechargeable Battery</dt>
			<div class="clear"></div>
		<div id="reviewsbox">
			<h3>Product Reviews</h3>
				<div class="hreview">
					<h4>"<span class="summary">Amazing little camera</span>"</h4>
					<strong>Reviewer: </strong><span class="reviewer vcard"><a href="" class="url fn">kevwhitesf</a></span> from <span class="adr"></span>
					<strong>Date reviewed: </strong><abbr title="200502" class="dtreviewed">2008-11-24T18:53:32.000-06:00</abbr>
					<strong>Rating: </strong><span class="rating">5</span> out of 5</p>
					<p class="description">"It definitely exceeded my expectations. It does everything it claims to do and more at a very reasonable price. I was pretty shocked that such a small device was capable of producing such a nice picture. Limited functionality, but that's what I was expecting. It interfaces nicely with Macs. I'm having lot of fun with my MinoHD! I've been taking it everywhere."</p>
				<div class="hreview">
					<h4>"<span class="summary">Amazing HD Consumer Camera</span>"</h4>
					<strong>Reviewer: </strong><span class="reviewer vcard"><a href="" class="url fn">sscrozz</a></span> from <span class="adr">Lafayette, CA</span>
					<strong>Date reviewed: </strong><abbr title="200502" class="dtreviewed">2008-11-22T03:08:41.000-06:00</abbr>
					<strong>Rating: </strong><span class="rating">4</span> out of 5</p>
					<p class="description">"This camera is perfect for the consumer who wants a pocket camera that shoots HD. It shoots in full HD using H.264 compression (great quality video that takes up little space) It now works with Macs using Mpeg4 instead of AVI. Here is a HD test video."</p>
		<div class="clear"></div>


The above brainstorming, based on product-examples and product-formats (TO BE DONE) research, should go into a proposal:

Currently this is premature, as the product-formats page has not yet even been created, much less researched. Per the process, research on formats must be done before brainstorming or drafting a separate proposal.


see also