h-review

(Difference between revisions)

Jump to: navigation, search
(re-use prior widely adopted dt-published, e-content, p-author properties as replacements for seemingly identical in use/meaning dt-reviewed, e-description, p-reviewer per h-review-feedback)
Line 21: Line 21:
   <p>
   <p>
     <data class="p-rating" value="5">★★★★★</data>
     <data class="p-rating" value="5">★★★★★</data>
-
     Published <time class="dt-reviewed" datetime="2013-06-12 12:00:00">12<sup>th</sup> June 2013</time>
+
     Published <time class="dt-published" datetime="2013-06-12 12:00:00">12<sup>th</sup> June 2013</time>
-
     by <a class="p-reviewer h-card" href="http://example.com">Joe Bloggs</a>.
+
     by <a class="p-author h-card" href="http://example.com">Joe Bloggs</a>.
   </p>
   </p>
    
    
-
   <div class="e-description">
+
   <div class="e-content">
     <p>Yes, microformats are undoubtedly great. They are the simplest way to markup structured data in HTML and reap the benefits thereof, including using your web page as your API by automatic conversion to JSON. The alternatives of microdata/schema and RDFa are much more work, require more markup, and are more complicated (harder to get right, more likely to break).</p>
     <p>Yes, microformats are undoubtedly great. They are the simplest way to markup structured data in HTML and reap the benefits thereof, including using your web page as your API by automatic conversion to JSON. The alternatives of microdata/schema and RDFa are much more work, require more markup, and are more complicated (harder to get right, more likely to break).</p>
   </div>
   </div>
Line 62: Line 62:
           "5"
           "5"
         ],
         ],
-
         "reviewed": [
+
         "published": [
           "2013-06-12 12:00:00"
           "2013-06-12 12:00:00"
         ],
         ],
-
         "reviewer": [
+
         "author": [
           {
           {
             "value": "Joe Bloggs",
             "value": "Joe Bloggs",
Line 81: Line 81:
           }
           }
         ],
         ],
