hproduct-proposal: Difference between revisions

From Microformats Wiki
Jump to navigation Jump to search
 
(23 intermediate revisions by 4 users not shown)
Line 1: Line 1:
<h1><em>draft</em> hProduct Proposal</h1>
<h1><em>draft</em> hProduct Proposal</h1>


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.
hProduct is a format suitable for embedding in (X)HTML, Atom, RSS, and arbitrary XML. hProduct is be related to several [[microformats]] (including [[hlisting|hListing]] and [[hreview|hReview]]) and is an open standard.


__TOC__
__TOC__
===Authors===
===Authors===


(in alphabetical order)
* Craig Cook, [http://focalcurve.com/ Focal Curve]
* Aaron Gustafson, [http://easy-designs.net/ Easy! Designs]
* Aaron Gustafson, [http://easy-designs.net/ Easy! Designs]
* Craig Cook, [http://focalcurve.com/ Focal Curve]
* [[User:PaulLee|Paul Lee]], Google Product Search
* <span class="vcard"><span class="url fn">[http://jay.beweep.com/ Jay Myers]</span>, [http://www.bestbuy.com BestBuy Co, Inc.]


==Introduction==
==Introduction==


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.
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, BestBuy.com, Buy.com, and AutoByTel.


hProduct would be compatible and combinable with [[hlisting|hListing]] and [[hreview|hReview]].
hProduct is compatible and combinable with [[hlisting|hListing]] and [[hreview|hReview]].


=== Scope ===
=== 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.
Giving details about a particular product is sometimes very complex as parameters are differnt 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 ===
=== Out of Scope ===


This microformat does not intend to replicate any of the content proposed within [[hlisting|hListing]] and would defer all money/transactional matters to that microformat.
This microformat does not intend to replicate any of the content proposed within [[hlisting|hListing]] and would defer all money/transactional matters to that microformat.
This microformat also does not attempt to specify a product ontology, or category-specific attributes; instead, it aims to create a framework to allow for flexible expression of both.


== Format ==
== Format ==
Line 32: Line 35:
=== Schema ===
=== Schema ===


An hProduct schema should consist of the following:
The hProduct schema consists of the following (see [[class-names|existing class names]] for reference):  
 
* 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''. optional. text | [[hcard|hCard]]
** ''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.
** ''savings''. optional. should follow [[currency]] format.
** ''p-v''. optional. opens up possibilities for custom property-value pairs in more complex examples.
*** '''property'''. required. property types could include:
**** ''artist''
**** ''author''
**** ''released'' - [[hcalendar]] event for date of release
**** ''upc''
**** ''isbn''
**** ''sku''
**** ''sn''
**** ''vin''
**** ''batch''
**** ''size''
**** ''color''
**** ''uid'' - unique id, item number
**** ''offer''
**** others. possibly around product specs, features.
*** '''value'''. required. (label may be implied)
** ''availability''. optional. text containing availablity message.
** ''shipping''. optional. shipping messaging.
** ''reviews''. optional. text | [[hreview|hReview]]
** ''buy''. optional. text purchase messaging and/or rel="purchase" indicating target URI for purchasing item
 
==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 15-July-2008 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.
{| class="wikitable" border="1"
|-
! field
! required
! plurality
! description
|-
| availability
| optional
| singular
| Text. Can be further refined by type (instore, online, preorder, backorder, specialorder).
|-
| brand
| optional
| singular
| Text. Can also use [[hcard|hCard]] for manufacturer.
|-
| buy
| optional
| plural
| Text. Purchase messaging and/or rel="purchase" indicating target url for purchasing item.
|-
| category
| optional
| plural
| Text. [[hcard|hCard]]. Can also use [[rel-tag|rel-tag]]. 
|-
| condition
| optional
| singular
| Text. Examples: 'new', 'used', 'refurbished'.
|-
| description
| optional
| singular
| Text. [[hreview|hReview]]. Can also include valid HTML markup.
|-
| model
| optional
| singular
| Text.
|-
| '''n'''
| '''required'''
| '''singular'''
| '''Text.''' [[hcard|hCard]]. Product name or title.
|-
| photo
| optional
| plural
| Image element or link. [[hcard|hCard]]. Photo or image of the object used in <img>.
|-
| price
| optional
| plural
| Floating point number. Can be further refined by type (msrp, regular, sale, clearance), can use [[currency|currency]] format.  
|-
| quantity
| optional
| singular
| Integer.
|-
| shipping
| optional
| singular
| Text. Messaging. Example: 'Ships within 24-48 hours.'
|-
| url
| optional
| singular
| href. [[hcard|hCard]]. Can contain rel='product'.
|-
| version
| optional
| singular
| Text. [[hreview|hReview]].
|}


'''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.
The identifier structure is used to describe product identifiers like UPC or SKU, and is designed to accommodate new or as-yet-unidentified identifiers.


'''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'.
* '''identifier (optional)'''
** type (required) - examples:
*** [http://en.wikipedia.org/wiki/Manufacturer_part_number mpn]
*** [http://en.wikipedia.org/wiki/Universal_Product_Code upc]
*** [http://en.wikipedia.org/wiki/Isbn isbn]
*** [http://en.wikipedia.org/wiki/International_Standard_Serial_Number issn]
*** [http://en.wikipedia.org/wiki/European_Article_Number ean]
*** [http://en.wikipedia.org/wiki/Japanese_Article_Number jan]
*** [http://en.wikipedia.org/wiki/Serial_number sn]
*** [http://en.wikipedia.org/wiki/Vehicle_identification_number vin]
*** [http://en.wikipedia.org/wiki/Stock-keeping_unit sku]
**value (required) - label may be implied


'''price''':: This optional field is the suggested price for the item. Price could be further refined to define a specific price type, such as 'sale' for sale price, 'regular' for regularly a priced item, 'msrp' for manufacturers retail price, or 'clearance' for a clearance product. It follows the proposed [[currency]] format.
In addition to the above fields, hProduct includes a properties and values (p-v) mechanism to accommodate the wide variation in product attributes.


'''savings''':: This optional field will describe any savings scenarios in relation to the product price. It follows the proposed [[currency]] format.
* '''p-v (optional)'''
** property (required) - examples:
*** accessory for
*** artist
*** author
*** color
*** compatible with
*** quantity in lot
*** rating - can be further denoted into rating types (product || merchant || mpaa || esrb || others)
*** released - hcalendar event for date of release
*** size
** value (required) - label may be implied


'''availability''':: Optional text field that describes product availability.
Finally, [[hreview|hReview]] is used to describe product reviews.


'''shipping''':: Optional field that details shipping.
==Additional Details==


'''reviews''':: Optional product reviews that can contain text or could follow current [[hreview|hReview]]  format.
===Version===


'''buy''':: This optional field contains the buying messaging and/or rel="purchase" links pointing to the target URI for buying the product.
'''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 28-Oct-2008 is "0.0," since it has no official standing yet.
 
 
=== Properties & Values ===
 
A differentiator of hProduct versus some of the other, more mature formats is the properties and values (p-v) mechanism that is built in to the proposed format. With the wide variation in product attributes, the p-v mechanism provides extensibility to a large array of items without the need for subclassing. 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>
 
* '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'
* 'size'
* 'color'
* 'uid' - unique id as provided by vendor/manufacturer/retailer
* 'offer' - offers tied to the product, as provided by vendor/manufacturer/retailer
* others - possibly around product specs, features
</li>
 
<li>'''value''':: This required field denotes the property value. The value may be implied in certain shorthands.</li>
 
</ul>


===Cross-cutting issues===
===Cross-cutting issues===


''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.
''Internationalization:'' Though there are many English-language tokens, they are only used as invisible class-names; user-visible listing information can be completely localized. Note that (X)HTML <code>LANG</code> attribute rules still apply as usual, for multilingual aggregators of hProduct.


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.
Certain field names have been reused from the [[hcard|hCard]] and [[hcalendar|hCalendar]] microformats, e.g., <code>version, description</code>.  In addition, brands described by hProduct may contain hCard fields.


==Examples (Preliminary)==
==Examples (Preliminary)==
Line 164: Line 190:
   </ul>
   </ul>
</div></nowiki></pre>
</div></nowiki></pre>
=== Examples in Production ===
* Description of [http://jay.beweep.com/index.php/2008/10/14/reviving-shop-urls-with-hproduct BestBuy.com implementation]
* [http://www.pontofrio.com.br PontoFrio.com]


==Changes==
==Changes==
mid Nov 2006: initial concepting.
mid Nov 2006: initial concepting.
15-July-2008: hProduct revival effort
15-July-2008: hProduct revival effort


== research ==
28-Oct-2008: Agreement on initial hProduct draft
 
== Research ==
* [[product-examples]]
* [[product-examples]]
* [[product-formats]]
* [[product-formats]]

Latest revision as of 23:57, 13 March 2010

draft hProduct Proposal

hProduct is a format suitable for embedding in (X)HTML, Atom, RSS, and arbitrary XML. hProduct is be related to several microformats (including hListing and hReview) and is an open standard.

Authors

(in alphabetical order)

Introduction

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, BestBuy.com, Buy.com, and AutoByTel.

hProduct is compatible and combinable with hListing and hReview.

Scope

Giving details about a particular product is sometimes very complex as parameters are differnt 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. This microformat also does not attempt to specify a product ontology, or category-specific attributes; instead, it aims to create a framework to allow for flexible expression of both.

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

The hProduct schema consists of the following (see existing class names for reference):

field required plurality description
availability optional singular Text. Can be further refined by type (instore, online, preorder, backorder, specialorder).
brand optional singular Text. Can also use hCard for manufacturer.
buy optional plural Text. Purchase messaging and/or rel="purchase" indicating target url for purchasing item.
category optional plural Text. hCard. Can also use rel-tag.
condition optional singular Text. Examples: 'new', 'used', 'refurbished'.
description optional singular Text. hReview. Can also include valid HTML markup.
model optional singular Text.
n required singular Text. hCard. Product name or title.
photo optional plural Image element or link. hCard. Photo or image of the object used in <img>.
price optional plural Floating point number. Can be further refined by type (msrp, regular, sale, clearance), can use currency format.
quantity optional singular Integer.
shipping optional singular Text. Messaging. Example: 'Ships within 24-48 hours.'
url optional singular href. hCard. Can contain rel='product'.
version optional singular Text. hReview.

The identifier structure is used to describe product identifiers like UPC or SKU, and is designed to accommodate new or as-yet-unidentified identifiers.

In addition to the above fields, hProduct includes a properties and values (p-v) mechanism to accommodate the wide variation in product attributes.

  • p-v (optional)
    • property (required) - examples:
      • accessory for
      • artist
      • author
      • color
      • compatible with
      • quantity in lot
      • rating - can be further denoted into rating types (product || merchant || mpaa || esrb || others)
      • released - hcalendar event for date of release
      • size
    • value (required) - label may be implied

Finally, hReview is used to describe product reviews.

Additional Details

Version

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 28-Oct-2008 is "0.0," since it has no official standing yet.

Cross-cutting issues

Internationalization: Though there are many English-language tokens, they are only used as invisible class-names; user-visible listing information can be completely localized. Note that (X)HTML LANG attribute rules still apply as usual, for multilingual aggregators of hProduct.

Certain field names have been reused from the hCard and hCalendar microformats, e.g., version, description. In addition, brands described by hProduct may contain hCard fields.

Examples (Preliminary)

Simple Product

The Pick of Destiny
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
<div class="hproduct">
   <h4 class="name">The Pick of Destiny</h4>
   <h5 class="p-v">by <span class="property artist">Tenacious D</span></h5>
   <p class="description summary">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.</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>

Examples in Production

Changes

mid Nov 2006: initial concepting.

15-July-2008: hProduct revival effort

28-Oct-2008: Agreement on initial hProduct draft

Research

Discussions

See also

Acknowledgements

Much of this document is based on the fine work of the folks behind hListing and their proposal.