by Tantek Çelik
When hReview was first being developed, it was clear to me from experience with developing hCard and hCalendar that each property, value, and structure being introduced into hReview was unambiguously parsable, both for the existence of hReviews in arbitrary (X)HTML (and anywhere that arbitrary (X)HTML can be embedded, e.g. RSS, Atom, "generic XML"), and properties and values in general.
The purpose of this document is to capture the specifics of how to parse hReview and all its properties in order to increase interoperability of the format.
This document is an incomplete draft. Use the hCard parsing document for guidance where holes exist. In fact, much of this will be clearly recognized by anyone familiar with hCard parsing as having been copypasted from that source. At some point (perhaps after writing hcalendar-parsing), I will abstract the common aspects of compound-microformat parsing and write a separate Parsing document which will handle all general aspects such as URL handling, looking for the root class name, looking for properties, treating embedded microformats as wrappers etc.
Although this page is written specifically to explain how to parse hReview, the concepts and algorithms contained therein serve as an example for how other compound microformats are to be parsed.
An hReview parser may begin with a URL to retrieve.
If the URL lacks a fragment identifier, then the parser should parse the entire retrieved resource for hReview.
If the URL has a fragment identifier, then the parser should parse only the node indicated by the fragment identifier and its descendants, looking for hReviews, starting with the indicated node, which may itself be a single hReviews.
root class name
Each compound microformat starts with a root element with a relatively unique class name. By that I mean a class name which isn't simply a common word, and is unlikely to have been used outside the context of the microformat. By choosing such a root class name the microformat avoids (for all practical purposes) colliding with existing class names that may exist within the (X)HTML context. This is essential to enabling such compound microformats to be embedded inside current, existing content, as well as future content.
- hReview 0.4 (in progress)
- hReview-aggregate - microformat for specifying summary information from a collection of reviews about a product or service
- hReview creator (feedback) - create your own hReview.
- hReview authoring - learn how to add hReview mark-up to your existing contact info.
- hReview brainstorming - thoughts for improving hReview.
- hReview cheatsheet - hCard properties.
- hReview examples in the wild - an on-going list of websites which use hReview.
- hReview FAQ - If you have any questions about hReview, check here, and if you don't find answers, add your questions!
- hReview feedback - Feedback is encouraged!
- hReview implementations - websites or tools which either generate or parse hReviews.
- hReview issues - Please add any issues with the specification to the issues page.
- hReview parsing - Normatively details of how to parse hReviews.
- hReview profile - The XMDP profile for hReview.
- hReview tests - a wiki page with actual embedded hReviews to try parsing.
- hReview advocacy - encourage others to use hReview.
- review-brainstorming - where we brainstormed about review formats before coming up with hReview.
- currency - proposal for marking up amounts of money (e.g. prices of reviewed items).
- Aggregate reviews - examples - formats - brainstorming