-
         "description": [
+
         "content": [
           {
           {
             "value": "Yes, microformats are undoubtedly great. They are the simplest way to markup structured data in HTML and reap the benefits thereof, including using your web page as your API by automatic conversion to JSON. The alternatives of microdata/schema and RDFa are much more work, require more markup, and are more complicated (harder to get right, more likely to break).",
             "value": "Yes, microformats are undoubtedly great. They are the simplest way to markup structured data in HTML and reap the benefits thereof, including using your web page as your API by automatic conversion to JSON. The alternatives of microdata/schema and RDFa are much more work, require more markup, and are more complicated (harder to get right, more likely to break).",
Line 96: Line 96:
The class '''<code>h-review</code>''' is a ''root class name'' that indicates the presence of an h-review.
The class '''<code>h-review</code>''' is a ''root class name'' that indicates the presence of an h-review.
-
'''p-name''', '''p-item''', '''p-rating''', '''dt-reviewed''', '''p-reviewer''', '''e-description''' and the other property class names listed below defined elements as ''properties'' of the h-review.
+
'''p-name''', '''p-item''', '''p-rating''', '''dt-published''', '''p-author''', '''e-content''' and the other property class names listed below defined elements as ''properties'' of the h-review.
The class '''<code>h-item</code>''' is a ''root class name'' that indicates an embedded '''[[h-item]]''' for the p-item property.
The class '''<code>h-item</code>''' is a ''root class name'' that indicates an embedded '''[[h-item]]''' for the p-item property.
-
The class '''<code>h-card</code>''' is a ''root class name'' that indicates an embedded '''[[h-card]]''' for the p-reviewer property.
+
The class '''<code>h-card</code>''' is a ''root class name'' that indicates an embedded '''[[h-card]]''' for the p-author property.
See [[microformats2-parsing]] to learn more about property class names.
See [[microformats2-parsing]] to learn more about property class names.
Line 109: Line 109:
* '''<code>p-name</code>''' - name of the review
* '''<code>p-name</code>''' - name of the review
* '''<code>p-item</code>''' - thing been reviewed, including embedded microformat for e.g. business or person ([[h-card]]), event ([[h-event]]), place ([[h-adr]] or [[h-geo]]), product ([[h-product]]), website, url, or other item ([[h-item]]).
* '''<code>p-item</code>''' - thing been reviewed, including embedded microformat for e.g. business or person ([[h-card]]), event ([[h-event]]), place ([[h-adr]] or [[h-geo]]), product ([[h-product]]), website, url, or other item ([[h-item]]).
-
* '''<code>p-reviewer</code>''' - person who authored the review, optionally with an embedded [[h-card]]
+
* '''<code>p-author</code>''' - person who authored the review, optionally with an embedded [[h-card]]
-
* '''<code>dt-reviewed</code>''' - date time of when the review was written
+
* '''<code>dt-published</code>''' - date time of when the review was written and published
* '''<code>p-rating</code>''' - value from 1-5 indicating a rating for the item (5 best).
* '''<code>p-rating</code>''' - value from 1-5 indicating a rating for the item (5 best).
* '''<code>p-best</code>'''  - define best rating value. can be numerically lower than worst.
* '''<code>p-best</code>'''  - define best rating value. can be numerically lower than worst.
* '''<code>p-worst</code>'''  - define worst rating value. can be numerically higher than best.  
* '''<code>p-worst</code>'''  - define worst rating value. can be numerically higher than best.  
-
* '''<code>e-description</code>''' - the full text written evaluation and opinion of the reviewer
+
* '''<code>e-content</code>''' - the full text written evaluation and opinion of the reviewer
* '''<code>p-category</code>''' - freeform categories or tags applied to the item by the reviewer  
* '''<code>p-category</code>''' - freeform categories or tags applied to the item by the reviewer  
* '''<code>u-url</code>''' - review permalink URL
* '''<code>u-url</code>''' - review permalink URL
Line 123: Line 123:
'''h-review''' is a microformats.org draft specification. Public discussion on h-review takes place on [[h-review-feedback]] and the #microformats [[irc]] channel on irc.freenode.net.
'''h-review''' is a microformats.org draft specification. Public discussion on h-review takes place on [[h-review-feedback]] and the #microformats [[irc]] channel on irc.freenode.net.
-
h-review is ready to use and implemented in the wild.
+
h-review is ready to use.
== Property Details ==
== Property Details ==
Line 140: Line 140:
== Backward Compatiblity ==
== Backward Compatiblity ==
=== Publisher Compatibility ===
=== Publisher Compatibility ===
-
For backward compatibility, you may wish to use classic [[hReview]] classnames in addition to the more future-proof h-review properties, for example:
+
For backward compatibility, you may wish to use classic [[hReview]] classnames on an h-review permalink page in addition to the more future-proof h-review properties, for example:
<source lang=html4strict>
<source lang=html4strict>
Line 166: Line 166:
* <code>item vevent</code> - parse as '''p-item h-event''' including backcompat [[hCalendar]] vevent property parsing
* <code>item vevent</code> - parse as '''p-item h-event''' including backcompat [[hCalendar]] vevent property parsing
* <code>item hproduct</code> - parse as '''p-item h-product''' including backcompat [[hProduct]] parsing
* <code>item hproduct</code> - parse as '''p-item h-product''' including backcompat [[hProduct]] parsing
-
* <code>reviewer</code>  - including compat root vcard in the absence of h-card
+
* <code>reviewer</code>  - parse as '''p-author''', including compat root vcard in the absence of h-card
-
* <code>dtreviewed</code> - parse as '''dt-'''
+
* <code>dtreviewed</code> - parse as '''dt-published'''
* <code>rating</code>
* <code>rating</code>
* <code>best</code>
* <code>best</code>
* <code>worst</code>
* <code>worst</code>
-
* <code>description</code> - parse as '''e-'''
+
* <code>description</code> - parse as '''e-content'''
* <code>rel=tag</code> - parse as '''p-category'''
* <code>rel=tag</code> - parse as '''p-category'''
* <code>rel="self bookmark"</code> - parse as '''u-url'''. note that <code>rel</code> attribute value is treated as a space separated set, thus any presence of "self" and "bookmark" within such a set in a rel value is accepted.
* <code>rel="self bookmark"</code> - parse as '''u-url'''. note that <code>rel</code> attribute value is treated as a space separated set, thus any presence of "self" and "bookmark" within such a set in a rel value is accepted.
Note: The [[hReview]] format has three properties which make use of <code>rel</code> attribute, these are <code>tag</code>, permalink (via the <code>self</code> and <code>bookmark</code> values) and <code>license</code>. Microformats 2 parsers {{should}} map these URLs into the page scoped rel collection.
Note: The [[hReview]] format has three properties which make use of <code>rel</code> attribute, these are <code>tag</code>, permalink (via the <code>self</code> and <code>bookmark</code> values) and <code>license</code>. Microformats 2 parsers {{should}} map these URLs into the page scoped rel collection.
 +
 +
=== prior property names ===
 +
There may be a handful of h-reviews out there (only one known so far) that use prior h-review property names. Parsers encountering these *may* interpret them as follows:
 +
 +
* <code>dt-reviewed</code> treat as a fallback for '''<code>dt-published</code>'''
 +
* <code>e-description</code> treat as a fallback for '''<code>e-content</code>'''
 +
* <code>p-reviewer</code> treat as a fallback for '''<code>p-author</code>'''
== Background ==
== Background ==

Revision as of 16:46, 29 May 2016

Tantek Çelik (Editor)


h-review is a simple, open format for publishing reviews on the web. h-review is one of several open microformat draft standards suitable for embedding data in HTML/HTML5 on the web.

h-review is the microformats2 update to hReview.

Per CC0, to the extent possible under law, the editors have waived all copyright and related or neighboring rights to this work. In addition, as of 2019-12-07, the editors have made this specification available under the Open Web Foundation Agreement Version 1.0.

Contents

Example

Here is a simple review example:

<div class="h-review">
  <h1 class="p-name">Microformats: is structured data worth it?</h1>
 
  <blockquote>
    <a class="p-item h-item" href="http://microformats.org">Microformats</a> are the simplest way to publish structured data on the web.
  </blockquote>
 
  <p>
    <data class="p-rating" value="5">★★★★★</data>
    Published <time class="dt-published" datetime="2013-06-12 12:00:00">12<sup>th</sup> June 2013</time>
    by <a class="p-author h-card" href="http://example.com">Joe Bloggs</a>.
  </p>
 
  <div class="e-content">
    <p>Yes, microformats are undoubtedly great. They are the simplest way to markup structured data in HTML and reap the benefits thereof, including using your web page as your API by automatic conversion to JSON. The alternatives of microdata/schema and RDFa are much more work, require more markup, and are more complicated (harder to get right, more likely to break).</p>
  </div>
</div>

Parsed JSON:

{
  "items": [
    {
      "type": [
        "h-review"
      ],
      "properties": {
        "name": [
          "Microformats: is structured data worth it?"
        ],
        "item": [
          {
            "value": "Microformats",
            "type": [
              "h-item"
            ],
            "properties": {
              "name": [
                "Microformats"
              ],
              "url": [
                "http://microformats.org"
              ]
            }
          }
        ],
        "rating": [
          "5"
        ],
        "published": [
          "2013-06-12 12:00:00"
        ],
        "author": [
          {
            "value": "Joe Bloggs",
            "type": [
              "h-card"
            ],
            "properties": {
              "name": [
                "Joe Bloggs"
              ],
              "url": [
                "http://example.com"
              ]
            }
          }
        ],
        "content": [
          {
            "value": "Yes, microformats are undoubtedly great. They are the simplest way to markup structured data in HTML and reap the benefits thereof, including using your web page as your API by automatic conversion to JSON. The alternatives of microdata/schema and RDFa are much more work, require more markup, and are more complicated (harder to get right, more likely to break).",
            "html": "<p>Yes, microformats are undoubtedly great. They are the simplest way to markup structured data in HTML and reap the benefits thereof, including using your web page as your API by automatic conversion to JSON. The alternatives of microdata/schema and RDFa are much more work, require more markup, and are more complicated (harder to get right, more likely to break).</p>"
          }
        ]
      }
    }
  ]
}

Get started

The class h-review is a root class name that indicates the presence of an h-review.

p-name, p-item, p-rating, dt-published, p-author, e-content and the other property class names listed below defined elements as properties of the h-review.

The class h-item is a root class name that indicates an embedded h-item for the p-item property.

The class h-card is a root class name that indicates an embedded h-card for the p-author property.

See microformats2-parsing to learn more about property class names.

Properties

h-review properties, inside an element with class h-review:

All properties are optional.

Status

h-review is a microformats.org draft specification. Public discussion on h-review takes place on h-review-feedback and the #microformats irc channel on irc.freenode.net.

h-review is ready to use.

Property Details

(stub, add any property explanations here)

Examples in the Wild

Implementations

Validating

Main article: validators

Test and validate microformats2 markup in general with:

Backward Compatiblity

Publisher Compatibility

For backward compatibility, you may wish to use classic hReview classnames on an h-review permalink page in addition to the more future-proof h-review properties, for example:

<div class="h-review hreview">
  <h1 class="p-name fn">My great review</h1>
</div>

Parser Compatibility

Microformats parsers should detect classic properties and parse them as microformats 2 properties. If an "h-review" is found, don't look for an "hReview" on the same element.

Compatibility root class name: hreview

Properties: (parsed as p- plain text unless otherwise specified)

Note: The hReview format has three properties which make use of rel attribute, these are tag, permalink (via the self and bookmark values) and license. Microformats 2 parsers SHOULD map these URLs into the page scoped rel collection.

prior property names

There may be a handful of h-reviews out there (only one known so far) that use prior h-review property names. Parsers encountering these *may* interpret them as follows:

Background

h-review is based on the existing hReview specification.

See Also

Categories

h-review was last modified: Wednesday, December 31st, 1969

Views