product-brainstorming: Difference between revisions

From Microformats Wiki
Jump to navigation Jump to search
(moved old page to a draft proposal document)
Line 1: Line 1:
<h1>hProduct Brainstorming</h1>
= Brainstorming for hProduct Microformat =


hProduct is a format suitable for embedding in (X)HTML, Atom, RSS, and arbitrary XML. hProduct would be related to several [[microformats]] (including [[hlisting|hListing]] and [[hreview|hReview]]) and would be an open standard.
This is a brainstorm for the hProduct microformat. Examples of hProduct can be found [[hproduct-examples|here].


__TOC__
== Contributors ==
 
===Authors===


* Aaron Gustafson, [http://easy-designs.net/ Easy! Designs]
* Aaron Gustafson, [http://easy-designs.net/ Easy! Designs]
* Craig Cook, [http://focalcurve.com/ Focal Curve]
* Craig Cook, [http://focalcurve.com/ Focal Curve]


==Introduction==
== The Problem ==
 
The web is a thriving marketplace with a plethora of vendors scattered across the globe. Sifting through this mass of information is difficult when it is unstructured. The hProduct microformat will bring order and structure to the chaos, making it easy for people to list the products they offer and easy for Web Services to consume that product information for analysis and syndication. This proposal follows the common practices of ecommerce sites such as Amazon, Buy.com and AutoByTel.
 
hProduct would be compatible and combinable with [[hlisting|hListing]] and [[hreview|hReview]].
 
=== Scope ===
 
Giving details about a particular product is sometimes very complex as parameters are differnet for books and CDs than they are for iPods or cars. It should be very easy to mark up an item using hProduct and the syntax should be simple yet flexible enough for more advanced applications.
 
=== Out of Scope ===
 
This microformat does not intend to replicate any of the content proposed within [[hListing]] and would defer all money/transactional matters to that microformat.
 
== Format ==
 
=== In General ===
 
The hProduct format is based on a set of fields common to numerous ecommerce sites and formats in use today on the web.
 
=== Schema ===
 
An hListing schema should consist of the following:
 
* hProduct
** ''version''. optional. text.
** '''name'''. required.
** ''image''. optional. <code>IMG</code> element or <code>rel='image'</code>. could be further refined as image type ( ''thumb'' || ''full'', ''photo'' || ''illo'')
** ''description''. optional. could be denoted as 'summary' or 'extended'
** ''brand''. text | [[hcard|hCard]]
** ''uri''. optional. URI to manufacturer product page.
** ''msrp''. optional. retail price.
** ''p-v''. optional. opens up possibilities for custom property-value pairs in more complex examples.
*** '''property'''. required.
*** '''value'''. required. (label may be implied)
 
==Field Details==
 
The fields of the hListing schema represent the following:
 
'''version''':: This optional field permits hProduct publishers to specify a particular version of hProduct that their content uses. By omitting this field, the publisher is stating that implementations may interpret the hListings according to any version of the hProduct specification. The value for this proposal as of 17-Nov-2006 is "0.0," since it has no official standing yet.
 
=== Content ===
 
'''name''':: This required field contains the name of the item
 
'''image''':: This optional field contains either an image (as an <code>IMG</code> element) or a link to an image (as an <code>A</code> with <code>rel="image"</code>). The image can be categorized by additional terms such as 'thumb' (for thumbnail), 'full' (for full size image), 'photo' (for a photograph), 'illo' (for an illustration).
 
'''description''':: This optional field contains the full text representing the written description of the item. The field MAY include valid XHTML markup (e.g. paragraphs). User agents SHOULD preserve any markup. Description could be either a 'summary' or an 'extended' description.
 
'''brand''':: This optional field can contain either plan text or an [[hcard||hCard]] for the organization responsible for the item. Examples would include Sony, Friends of ED, O'Reilly, etc.
 
'''uri''':: This optional field is a URI for the product at its brand website. It is not to be confused with the [[hlisting|hListing]] 'permalink'.
 
'''msrp''':: This optional field is the manufacturer's suggested retail price for the item. It follows the [[currency]] format.
 
=== Properties & Values ===
 
We understand the need for providing extensibility to this microformat and have built in a mechanism for doing that using properties and values (p-v). There will be several ways of accomplishing property-value associations which will be described below, with several possible shorthands.
 
'''p-v''':: This optional field initiates a property-value group.
 
<ul>
<li>'''property''':: This required field denotes the property label.
 
<p>Anticipated 'property' types include</p>
 
* 'recurring' for intervals of time (associated with an 'msrp')
* 'artist'
* 'author'
* 'released' - [[hcal|hCal]] event for date of release
* 'upc'
* 'isbn' - international standard book number
* 'sku' - stock keeping unit
* 'sn' - serial number
* 'vin' - vehicle identification number
* 'batch'
 
</li>


<li>'''value''':: This required field denotes the property value. The value may be implied in certain shorthands.</li>
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


</ul>
* 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


===Cross-cutting issues===
== Elements that come up often in practice ==


''Internationalization:'' Though there are many English-language tokens, they are only used as invisible class-names; user-visible listing information can be completely localized. n.b. that (X)HTML <code>LANG</code> attribute rules still apply as usual, for multilingual aggregators of hProduct.
Examples of elements that might be included because they seem to come up often in user- and CMS-generated product publishing, include the following:


The following field names have been reused from the [[hcard|hCard]] and [[hcalendar|hCalendar]] microformats: <code>version, description</code>.  In addition, brands described by hCards MAY contain any hCard field.
=== Base Elements ===


==Examples (Preliminary)==
* 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


=== Simple Product ===
=== Extensibility ===
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 paris or groups using a <code>CLASS</code> of "p-v". It would be possible to offer a few means of doing this.


The Pick of Destiny
==== Natural language property-value association ====
by Tenacious D
The Pick of Destiny is the highly anticipated soundtrack to the upcoming
New Line Cinema comedy, Tenacious D in the Pick of Destiny. An epic
musical adventure, the film follows Tenacious D (Jack Black and Kyle Gass)
on their quest to obtain the Pick and become The Greatest Band on Earth.
Released: November 14, 2006
Label: Sony
UPC: 82796948912


<pre><nowiki><div class="hproduct">
<pre><nowiki><p class="p-v">The <span class="property">dimensions</span> of this book are
  <h4 class="name">The Pick of Destiny</h4>
  <span class="value">6&#189;&#34;(<abbr title="width">W</abbr>) &#215;
  <h5 class="p-v">by <span class="property artist">Tenacious D</span></h5>
  12&#34;(<abbr title="height">H</abbr>) &#215;
  <p class="description summary">The Pick of Destiny is the highly
  1&#190;&#34;(<abbr title="depth">D</abbr>)</span></p></nowiki></pre>
  anticipated soundtrack to the upcoming New Line Cinema comedy, Tenacious
  D in the Pick of Destiny. An epic musical adventure, the film follows
  Tenacious D (Jack Black and Kyle Gass) on their quest to obtain the Pick
  and become The Greatest Band on Earth.</p>
  <ul>
    <li class="p-v"><span class="property">Released</span>:
      <span class="value"><abbr title="2006-11-14T12:00:01-05:00">November
      14, 2006</abbr></span></li>
    <li>Label: <span class="brand">Sony</span></li>
    <li class="p-v"><span class="property">UPC</span>:
      <span class="value">82796948912</span></li>
  </ul>
</div></nowiki></pre>


=== Challenge Problems ===
==== List property-value association (pairs) ====


See [[hproduct-challenges|hProduct Challenge Problems]] for some hypothetical examples that illustrate corners of the specification.
<pre><nowiki><ul>
  <li class="p-v">
    <span class="property">Mileage</span>:
    <em class="value">34,787</em>
  </li>
  <li class="p-v">
    <span class="property">Year</span>:
    <em class="value">2006</em>
  </li>
  <li class="p-v">
    <span class="property">Exterior Color</span>:
    <em class="value">Burgundy</em>
  </li>
  <li class="p-v">
    <span class="property">Body Style</span>:
    <em class="value">Hatchback</em>
  </li>
</ul></nowiki></pre>


==Changes==
==== List property-value association (groups) ====


mid Nov 2006: initial concepting.
Note: as a <code>DL</code> contains semantic property-value pairs/groups, setting a <code>CLASS</code> of "p-v" should be enough (reducing extra markup).


== Discussions ==
<pre><nowiki><dl class="p-v">
  <dt>Mileage</dt>
  <dd>34,787</dd>
  <dt>Color</dt>
  <dd>Burgundy (Exterior)</dd>
  <dd>Tan (Interior)</dd>
</dl></nowiki></pre>


* Feedback is encouraged on the [[hproduct-feedback|hProduct Feedback]] page.
=== Suggested Additions ===
* See also [http://www.technorati.com/cosmos/referer.html blogs discussing this page].


==See also==
* image sub-categorization:
*[[item]]
** thumb (for thumbnail)
*[[currency]]
** 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'.


== Acknowledgements ==
== Isn't this duplicating hListing and hReview? ==


Much of this document is based on the fine work of the folks behind [[hlisting|hListing]] and their proposal.
No, hProduct would not seek to compete with [[hlisting|hListing]] or [[hreview|hReview]], it simply aims to enhance them. In either of these microformats, the <em>item</em> 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.

Revision as of 19:08, 20 November 2006

Brainstorming for hProduct Microformat

This is a brainstorm for the hProduct microformat. Examples of hProduct can be found [[hproduct-examples|here].

Contributors

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

Extensibility

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 paris 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)

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

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">
  <dt>Mileage</dt>
  <dd>34,787</dd>
  <dt>Color</dt>
  <dd>Burgundy (Exterior)</dd>
  <dd>Tan (Interior)</dd>
</dl>

Suggested Additions

  • image sub-categorization:
    • 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.