<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://microformats.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Elli</id>
	<title>Microformats Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://microformats.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Elli"/>
	<link rel="alternate" type="text/html" href="https://microformats.org/wiki/Special:Contributions/Elli"/>
	<updated>2026-04-04T19:23:37Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=hcard-supporting-user-profiles&amp;diff=39091</id>
		<title>hcard-supporting-user-profiles</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=hcard-supporting-user-profiles&amp;diff=39091"/>
		<updated>2009-06-12T03:44:14Z</updated>

		<summary type="html">&lt;p&gt;Elli: Addes supporting site sustainlane&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC-right}}&lt;br /&gt;
&amp;lt;h1&amp;gt;hCard supporting user profiles&amp;lt;/h1&amp;gt;&lt;br /&gt;
Welcome! If you have an account on any of the following services, you already have an [[hcard|hCard]] which you can provide to other services to import or subscribe your profile information. The ability to syndicate your profile from the service of your choice is a key component of [[social-network-portability]].&lt;br /&gt;
&lt;br /&gt;
== Services with hCard profiles that also provide OpenID ==&lt;br /&gt;
The following web sites support both hCard on user profiles and the ability to use your user profile as an [[OpenID]].  Alphabetically sorted.  Feel free to add sites with hCard profiles that are also OpenID URLs here. Please include a link to the site home page (or [[implementations]] entry). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:larger&amp;quot;&amp;gt;&lt;br /&gt;
* http://claimid.com/images/badges/claimidclear10x10.gif [http://claimid.com/ ClaimID]&lt;br /&gt;
* http://identoo.com/images/icons/services/identoo.gif [http://identoo.com/ Identoo]&lt;br /&gt;
* http://pulse.plaxo.com/pulse/img/event_icons/LiveJournal.gif  [http://livejournal.com LiveJournal]&lt;br /&gt;
* [http://myopenid.com MyOpenID]&lt;br /&gt;
* http://pulse.plaxo.com/pulse/img/event_icons/plaxo.gif [http://www.plaxo.com/ Plaxo]&lt;br /&gt;
* http://technorati.com/tools/mozsearch/technorati.png [http://technorati.com/ Technorati]&lt;br /&gt;
* [http://videntity.org/ Videntity.org]&lt;br /&gt;
* http://www.betaid.org/i/icn_betaid.png [http://www.betaid.org Beta ID]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== All services with hCard profiles ==&lt;br /&gt;
The following web &amp;lt;span id=&amp;quot;Services_with_hCard_profiles&amp;quot;&amp;gt;sites support hCard on their user profiles&amp;lt;/span&amp;gt; and are thus suitable for importing/subscribing to other sites that support hCard.  Sites that you can also use as your [[OpenID]] are annotated with a OpenID icon http://openid.net/wp-content/uploads/2007/10/openid_small_logo_white.gif following the name of the site.&lt;br /&gt;
&lt;br /&gt;
Alphabetically sorted.  Feel free to add all sites with hCard profiles here. Please include a link to the site home page (or [[implementations]] entry), and instructions for retrieving your user profile URL on that site. If the site's user profile URLs can also be used as OpenIDs, please add the OpenID icon http://openid.net/wp-content/uploads/2007/10/openid_small_logo_white.gif following the name of the site.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:larger&amp;quot;&amp;gt;&lt;br /&gt;
* [http://3eep.com/ 3eep] - each user's public profile is located at &amp;lt;nowiki&amp;gt;http://3eep.com/users/userNameHere&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* [http://www.artistserver.com/ ArtistServer] - each user's public profile is located at &amp;lt;nowiki&amp;gt;http://www.artistserver.com/userURLHere&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* [http://www.bragster.com/ bragster] - each user's public profile is located at &amp;lt;nowiki&amp;gt;http://www.bragster.com/member/username&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* http://claimid.com/images/badges/claimidclear10x10.gif [http://claimid.com/ ClaimID] http://openid.net/wp-content/uploads/2007/10/openid_small_logo_white.gif - each user's public profile is located at &amp;lt;nowiki&amp;gt;http://claimid.com/userNameHere&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* http://identoo.com/images/icons/services/corkd.gif [http://www.corkd.com/ Cork'd] - login and copy the URL which should start with &amp;lt;nowiki&amp;gt;http://www.corkd.com/people/&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* http://pulse.plaxo.com/pulse/img/event_icons/Digg.gif [http://digg.com/ Digg] - e.g. http://digg.com/users/tantek&lt;br /&gt;
* [http://djangopeople.net/ Django People] — profiles are at djangopeople.net/username e.g. http://djangopeople.net/simon/&lt;br /&gt;
* http://identoo.com/images/icons/services/dopplr.gif [http://www.dopplr.com/ Dopplr] — Example public profile: http://www.dopplr.com/traveller/adactio - non-public profiles may require login to view.&lt;br /&gt;
* http://pulse.plaxo.com/pulse/img/event_icons/Facebook.gif [http://facebook.com/ Facebook] - not sure how to find someone's public profile URL, e.g. [http://www.facebook.com/people/Andrei_Zmievski/502957990 Andrei Zmievski] but when found it appears to have support for valid fn+photo properties. Note [[hcard-supporting-user-profiles-issues#Facebook|issue(s) with Facebook hCard profiles]].&lt;br /&gt;
* [http://ficlets.com/ Ficlets] — profiles are located at ficlets.com/authors/username e.g. http://ficlets.com/authors/adactio&lt;br /&gt;
* http://pulse.plaxo.com/pulse/img/event_icons/Flickr.gif [http://flickr.com/ Flickr] - login, click &amp;quot;Your Photos&amp;quot;, click &amp;quot;Profile&amp;quot;, and copy the URL which should start with &amp;lt;nowiki&amp;gt;http://flickr.com/people/&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* [http://gaia.com/ Gaia Community] - e.g. http://sphorbis.gaia.com/ - built by [http://www.zaadz.com Zaadz] &lt;br /&gt;
* [http://google.com Google] - view your profile at http://www.google.com/s2/profiles/me&lt;br /&gt;
* [http://huffduffer.com Huffduffer] profiles are located at &amp;lt;nowiki&amp;gt;http://huffduffer.com/username&amp;lt;/nowiki&amp;gt; — Example public profile: http://huffduffer.com/clagnut&lt;br /&gt;
* http://identoo.com/images/icons/services/identoo.gif [http://identoo.com/ Identoo] http://openid.net/wp-content/uploads/2007/10/openid_small_logo_white.gif - e.g. [http://identoo.com/dirk.olbertz sample profile]&lt;br /&gt;
* http://idleaf.com/favicon.png [http://idleaf.com idleaf] - profiles are located at &amp;lt;nowiki&amp;gt;http://idleaf.com/IDENTITY_ID&amp;lt;/nowiki&amp;gt; - e.g.: http://idleaf.com/ID4184&lt;br /&gt;
* http://identoo.com/images/icons/services/imthere.gif [http://imthere.com/ ImThere] - profiles are located at &amp;lt;nowiki&amp;gt;http://imthere.com/users/USERNAME&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* http://jaiku.com/images/icons/fav-jaiku.gif [http://jaiku.com Jaiku] — profiles are located at username.jaiku.com e.g. http://adactio.jaiku.com/&lt;br /&gt;
* [http://jpgmag.com/ JPG Magazine] - each user's public profile is located at &amp;lt;nowiki&amp;gt;http://jpgmag.com/people/userNameHere&amp;lt;/nowiki&amp;gt;, e.g. http://jpgmag.com/people/jpd&lt;br /&gt;
* [http://www.keevu.com Keevu.com] - profiles are located at &amp;lt;nowiki&amp;gt;http://www.keevu.com/users/USERNAME&amp;lt;/nowiki&amp;gt; - e.g.: [http://www.keevu.com/users/zheileman Zheileman]&lt;br /&gt;
* http://pulse.plaxo.com/pulse/img/event_icons/LastFM.gif [http://www.last.fm/ Last FM] - profiles are located at &amp;lt;nowiki&amp;gt;http://last.fm/user/USERNAME&amp;lt;/nowiki&amp;gt;, includes fn, photo, url.&lt;br /&gt;
* http://pulse.plaxo.com/pulse/img/event_icons/LinkedIn.gif [http://linkedin.com LinkedIn] - login, click on &amp;quot;[http://www.linkedin.com/myprofile?trk=tab_pro My Profile]&amp;quot; in the top blue bar, then click on &amp;quot;[http://www.linkedin.com/myprofile?editwp=&amp;amp;trk=tab_web Public Profile]&amp;quot; and copy the URL in the page after &amp;quot;Your current URL is:&amp;quot; which should start with &amp;lt;nowiki&amp;gt;http://www.linkedin.com/pub/ or http://www.linkedin.com/in/&amp;lt;/nowiki&amp;gt;. Note: LinkedIn profiles include an [[hresume|hResume]] for you in addition to your hCard.&lt;br /&gt;
* http://pulse.plaxo.com/pulse/img/event_icons/LiveJournal.gif  [http://livejournal.com LiveJournal] http://openid.net/wp-content/uploads/2007/10/openid_small_logo_white.gif (see also [[implementations#LiveJournal|LiveJournal]] implementation page entry) - login, click on the &amp;quot;Profile&amp;quot; link, and copy the URL which should start with &amp;lt;nowiki&amp;gt;http://USERNAME.livejournal.com/profile&amp;lt;/nowiki&amp;gt; where USERNAME is your LJ username. E.g. [http://daveman692.livejournal.com/profile].&lt;br /&gt;
* http://pulse.plaxo.com/pulse/img/event_icons/Magnolia.gif [http://ma.gnolia.com/ Ma.gnolia] - each user's public profile is located at &amp;lt;nowiki&amp;gt;http://ma.gnolia.com/people/userNameHere&amp;lt;/nowiki&amp;gt; . Note: [[hcard-supporting-user-profiles-issues#Magnolia|issue(s)]].&lt;br /&gt;
* http://www.mixx.com/images/buttons/mixx-button4.png [http://www.mixx.com Mixx] - profiles are located at &amp;lt;nowiki&amp;gt;http://www.mixx.com/users/USERNAME&amp;lt;/nowiki&amp;gt; e.g. http://www.mixx.com/users/jgarber&lt;br /&gt;
* [http://myopenid.com MyOpenID] http://openid.net/wp-content/uploads/2007/10/openid_small_logo_white.gif - profiles are located at &amp;lt;nowiki&amp;gt;http://USERNAME.myopenid.com&amp;lt;/nowiki&amp;gt; e.g. http://tantek.myopenid.com/&lt;br /&gt;
* [http://www.nsyght.com/ Nsyght] - Visit your profile page. Should look like this: &amp;lt;nowiki&amp;gt;http://www.nsyght.com/friends/[username]/&amp;lt;/nowiki&amp;gt;, e.g. [http://nsyght.com/users/lisa sample profile].&lt;br /&gt;
* http://www.bkmks.com/icons/nytimes.com.gif [http://timespeople.nytimes.com/ NYTimes TimesPeople] - e.g. http://timespeople.nytimes.com/view/user/19390043/1/index.html&lt;br /&gt;
* [http://www.obsidianportal.com Obsidian Portal] - Your profile page is located at &amp;lt;nowiki&amp;gt;http://www.obsidianportal.com/profile/USERNAME&amp;lt;/nowiki&amp;gt;, e.g. [http://www.obsidianportal.com/profile/Micah Micah's profile].&lt;br /&gt;
* [http://www.osocial.net/network/ OSocial Network] - add the [http://www.osocial.net/network/app/osocialnetwork.xml OpenSocial application] into your social network, then in OSocial.net Web site you will be able to get your hCard profile&lt;br /&gt;
* http://pulse.plaxo.com/pulse/img/event_icons/plaxo.gif [http://www.plaxo.com/ Plaxo] http://openid.net/wp-content/uploads/2007/10/openid_small_logo_white.gif - create a nickname in your settings, then go to NICKNAME.myplaxo.com (e.g. http://joseph.myplaxo.com) and copy the URL&lt;br /&gt;
* http://pulse.plaxo.com/pulse/img/event_icons/Pownce.gif [http://pownce.com/ Pownce] -  login, click on the &amp;quot;Home&amp;quot; link at the top, and copy the URL.&lt;br /&gt;
* http://www.syncup.com/SupWeb/ajax/images/16pxSyncUpIcon.gif [http://www.syncup.com/ SyncUp]  - create a free account, choose what information to expose to public or specific people, then get the hcard in your profile page&lt;br /&gt;
* [http://www.qmpeople.com/ qmpeople] - Uses hCard+XFN for profiles (&amp;lt;nowiki&amp;gt;http://www.qmpeople.com/users/[username]&amp;lt;/nowiki&amp;gt; - e.g. [http://www.qmpeople.com/users/laserion laserion])&lt;br /&gt;
* [http://radar.net/ Radar] - http://radar.net/people/radarname&lt;br /&gt;
* [http://www.revish.com/ Revish] — profiles are located at revish.com/people/username e.g. http://www.revish.com/people/adactio&lt;br /&gt;
* [http://rosebleed.net/ Rosebleed] - your profile URL is &amp;lt;nowiki&amp;gt;http://rosebleed.net/users/profile.php/&amp;lt;/nowiki&amp;gt; followed by your username, e.g. [http://rosebleed.net/users/profile.php/silvermoon82 silvermoon82].&lt;br /&gt;
* [http://www.getsatisfaction.com/ Satisfaction]&lt;br /&gt;
* http://skateboardspot.info/image/icon/favicon.png [http://skateboardspot.info/ skateboardspot.info] http://openid.net/wp-content/uploads/2007/10/openid_small_logo_white.gif (The site doesn't provide, but supports OpenID to login and register) — Log in, and click on your username in the top right corner. You'll see your user page which also is your hCard. Just copy the URL and you're done.&lt;br /&gt;
* [http://www.sustainlane.com www.sustainlane.com] - Profile at &amp;lt;nowiki&amp;gt;http://www.sustainlane.com/members/[user id]&amp;lt;/nowiki&amp;gt; [http://www.sustainlane.com/members/4YHJXMST4S1B3NZT1HCSB4OAIVYD Example]&lt;br /&gt;
* [http://tangler.com/ Tangler] -  click on a person's profile to navigate to their profile which is marked up with hCard &amp;lt;nowiki&amp;gt;http://www.tangler.com/people/id/&amp;lt;/nowiki&amp;gt; - where &amp;quot;id&amp;quot; is the user number of that person.&lt;br /&gt;
* http://technorati.com/tools/mozsearch/technorati.png [http://technorati.com/ Technorati] http://openid.net/wp-content/uploads/2007/10/openid_small_logo_white.gif - login, click on the &amp;quot;Signed in as username&amp;quot; username link at the top right of the page, and copy the URL which should start with &amp;lt;nowiki&amp;gt;http://technorati.com/profile/&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* [http://threadless.com/ Threadless] - select &amp;quot;My Account&amp;quot; and then &amp;quot;Profile Page&amp;quot;. URL looks like &amp;lt;nowiki&amp;gt;http://www.threadless.com/profile/123987/username&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* [http://www.travellerspoint.com/ Travellerspoint] - In use on all member profiles. URLs look like &amp;lt;nowiki&amp;gt;http://www.travellerspoint.com/member_profile.cfm?user=UsernameHere&amp;lt;/nowiki&amp;gt; (e.g., [http://www.travellerspoint.com/member_profile.cfm?user=Peter Peter])&lt;br /&gt;
* http://pulse.plaxo.com/pulse/img/event_icons/Twitter.gif [http://twitter.com/ Twitter] - login, click on &amp;quot;Your profile&amp;quot; at the top, and copy the URL&lt;br /&gt;
* http://pulse.plaxo.com/pulse/img/event_icons/Upcoming.gif [http://upcoming.yahoo.com/ Upcoming] - login, click on the &amp;quot;Welcome, username!&amp;quot; username link at the top right of the page, and copy the URL which should start with &amp;lt;nowiki&amp;gt;http://upcoming.yahoo.com/user/&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* [http://videntity.org/ Videntity.org] http://openid.net/wp-content/uploads/2007/10/openid_small_logo_white.gif - e.g. http://danda.videntity.org/&lt;br /&gt;
* [http://www.vimeo.com/ Vimeo] — e.g. http://www.vimeo.com/user196031&lt;br /&gt;
* http://openid.net/wp-content/uploads/vox.png [http://vox.com/ Vox] http://openid.net/wp-content/uploads/2007/10/openid_small_logo_white.gif - profile URL is &amp;lt;nowiki&amp;gt;http://USERNAME.vox.com/profile/&amp;lt;/nowiki&amp;gt; e.g.  http://daveman692.vox.com/profile/ (note issue: empty &amp;quot;n&amp;quot; property. fix: remove &amp;quot;n&amp;quot; from class attribute).&lt;br /&gt;
* [http://www.yedda.com/ Yedda] - e.g. http://yedda.com/people/8625713501419/ built by [http://www.zaadz.com Zaadz]&lt;br /&gt;
* [http://www.easthampshire.org/ easthampshire.org] - hCard on events and events map - e.g. http://easthampshire.org/eventdetail/wine_society_evening/1372606 and http://easthampshire.org/eventmap/wine_society_evening/1372606 built by [http://www.callendercreates.com Callender Creates]&lt;br /&gt;
* [http://www.dandyid.org/ DandyID.org] - hCard on user profiles, and a hCard widget for users blogs/sits/etc. (login to see the widget). Profile e.g. http://www.dandyid.org/beta/users/user_id/3&lt;br /&gt;
* ... add more sites (alphabetically sorted please) that support hCard, including instructions for finding and copying your profile URL.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== offline sites ===&lt;br /&gt;
Sites that supported hCard user profiles that have gone offline, perhaps permanently.&lt;br /&gt;
* [http://consumating.com/ Consumating] - login, click on your name or &amp;quot;My Profile&amp;quot; link, copy the URL which looks like &amp;lt;nowiki&amp;gt;http://consumating.com/profiles/userNameHere&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
** supported hCard profiles at least from sometime in 2006 to 2008-03-15 when the site went offline.&lt;br /&gt;
&lt;br /&gt;
== Services that import hCard profiles==&lt;br /&gt;
The following web sites support importing your existing hCard user profile, e.g. from the above sites, or your own page. Feel free to add sites supporting hCard user profile import to the appropriate section here. Please include a link to the site home page, and instructions for how to import your existing hCard user profile to the site.&lt;br /&gt;
&lt;br /&gt;
=== import and subscribe on sign-up ===&lt;br /&gt;
Site(s) that allow you to import ''and'' subscribe to your hCard user profile when signing-up.. Alphabetically sorted.&lt;br /&gt;
* [http://getsatisfaction.com/ Satisfaction Inc.] - go to [http://getsatisfaction.com/people/new their sign in and registration page], choose the service of your existing profile or &amp;quot;'''Other...'''&amp;quot; and enter your profile URL (which you can retrieve as described above), and click &amp;quot;'''Get Profile'''&amp;quot;. Then check &amp;quot;'''[x] Subscribe to this profile'''&amp;quot;. Note: [[hcard-supporting-user-profiles-issues#Satisfaction|issue(s)]].&lt;br /&gt;
&lt;br /&gt;
See [[subscribe-to-hcard]] for more notes on implementing subscribing to a user's hCard to automatically update their profile information.&lt;br /&gt;
&lt;br /&gt;
=== import on sign-up ===&lt;br /&gt;
Site(s) that allow you to import your hCard user profile to sign-up. Alphabetically sorted.&lt;br /&gt;
* [http://www.bragster.com/ bragster] - go to [http://www.bragster.com/signup the sign-up page], click on the service logo of your existing profile, or the microformats logo for 'other' and enter your profile username (or URL for 'other') (which you can retrieve as described above).&lt;br /&gt;
&lt;br /&gt;
=== import anytime ===&lt;br /&gt;
Sites that let you import your external hCard profile information anytime.&lt;br /&gt;
* [http://php-profile-importer.origo.ethz.ch/ PHP Profile importer] - Open Source PHP and JavaScript profile importer, there is also a [http://proofile.org/profile_importer_demo demo available].&lt;br /&gt;
* [http://www.proofile.org proofile] - [http://proofile.org/register Sign up] for an account and view the [http://proofile.org/edit/profile edit profile] page, enabling you to import from any hCard annotated URL. Full hCard is supported.&lt;br /&gt;
* [http://www.dandyid.org DandyID] - import a hCard supporting url after signing up, for auto-filling user info. DandyID also renders detailed hCards on user profiles.&lt;br /&gt;
&lt;br /&gt;
=== subscribe anytime ===&lt;br /&gt;
Sites that let you subscribe to your external hCard profile information anytime.&lt;br /&gt;
* None currently.&lt;br /&gt;
=== delegation ===&lt;br /&gt;
Sites that support fully delegating to your external hCard profile.&lt;br /&gt;
* None currently.&lt;br /&gt;
&lt;br /&gt;
== For more information ==&lt;br /&gt;
Want to implement hCard on your site so you can list it here?  &lt;br /&gt;
&lt;br /&gt;
See the [[hcard-user-profile-authoring|hCard user profile authoring]] page for how to mark-up a user profile with hCard.&lt;br /&gt;
&lt;br /&gt;
Join the [http://microformats.org/discuss microformats community], in particular the #microformats IRC channel on irc://irc.freenode.net#microformats and the [http://microformats.org/mailman/listinfo/microformats-dev/ microformats-dev mailing list], and send a message stating that you'd like to add hCard to the profiles and hCard+XFN supporting friends lists to your website.&lt;br /&gt;
&lt;br /&gt;
Please also consider implementing [[hcard-xfn-supporting-friends-lists|hCard+XFN friends lists]].&lt;br /&gt;
&lt;br /&gt;
See [[hcard-supporting-user-profiles-issues|hCard supporting user profiles issues]] for issues, problems with implementations.&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[subscribe-to-hcard]]&lt;br /&gt;
* [[hcard-xfn-supporting-friends-lists|hCard+XFN friends lists]]&lt;br /&gt;
* [[social-network-portability]]&lt;br /&gt;
* [[user-interface]]&lt;br /&gt;
* [[hcard|hCard]] ([[hcard-authoring|authoring]], [[hcard-faq|FAQ]])&lt;br /&gt;
* [[xfn|XFN]]&lt;br /&gt;
* [[data-portability]]&lt;/div&gt;</summary>
		<author><name>Elli</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39086</id>
		<title>container-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39086"/>
		<updated>2009-06-11T16:49:10Z</updated>

		<summary type="html">&lt;p&gt;Elli: Grammar fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;Containers&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page exists to brainstorm around the concept of ‘containers’ in microformats.&lt;br /&gt;
&lt;br /&gt;
==What's a Container?==&lt;br /&gt;
&lt;br /&gt;
A ‘container’ is a root element that contains multiple microformat items within it. It groups those items together, but could also be used to provide additional or shared semantics between those items.&lt;br /&gt;
&lt;br /&gt;
Some microformats already define containers: &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; [[hCalendar]] is a container for events, the &amp;lt;code&amp;gt;hfeed&amp;lt;/code&amp;gt; container in [[hAtom]] contains entries, [[hAudio]] has a concept whereby &amp;lt;code&amp;gt;haudio&amp;lt;/code&amp;gt; concepts may be nested, and an [[hCard]] &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; may be a container for &amp;lt;code&amp;gt;agent vcard&amp;lt;/code&amp;gt;s.&lt;br /&gt;
&lt;br /&gt;
==Why is this being explored?==&lt;br /&gt;
There are a number of use cases for making better use of these container semantics, both in microformats like hCalendar that already have containers, and [[hReview]], where no current container concept exists.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== examples ==&lt;br /&gt;
As always it helps to start with examples of markup from actual websites that are already publishing container semantics. If this section gets too large, perhaps we can move it to [[container-examples]].&lt;br /&gt;
&lt;br /&gt;
=== container of reviews ===&lt;br /&gt;
The following website(s) contain a list of reviews which could/would benefit from a way of marking up not just the reviews as hReviews, but also the set of them as reviewing the same item.&lt;br /&gt;
==== SustainLane ====&lt;br /&gt;
http://www.sustainlane.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.sustainlane.com/reviews/aziza/TVLWN4ZKQLKTOIKFLWKBWFQ17DN8&lt;br /&gt;
&lt;br /&gt;
==== Yelp ====&lt;br /&gt;
http://yelp.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.yelp.com/biz/coffee-to-the-people-san-francisco&lt;br /&gt;
&lt;br /&gt;
==Use cases==&lt;br /&gt;
Here are some example use cases for sharing properties from a container into multiple child microformats:&lt;br /&gt;
&lt;br /&gt;
===Multiple reviews of the same item===&lt;br /&gt;
As demonstrated by the above real world examples, many sites publish a page for a single item, listing multiple reviews of that item (e.g. Amazon, Kelkoo, Yelp, Yahoo! Location etc.). The item appears once at the top of the page. The reviews follow. [[hReview]]'s current requirement is that the &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; be referenced from every review using the include-pattern. This requires duplicating some amount of content (most logically, the name of the reviewed item). This has raised objections by implementers, and usually imposes a CSS-dependency to hide the repeated content.&lt;br /&gt;
&lt;br /&gt;
===Reviews and review aggregate of the same item===&lt;br /&gt;
Same as above, a single page includes a few reviews and a single reviews aggregate for a single business. In some implementations (yelp) the aggregate result number is contained inside the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt;. Reviews that use the include pattern to include the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; of the business, are also including a second &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; microformat, resulting in two ratings for the same &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;. Putting the reviews and review aggregates as siblings inside the same container, can solve this problem.&lt;br /&gt;
&lt;br /&gt;
===Shared hCalendar Properties===&lt;br /&gt;
Yahoo! TV Listings marks up television programme listings using hCalendar. The &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; field of the event is the channel on which the show is broadcast: e.g. &amp;lt;code&amp;gt;&amp;amp;lt;span class='location'&amp;gt;BBC 1&amp;amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* ‘BBC 1’ is the heading for that channels listing page. The information is published ''once'' in the page.&lt;br /&gt;
* Each scheduled programme on the page is a &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
* Using current hCalendar semantics, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; must be included in every &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the ‘BBC 1’ content at the top of the page, not part of the programme content, the content either has to be repeated and hidden in the presentation layer, or current microformats constructs such as the [[include-pattern]] need to be used to invisibly reference the original mention of ‘BBC 1’.&lt;br /&gt;
&lt;br /&gt;
Repeating content is unacceptable, and the include-pattern is a messy, hacky mark-up pattern. Embracing the concept of the container would match the publishing pattern of the site, without repeating content or including invisible pointers.&lt;br /&gt;
&lt;br /&gt;
'''ideally this markup proposal would be moved to the &amp;quot;markup proposals&amp;quot; section below, separate from the &amp;quot;Use Cases&amp;quot; section, so that multiple varying proposals could be grouped together to compare, rather than intermingling them with the list of use cases.'''&lt;br /&gt;
&lt;br /&gt;
.e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class='vcalendar'&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class='location'&amp;gt;BBC 2&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Gardener's World&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T20:30:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 8:30pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Have I Got News For You&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T21:00:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 9:00pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; is promoted to being a property of the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt;, and is the default location for all the contained events.&lt;br /&gt;
&lt;br /&gt;
This could also apply to the &amp;lt;code&amp;gt;organizer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;attendees&amp;lt;/code&amp;gt;, and others. With further explanation and [[value-class-pattern|date-time separation]], you could event declare the day of the week the the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; and the time-of-day in the &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;. The basic principal is illustrated, though.&lt;br /&gt;
&lt;br /&gt;
Uses for this pattern:&lt;br /&gt;
* Broadcast listings for a single channel/station&lt;br /&gt;
* Concert listings at a single venue&lt;br /&gt;
* Concert listings for a single act (e.g. ‘Doves in Concert’ is the event &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; for multiple events at different &amp;lt;code&amp;gt;locations&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
This of course, extends the use of an existing container.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Shared Aspects of Containers==&lt;br /&gt;
If containers become a more strongly adopted concept in microformats, they should behave consistently across formats (hence documenting these two examples here, rather than just as separate issues for both hReview and hCalendar).&lt;br /&gt;
&lt;br /&gt;
Things that should be consistent and predictable:&lt;br /&gt;
&lt;br /&gt;
* Inheriting an property into a microformat item within the container&lt;br /&gt;
* Contained items ''overriding'' one or more inherited property&lt;br /&gt;
* Alternatively, siblings cannot override properties of other siblings. Example: hcard of reviewer inside hreview cannot override any property of the item hcard (a sibling of the hreview). When a sibling specifies a property of another sibling, it is ignored (Example: hreview contains availability, availability is ignored).&lt;br /&gt;
&lt;br /&gt;
== markup proposals ==&lt;br /&gt;
=== hreview-set ===&lt;br /&gt;
One solution to the problem of multiple reviews of the same item could be to wrap each &amp;lt;code&amp;gt;hReview&amp;lt;/code&amp;gt; in a container (hypothetically, &amp;lt;code&amp;gt;hreview-set&amp;lt;/code&amp;gt;. The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; is a child of the set, and is inherited by each &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; contained within.&lt;br /&gt;
&lt;br /&gt;
=== hCard as a container ===&lt;br /&gt;
&amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; block can contain associated information like reviews and aggregates. &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;s inside an &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; do not need to specify item.&lt;br /&gt;
This also extends to other microformats that may contain reviews, such as hproduct.&lt;br /&gt;
Another option is that a vcard that contains other microformat must also specify additional tag, such as &amp;lt;code&amp;gt;hcontainer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; or similar.&lt;br /&gt;
====Problems====&lt;br /&gt;
* &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; already contains child hCard. Since it can inherit aspects of hcard from its parent, there will be duplicate values. This makes the job of the parser more complex, and requires additional rules, such as &amp;quot;an hreview inside an hcard ignores all hCard properties that are not contained in it&amp;quot;, etc.&lt;br /&gt;
* Include pattern from hreview to the container hCard can cause circular references, requiring more rules in the microformat specification and more rules for the parsers to follow.&lt;br /&gt;
* Generally it seems to me (Elli) that this pattern will require many parsing rules. Things are not &amp;quot;atomic&amp;quot;. It also forces a rigid structure on the xhtml, which may defeat the purpose of containers.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;vcard&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hcontainer===&lt;br /&gt;
A container microformat. Inside a container, a microformat that requires another microformat as a child (such as hreview requiring an item), can resolve this association by sibling relationship (as opposed to parent child relationship).&lt;br /&gt;
When a container includes &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;hreview-aggregate&amp;lt;/code&amp;gt;, it also requires a child &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt;. This is similar to &amp;lt;code&amp;gt;hreview-set&amp;lt;/code&amp;gt; proposal, with specific handling of aggregates.&lt;br /&gt;
&lt;br /&gt;
In the example below, the item is hcard, similar examples can be written for products and events.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;!-- simple, all elements in the container are siblings --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcontainer&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;item vcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- More complex case, nested elements in the container have additional parent child relationship --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcontainer&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h1 class=&amp;quot;item vcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== item as a container ===&lt;br /&gt;
The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; microformat is currently used inside &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;s. Use this existing micformat as a container as well. This makes the specification slightly more complicated, since &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; will be allowed as a parent of &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; as well as a child. This is basically the same proposal as above, but using the name &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; for the container, instead of a dedicated name.&lt;br /&gt;
====Problems====&lt;br /&gt;
* This defines two microformats that can be parent child of each other in both directions (&amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt;).&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;vcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hreview rating and hreview-aggregate rating use different names ===&lt;br /&gt;
Since the microformat &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; is used for both, an &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; that includes an &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; which contains aggregates, effectively imports a second rating. This can be solved by having different names for hreview rating and hreview-aggregate rating. This is not really a container proposal, but it addresses issues of the hreview-aggregate which is currently a container for item.&lt;br /&gt;
====Problems====&lt;br /&gt;
* This may not be necessary for pages that can use a container microformat with minimal impact to the xhtml structure. Pages that cannot use container structure and use includes may still need a solution.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;vcard item&amp;quot; id=&amp;quot;review_item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;!-- average rating --&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;average-rating&amp;quot;&amp;gt;5&amp;lt;/span&amp;gt; stars&lt;br /&gt;
   based on &amp;lt;span class=&amp;quot;review-count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;span class=&amp;quot;type microformat_detail&amp;quot;&amp;gt;business&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;!-- single rating --&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;rating&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt; stars&lt;br /&gt;
   &amp;lt;!-- include pattern --&amp;gt;&lt;br /&gt;
   &amp;lt;a class=&amp;quot;item microformat_detail&amp;quot; href=&amp;quot;#review_item&amp;quot;&amp;gt;Aziza&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[hReview]]&lt;br /&gt;
* [[hCalendar]]&lt;br /&gt;
* [[hListing]]&lt;/div&gt;</summary>
		<author><name>Elli</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39085</id>
		<title>container-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39085"/>
		<updated>2009-06-11T16:44:56Z</updated>

		<summary type="html">&lt;p&gt;Elli: Grammar error&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;Containers&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page exists to brainstorm around the concept of ‘containers’ in microformats.&lt;br /&gt;
&lt;br /&gt;
==What's a Container?==&lt;br /&gt;
&lt;br /&gt;
A ‘container’ is a root element that contains multiple microformat items within it. It groups those items together, but could also be used to provide additional or shared semantics between those items.&lt;br /&gt;
&lt;br /&gt;
Some microformats already define containers: &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; [[hCalendar]] is a container for events, the &amp;lt;code&amp;gt;hfeed&amp;lt;/code&amp;gt; container in [[hAtom]] contains entries, [[hAudio]] has a concept whereby &amp;lt;code&amp;gt;haudio&amp;lt;/code&amp;gt; concepts may be nested, and an [[hCard]] &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; may be a container for &amp;lt;code&amp;gt;agent vcard&amp;lt;/code&amp;gt;s.&lt;br /&gt;
&lt;br /&gt;
==Why is this being explored?==&lt;br /&gt;
There are a number of use cases for making better use of these container semantics, both in microformats like hCalendar that already have containers, and [[hReview]], where no current container concept exists.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== examples ==&lt;br /&gt;
As always it helps to start with examples of markup from actual websites that are already publishing container semantics. If this section gets too large, perhaps we can move it to [[container-examples]].&lt;br /&gt;
&lt;br /&gt;
=== container of reviews ===&lt;br /&gt;
The following website(s) contain a list of reviews which could/would benefit from a way of marking up not just the reviews as hReviews, but also the set of them as reviewing the same item.&lt;br /&gt;
==== SustainLane ====&lt;br /&gt;
http://www.sustainlane.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.sustainlane.com/reviews/aziza/TVLWN4ZKQLKTOIKFLWKBWFQ17DN8&lt;br /&gt;
&lt;br /&gt;
==== Yelp ====&lt;br /&gt;
http://yelp.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.yelp.com/biz/coffee-to-the-people-san-francisco&lt;br /&gt;
&lt;br /&gt;
==Use cases==&lt;br /&gt;
Here are some example use cases for sharing properties from a container into multiple child microformats:&lt;br /&gt;
&lt;br /&gt;
===Multiple reviews of the same item===&lt;br /&gt;
As demonstrated by the above real world examples, many sites publish a page for a single item, listing multiple reviews of that item (e.g. Amazon, Kelkoo, Yelp, Yahoo! Location etc.). The item appears once at the top of the page. The reviews follow. [[hReview]]'s current requirement is that the &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; be referenced from every review using the include-pattern. This requires duplicating some amount of content (most logically, the name of the reviewed item). This has raised objections by implementers, and usually imposes a CSS-dependency to hide the repeated content.&lt;br /&gt;
&lt;br /&gt;
===Reviews and review aggregate of the same item===&lt;br /&gt;
Same as above, a single page includes a few reviews and a single reviews aggregate for a single business. In some implementations (yelp) the aggregate result number is contained inside the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt;. Reviews that use the include pattern to include the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; of the business, are also including a second &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; microformat, resulting in two ratings for the same &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;. Putting the reviews and review aggregates as siblings inside the same container, can solve this problem.&lt;br /&gt;
&lt;br /&gt;
===Shared hCalendar Properties===&lt;br /&gt;
Yahoo! TV Listings marks up television programme listings using hCalendar. The &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; field of the event is the channel on which the show is broadcast: e.g. &amp;lt;code&amp;gt;&amp;amp;lt;span class='location'&amp;gt;BBC 1&amp;amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* ‘BBC 1’ is the heading for that channels listing page. The information is published ''once'' in the page.&lt;br /&gt;
* Each scheduled programme on the page is a &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
* Using current hCalendar semantics, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; must be included in every &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the ‘BBC 1’ content at the top of the page, not part of the programme content, the content either has to be repeated and hidden in the presentation layer, or current microformats constructs such as the [[include-pattern]] need to be used to invisibly reference the original mention of ‘BBC 1’.&lt;br /&gt;
&lt;br /&gt;
Repeating content is unacceptable, and the include-pattern is a messy, hacky mark-up pattern. Embracing the concept of the container would match the publishing pattern of the site, without repeating content or including invisible pointers.&lt;br /&gt;
&lt;br /&gt;
'''ideally this markup proposal would be moved to the &amp;quot;markup proposals&amp;quot; section below, separate from the &amp;quot;Use Cases&amp;quot; section, so that multiple varying proposals could be grouped together to compare, rather than intermingling them with the list of use cases.'''&lt;br /&gt;
&lt;br /&gt;
.e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class='vcalendar'&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class='location'&amp;gt;BBC 2&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Gardener's World&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T20:30:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 8:30pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Have I Got News For You&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T21:00:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 9:00pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; is promoted to being a property of the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt;, and is the default location for all the contained events.&lt;br /&gt;
&lt;br /&gt;
This could also apply to the &amp;lt;code&amp;gt;organizer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;attendees&amp;lt;/code&amp;gt;, and others. With further explanation and [[value-class-pattern|date-time separation]], you could event declare the day of the week the the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; and the time-of-day in the &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;. The basic principal is illustrated, though.&lt;br /&gt;
&lt;br /&gt;
Uses for this pattern:&lt;br /&gt;
* Broadcast listings for a single channel/station&lt;br /&gt;
* Concert listings at a single venue&lt;br /&gt;
* Concert listings for a single act (e.g. ‘Doves in Concert’ is the event &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; for multiple events at different &amp;lt;code&amp;gt;locations&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
This of course, extends the use of an existing container.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Shared Aspects of Containers==&lt;br /&gt;
If containers become a more strongly adopted concept in microformats, they should behave consistently across formats (hence documenting these two examples here, rather than just as separate issues for both hReview and hCalendar).&lt;br /&gt;
&lt;br /&gt;
Things that should be consistent and predictable:&lt;br /&gt;
&lt;br /&gt;
* Inheriting an property into a microformat item within the container&lt;br /&gt;
* Contained items ''overriding'' one or more inherited property&lt;br /&gt;
* Alternatively, siblings cannot override properties of other siblings. Example: hcard of reviewer inside hreview cannot override any property of the item hcard (a sibling of the hreview). When a sibling specifies a property of another sibling, it is ignored (Example: hreview contains availability, availability is ignored).&lt;br /&gt;
&lt;br /&gt;
== markup proposals ==&lt;br /&gt;
=== hreview-set ===&lt;br /&gt;
One solution to the problem of multiple reviews of the same item could be to wrap each &amp;lt;code&amp;gt;hReview&amp;lt;/code&amp;gt; in a container (hypothetically, &amp;lt;code&amp;gt;hreview-set&amp;lt;/code&amp;gt;. The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; is a child of the set, and is inherited by each &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; contained within.&lt;br /&gt;
&lt;br /&gt;
=== hCard as a container ===&lt;br /&gt;
&amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; block can contain associated information like reviews and aggregates. &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;s inside an &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; do not need to specify item.&lt;br /&gt;
This also extends to other microformats that may contain reviews, such as hproduct.&lt;br /&gt;
Another option is that a vcard that contains other microformat must also specify additional tag, such as &amp;lt;code&amp;gt;hcontainer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; or similar.&lt;br /&gt;
====Problems====&lt;br /&gt;
* &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; already contains child hCard. Since it can inherit aspects of hcard from its parent, there will be duplicate values. This makes the job of the parser more complex, and requires additional rules, such as &amp;quot;an hreview inside an hcard ignores all hCard properties that are not contained in it&amp;quot;, etc.&lt;br /&gt;
* Include pattern from hreview to the container hCard can cause circular references, requiring more rules in the microformat specification and more rules for the parsers to follow.&lt;br /&gt;
* Generally it seems to me (Elli) that this pattern will require many parsing rules. Things are not &amp;quot;atomic&amp;quot;. It also forces a rigid structure on the xhtml, which may defeat the purpose of containers.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;vcard&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hcontainer===&lt;br /&gt;
A container microformat. Inside a container, a microformat that requires another microformat as a child (such as hreview requiring an item), can resolve this association by sibling relationship (as opposed to parent child relationship).&lt;br /&gt;
When a container includes &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;hreview-aggregate&amp;lt;/code&amp;gt;, it also requires a child &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt;. This is similar to &amp;lt;code&amp;gt;hreview-set&amp;lt;/code&amp;gt; proposal, with specific handling of aggregates.&lt;br /&gt;
&lt;br /&gt;
In the example below, the item is hcard, similar examples can be written for products and events.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;!-- simple, all elements in the container are siblings --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcontainer&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;item vcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- More complex case, nested elements in the container have additional parent child relationship --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcontainer&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h1 class=&amp;quot;item vcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== item as a container ===&lt;br /&gt;
The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; microformat is currently used inside &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;s. Use this existing micformat as a container as well. This makes the specification slightly more complicated, since &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; will be allowed as a parent of &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; as well as a child. This is basically the same proposal as above, but using the name &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; for the container, instead of a dedicated name.&lt;br /&gt;
====Problems====&lt;br /&gt;
* This defines two microformats that can be parent child of each other in both directions (&amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt;).&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;vcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hreview rating and hreview-aggregate rating use different names ===&lt;br /&gt;
Since the microformat &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; is used for both, an &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; that includes an &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; which contains aggregates, effectively imports a second rating. This can be solved by having different names for hreview rating and hreview-aggregate rating. This is not really a container proposal, but it addresses issues of the hreview-aggregate which is currently a container for item.&lt;br /&gt;
====Problems====&lt;br /&gt;
* This may not be necessary for pages that can use a container to add microformats with minimal impact to the xhtml structure. Pages that cannot use container structure and use includes may still need a solution.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;vcard item&amp;quot; id=&amp;quot;review_item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;!-- average rating --&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;average-rating&amp;quot;&amp;gt;5&amp;lt;/span&amp;gt; stars&lt;br /&gt;
   based on &amp;lt;span class=&amp;quot;review-count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;span class=&amp;quot;type microformat_detail&amp;quot;&amp;gt;business&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;!-- single rating --&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;rating&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt; stars&lt;br /&gt;
   &amp;lt;!-- include pattern --&amp;gt;&lt;br /&gt;
   &amp;lt;a class=&amp;quot;item microformat_detail&amp;quot; href=&amp;quot;#review_item&amp;quot;&amp;gt;Aziza&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[hReview]]&lt;br /&gt;
* [[hCalendar]]&lt;br /&gt;
* [[hListing]]&lt;/div&gt;</summary>
		<author><name>Elli</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39084</id>
		<title>container-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39084"/>
		<updated>2009-06-11T16:44:19Z</updated>

		<summary type="html">&lt;p&gt;Elli: Fixed explanation of shared aspect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;Containers&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page exists to brainstorm around the concept of ‘containers’ in microformats.&lt;br /&gt;
&lt;br /&gt;
==What's a Container?==&lt;br /&gt;
&lt;br /&gt;
A ‘container’ is a root element that contains multiple microformat items within it. It groups those items together, but could also be used to provide additional or shared semantics between those items.&lt;br /&gt;
&lt;br /&gt;
Some microformats already define containers: &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; [[hCalendar]] is a container for events, the &amp;lt;code&amp;gt;hfeed&amp;lt;/code&amp;gt; container in [[hAtom]] contains entries, [[hAudio]] has a concept whereby &amp;lt;code&amp;gt;haudio&amp;lt;/code&amp;gt; concepts may be nested, and an [[hCard]] &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; may be a container for &amp;lt;code&amp;gt;agent vcard&amp;lt;/code&amp;gt;s.&lt;br /&gt;
&lt;br /&gt;
==Why is this being explored?==&lt;br /&gt;
There are a number of use cases for making better use of these container semantics, both in microformats like hCalendar that already have containers, and [[hReview]], where no current container concept exists.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== examples ==&lt;br /&gt;
As always it helps to start with examples of markup from actual websites that are already publishing container semantics. If this section gets too large, perhaps we can move it to [[container-examples]].&lt;br /&gt;
&lt;br /&gt;
=== container of reviews ===&lt;br /&gt;
The following website(s) contain a list of reviews which could/would benefit from a way of marking up not just the reviews as hReviews, but also the set of them as reviewing the same item.&lt;br /&gt;
==== SustainLane ====&lt;br /&gt;
http://www.sustainlane.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.sustainlane.com/reviews/aziza/TVLWN4ZKQLKTOIKFLWKBWFQ17DN8&lt;br /&gt;
&lt;br /&gt;
==== Yelp ====&lt;br /&gt;
http://yelp.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.yelp.com/biz/coffee-to-the-people-san-francisco&lt;br /&gt;
&lt;br /&gt;
==Use cases==&lt;br /&gt;
Here are some example use cases for sharing properties from a container into multiple child microformats:&lt;br /&gt;
&lt;br /&gt;
===Multiple reviews of the same item===&lt;br /&gt;
As demonstrated by the above real world examples, many sites publish a page for a single item, listing multiple reviews of that item (e.g. Amazon, Kelkoo, Yelp, Yahoo! Location etc.). The item appears once at the top of the page. The reviews follow. [[hReview]]'s current requirement is that the &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; be referenced from every review using the include-pattern. This requires duplicating some amount of content (most logically, the name of the reviewed item). This has raised objections by implementers, and usually imposes a CSS-dependency to hide the repeated content.&lt;br /&gt;
&lt;br /&gt;
===Reviews and review aggregate of the same item===&lt;br /&gt;
Same as above, a single page includes a few reviews and a single reviews aggregate for a single business. In some implementations (yelp) the aggregate result number is contained inside the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt;. Reviews that use the include pattern to include the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; of the business, are also including a second &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; microformat, resulting in two ratings for the same &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;. Putting the reviews and review aggregates as siblings inside the same container, can solve this problem.&lt;br /&gt;
&lt;br /&gt;
===Shared hCalendar Properties===&lt;br /&gt;
Yahoo! TV Listings marks up television programme listings using hCalendar. The &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; field of the event is the channel on which the show is broadcast: e.g. &amp;lt;code&amp;gt;&amp;amp;lt;span class='location'&amp;gt;BBC 1&amp;amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* ‘BBC 1’ is the heading for that channels listing page. The information is published ''once'' in the page.&lt;br /&gt;
* Each scheduled programme on the page is a &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
* Using current hCalendar semantics, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; must be included in every &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the ‘BBC 1’ content at the top of the page, not part of the programme content, the content either has to be repeated and hidden in the presentation layer, or current microformats constructs such as the [[include-pattern]] need to be used to invisibly reference the original mention of ‘BBC 1’.&lt;br /&gt;
&lt;br /&gt;
Repeating content is unacceptable, and the include-pattern is a messy, hacky mark-up pattern. Embracing the concept of the container would match the publishing pattern of the site, without repeating content or including invisible pointers.&lt;br /&gt;
&lt;br /&gt;
'''ideally this markup proposal would be moved to the &amp;quot;markup proposals&amp;quot; section below, separate from the &amp;quot;Use Cases&amp;quot; section, so that multiple varying proposals could be grouped together to compare, rather than intermingling them with the list of use cases.'''&lt;br /&gt;
&lt;br /&gt;
.e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class='vcalendar'&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class='location'&amp;gt;BBC 2&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Gardener's World&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T20:30:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 8:30pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Have I Got News For You&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T21:00:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 9:00pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; is promoted to being a property of the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt;, and is the default location for all the contained events.&lt;br /&gt;
&lt;br /&gt;
This could also apply to the &amp;lt;code&amp;gt;organizer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;attendees&amp;lt;/code&amp;gt;, and others. With further explanation and [[value-class-pattern|date-time separation]], you could event declare the day of the week the the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; and the time-of-day in the &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;. The basic principal is illustrated, though.&lt;br /&gt;
&lt;br /&gt;
Uses for this pattern:&lt;br /&gt;
* Broadcast listings for a single channel/station&lt;br /&gt;
* Concert listings at a single venue&lt;br /&gt;
* Concert listings for a single act (e.g. ‘Doves in Concert’ is the event &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; for multiple events at different &amp;lt;code&amp;gt;locations&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
This of course, extends the use of an existing container.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Shared Aspects of Containers==&lt;br /&gt;
If containers become a more strongly adopted concept in microformats, they should behave consistently across formats (hence documenting these two examples here, rather than just as separate issues for both hReview and hCalendar).&lt;br /&gt;
&lt;br /&gt;
Things that should be consistent and predictable:&lt;br /&gt;
&lt;br /&gt;
* Inheriting an property into a microformat item within the container&lt;br /&gt;
* Contained items ''overriding'' one or more inherited property&lt;br /&gt;
* Alternatively, siblings cannot override properties of other siblings. Example: hcard of reviewer inside hreview cannot override any property of the item hcard (a sibling of the hreview). When a sibling specifies a property of another sibling, it is ignored (Example: hreview contains availability, availability is ignored).&lt;br /&gt;
&lt;br /&gt;
== markup proposals ==&lt;br /&gt;
=== hreview-set ===&lt;br /&gt;
One solution to the problem of multiple reviews of the same item could be to wrap each &amp;lt;code&amp;gt;hReview&amp;lt;/code&amp;gt; in a container (hypothetically, &amp;lt;code&amp;gt;hreview-set&amp;lt;/code&amp;gt;. The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; is a child of the set, and is inherited by each &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; contained within.&lt;br /&gt;
&lt;br /&gt;
=== hCard as a container ===&lt;br /&gt;
&amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; block can contain associated information like reviews and aggregates. &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;s inside an &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; do not need to specify item.&lt;br /&gt;
This also extends to other microformats that can may contain reviews, such as hproduct.&lt;br /&gt;
Another option is that a vcard that contains other microformat must also specify additional tag, such as &amp;lt;code&amp;gt;hcontainer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; or similar.&lt;br /&gt;
====Problems====&lt;br /&gt;
* &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; already contains child hCard. Since it can inherit aspects of hcard from its parent, there will be duplicate values. This makes the job of the parser more complex, and requires additional rules, such as &amp;quot;an hreview inside an hcard ignores all hCard properties that are not contained in it&amp;quot;, etc.&lt;br /&gt;
* Include pattern from hreview to the container hCard can cause circular references, requiring more rules in the microformat specification and more rules for the parsers to follow.&lt;br /&gt;
* Generally it seems to me (Elli) that this pattern will require many parsing rules. Things are not &amp;quot;atomic&amp;quot;. It also forces a rigid structure on the xhtml, which may defeat the purpose of containers.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;vcard&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hcontainer===&lt;br /&gt;
A container microformat. Inside a container, a microformat that requires another microformat as a child (such as hreview requiring an item), can resolve this association by sibling relationship (as opposed to parent child relationship).&lt;br /&gt;
When a container includes &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;hreview-aggregate&amp;lt;/code&amp;gt;, it also requires a child &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt;. This is similar to &amp;lt;code&amp;gt;hreview-set&amp;lt;/code&amp;gt; proposal, with specific handling of aggregates.&lt;br /&gt;
&lt;br /&gt;
In the example below, the item is hcard, similar examples can be written for products and events.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;!-- simple, all elements in the container are siblings --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcontainer&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;item vcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- More complex case, nested elements in the container have additional parent child relationship --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcontainer&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h1 class=&amp;quot;item vcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== item as a container ===&lt;br /&gt;
The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; microformat is currently used inside &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;s. Use this existing micformat as a container as well. This makes the specification slightly more complicated, since &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; will be allowed as a parent of &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; as well as a child. This is basically the same proposal as above, but using the name &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; for the container, instead of a dedicated name.&lt;br /&gt;
====Problems====&lt;br /&gt;
* This defines two microformats that can be parent child of each other in both directions (&amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt;).&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;vcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hreview rating and hreview-aggregate rating use different names ===&lt;br /&gt;
Since the microformat &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; is used for both, an &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; that includes an &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; which contains aggregates, effectively imports a second rating. This can be solved by having different names for hreview rating and hreview-aggregate rating. This is not really a container proposal, but it addresses issues of the hreview-aggregate which is currently a container for item.&lt;br /&gt;
====Problems====&lt;br /&gt;
* This may not be necessary for pages that can use a container to add microformats with minimal impact to the xhtml structure. Pages that cannot use container structure and use includes may still need a solution.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;vcard item&amp;quot; id=&amp;quot;review_item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;!-- average rating --&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;average-rating&amp;quot;&amp;gt;5&amp;lt;/span&amp;gt; stars&lt;br /&gt;
   based on &amp;lt;span class=&amp;quot;review-count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;span class=&amp;quot;type microformat_detail&amp;quot;&amp;gt;business&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;!-- single rating --&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;rating&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt; stars&lt;br /&gt;
   &amp;lt;!-- include pattern --&amp;gt;&lt;br /&gt;
   &amp;lt;a class=&amp;quot;item microformat_detail&amp;quot; href=&amp;quot;#review_item&amp;quot;&amp;gt;Aziza&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[hReview]]&lt;br /&gt;
* [[hCalendar]]&lt;br /&gt;
* [[hListing]]&lt;/div&gt;</summary>
		<author><name>Elli</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39083</id>
		<title>container-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39083"/>
		<updated>2009-06-11T16:43:49Z</updated>

		<summary type="html">&lt;p&gt;Elli: /* Shared Aspects of Containers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;Containers&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page exists to brainstorm around the concept of ‘containers’ in microformats.&lt;br /&gt;
&lt;br /&gt;
==What's a Container?==&lt;br /&gt;
&lt;br /&gt;
A ‘container’ is a root element that contains multiple microformat items within it. It groups those items together, but could also be used to provide additional or shared semantics between those items.&lt;br /&gt;
&lt;br /&gt;
Some microformats already define containers: &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; [[hCalendar]] is a container for events, the &amp;lt;code&amp;gt;hfeed&amp;lt;/code&amp;gt; container in [[hAtom]] contains entries, [[hAudio]] has a concept whereby &amp;lt;code&amp;gt;haudio&amp;lt;/code&amp;gt; concepts may be nested, and an [[hCard]] &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; may be a container for &amp;lt;code&amp;gt;agent vcard&amp;lt;/code&amp;gt;s.&lt;br /&gt;
&lt;br /&gt;
==Why is this being explored?==&lt;br /&gt;
There are a number of use cases for making better use of these container semantics, both in microformats like hCalendar that already have containers, and [[hReview]], where no current container concept exists.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== examples ==&lt;br /&gt;
As always it helps to start with examples of markup from actual websites that are already publishing container semantics. If this section gets too large, perhaps we can move it to [[container-examples]].&lt;br /&gt;
&lt;br /&gt;
=== container of reviews ===&lt;br /&gt;
The following website(s) contain a list of reviews which could/would benefit from a way of marking up not just the reviews as hReviews, but also the set of them as reviewing the same item.&lt;br /&gt;
==== SustainLane ====&lt;br /&gt;
http://www.sustainlane.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.sustainlane.com/reviews/aziza/TVLWN4ZKQLKTOIKFLWKBWFQ17DN8&lt;br /&gt;
&lt;br /&gt;
==== Yelp ====&lt;br /&gt;
http://yelp.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.yelp.com/biz/coffee-to-the-people-san-francisco&lt;br /&gt;
&lt;br /&gt;
==Use cases==&lt;br /&gt;
Here are some example use cases for sharing properties from a container into multiple child microformats:&lt;br /&gt;
&lt;br /&gt;
===Multiple reviews of the same item===&lt;br /&gt;
As demonstrated by the above real world examples, many sites publish a page for a single item, listing multiple reviews of that item (e.g. Amazon, Kelkoo, Yelp, Yahoo! Location etc.). The item appears once at the top of the page. The reviews follow. [[hReview]]'s current requirement is that the &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; be referenced from every review using the include-pattern. This requires duplicating some amount of content (most logically, the name of the reviewed item). This has raised objections by implementers, and usually imposes a CSS-dependency to hide the repeated content.&lt;br /&gt;
&lt;br /&gt;
===Reviews and review aggregate of the same item===&lt;br /&gt;
Same as above, a single page includes a few reviews and a single reviews aggregate for a single business. In some implementations (yelp) the aggregate result number is contained inside the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt;. Reviews that use the include pattern to include the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; of the business, are also including a second &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; microformat, resulting in two ratings for the same &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;. Putting the reviews and review aggregates as siblings inside the same container, can solve this problem.&lt;br /&gt;
&lt;br /&gt;
===Shared hCalendar Properties===&lt;br /&gt;
Yahoo! TV Listings marks up television programme listings using hCalendar. The &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; field of the event is the channel on which the show is broadcast: e.g. &amp;lt;code&amp;gt;&amp;amp;lt;span class='location'&amp;gt;BBC 1&amp;amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* ‘BBC 1’ is the heading for that channels listing page. The information is published ''once'' in the page.&lt;br /&gt;
* Each scheduled programme on the page is a &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
* Using current hCalendar semantics, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; must be included in every &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the ‘BBC 1’ content at the top of the page, not part of the programme content, the content either has to be repeated and hidden in the presentation layer, or current microformats constructs such as the [[include-pattern]] need to be used to invisibly reference the original mention of ‘BBC 1’.&lt;br /&gt;
&lt;br /&gt;
Repeating content is unacceptable, and the include-pattern is a messy, hacky mark-up pattern. Embracing the concept of the container would match the publishing pattern of the site, without repeating content or including invisible pointers.&lt;br /&gt;
&lt;br /&gt;
'''ideally this markup proposal would be moved to the &amp;quot;markup proposals&amp;quot; section below, separate from the &amp;quot;Use Cases&amp;quot; section, so that multiple varying proposals could be grouped together to compare, rather than intermingling them with the list of use cases.'''&lt;br /&gt;
&lt;br /&gt;
.e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class='vcalendar'&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class='location'&amp;gt;BBC 2&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Gardener's World&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T20:30:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 8:30pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Have I Got News For You&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T21:00:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 9:00pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; is promoted to being a property of the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt;, and is the default location for all the contained events.&lt;br /&gt;
&lt;br /&gt;
This could also apply to the &amp;lt;code&amp;gt;organizer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;attendees&amp;lt;/code&amp;gt;, and others. With further explanation and [[value-class-pattern|date-time separation]], you could event declare the day of the week the the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; and the time-of-day in the &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;. The basic principal is illustrated, though.&lt;br /&gt;
&lt;br /&gt;
Uses for this pattern:&lt;br /&gt;
* Broadcast listings for a single channel/station&lt;br /&gt;
* Concert listings at a single venue&lt;br /&gt;
* Concert listings for a single act (e.g. ‘Doves in Concert’ is the event &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; for multiple events at different &amp;lt;code&amp;gt;locations&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
This of course, extends the use of an existing container.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Shared Aspects of Containers==&lt;br /&gt;
If containers become a more strongly adopted concept in microformats, they should behave consistently across formats (hence documenting these two examples here, rather than just as separate issues for both hReview and hCalendar).&lt;br /&gt;
&lt;br /&gt;
Things that should be consistent and predictable:&lt;br /&gt;
&lt;br /&gt;
* Inheriting an property into a microformat item within the container&lt;br /&gt;
* Contained items ''overriding'' one or more inherited property&lt;br /&gt;
* Alternatively, siblings cannot override properties of other siblings. Example: hcard of reviewer inside hreview cannot override any property of the item hcard (a sibling of the hreview). When a sibling specifies a property of another sibling, it is ignored (Example: hreview contains availability, brand is ignored).&lt;br /&gt;
&lt;br /&gt;
== markup proposals ==&lt;br /&gt;
=== hreview-set ===&lt;br /&gt;
One solution to the problem of multiple reviews of the same item could be to wrap each &amp;lt;code&amp;gt;hReview&amp;lt;/code&amp;gt; in a container (hypothetically, &amp;lt;code&amp;gt;hreview-set&amp;lt;/code&amp;gt;. The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; is a child of the set, and is inherited by each &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; contained within.&lt;br /&gt;
&lt;br /&gt;
=== hCard as a container ===&lt;br /&gt;
&amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; block can contain associated information like reviews and aggregates. &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;s inside an &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; do not need to specify item.&lt;br /&gt;
This also extends to other microformats that can may contain reviews, such as hproduct.&lt;br /&gt;
Another option is that a vcard that contains other microformat must also specify additional tag, such as &amp;lt;code&amp;gt;hcontainer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; or similar.&lt;br /&gt;
====Problems====&lt;br /&gt;
* &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; already contains child hCard. Since it can inherit aspects of hcard from its parent, there will be duplicate values. This makes the job of the parser more complex, and requires additional rules, such as &amp;quot;an hreview inside an hcard ignores all hCard properties that are not contained in it&amp;quot;, etc.&lt;br /&gt;
* Include pattern from hreview to the container hCard can cause circular references, requiring more rules in the microformat specification and more rules for the parsers to follow.&lt;br /&gt;
* Generally it seems to me (Elli) that this pattern will require many parsing rules. Things are not &amp;quot;atomic&amp;quot;. It also forces a rigid structure on the xhtml, which may defeat the purpose of containers.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;vcard&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hcontainer===&lt;br /&gt;
A container microformat. Inside a container, a microformat that requires another microformat as a child (such as hreview requiring an item), can resolve this association by sibling relationship (as opposed to parent child relationship).&lt;br /&gt;
When a container includes &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;hreview-aggregate&amp;lt;/code&amp;gt;, it also requires a child &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt;. This is similar to &amp;lt;code&amp;gt;hreview-set&amp;lt;/code&amp;gt; proposal, with specific handling of aggregates.&lt;br /&gt;
&lt;br /&gt;
In the example below, the item is hcard, similar examples can be written for products and events.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;!-- simple, all elements in the container are siblings --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcontainer&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;item vcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- More complex case, nested elements in the container have additional parent child relationship --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcontainer&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h1 class=&amp;quot;item vcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== item as a container ===&lt;br /&gt;
The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; microformat is currently used inside &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;s. Use this existing micformat as a container as well. This makes the specification slightly more complicated, since &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; will be allowed as a parent of &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; as well as a child. This is basically the same proposal as above, but using the name &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; for the container, instead of a dedicated name.&lt;br /&gt;
====Problems====&lt;br /&gt;
* This defines two microformats that can be parent child of each other in both directions (&amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt;).&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;vcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hreview rating and hreview-aggregate rating use different names ===&lt;br /&gt;
Since the microformat &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; is used for both, an &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; that includes an &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; which contains aggregates, effectively imports a second rating. This can be solved by having different names for hreview rating and hreview-aggregate rating. This is not really a container proposal, but it addresses issues of the hreview-aggregate which is currently a container for item.&lt;br /&gt;
====Problems====&lt;br /&gt;
* This may not be necessary for pages that can use a container to add microformats with minimal impact to the xhtml structure. Pages that cannot use container structure and use includes may still need a solution.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;vcard item&amp;quot; id=&amp;quot;review_item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;!-- average rating --&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;average-rating&amp;quot;&amp;gt;5&amp;lt;/span&amp;gt; stars&lt;br /&gt;
   based on &amp;lt;span class=&amp;quot;review-count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;span class=&amp;quot;type microformat_detail&amp;quot;&amp;gt;business&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;!-- single rating --&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;rating&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt; stars&lt;br /&gt;
   &amp;lt;!-- include pattern --&amp;gt;&lt;br /&gt;
   &amp;lt;a class=&amp;quot;item microformat_detail&amp;quot; href=&amp;quot;#review_item&amp;quot;&amp;gt;Aziza&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[hReview]]&lt;br /&gt;
* [[hCalendar]]&lt;br /&gt;
* [[hListing]]&lt;/div&gt;</summary>
		<author><name>Elli</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39082</id>
		<title>container-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39082"/>
		<updated>2009-06-11T15:11:00Z</updated>

		<summary type="html">&lt;p&gt;Elli: Added suggestion that siblings cannot override other siblings&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;Containers&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page exists to brainstorm around the concept of ‘containers’ in microformats.&lt;br /&gt;
&lt;br /&gt;
==What's a Container?==&lt;br /&gt;
&lt;br /&gt;
A ‘container’ is a root element that contains multiple microformat items within it. It groups those items together, but could also be used to provide additional or shared semantics between those items.&lt;br /&gt;
&lt;br /&gt;
Some microformats already define containers: &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; [[hCalendar]] is a container for events, the &amp;lt;code&amp;gt;hfeed&amp;lt;/code&amp;gt; container in [[hAtom]] contains entries, [[hAudio]] has a concept whereby &amp;lt;code&amp;gt;haudio&amp;lt;/code&amp;gt; concepts may be nested, and an [[hCard]] &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; may be a container for &amp;lt;code&amp;gt;agent vcard&amp;lt;/code&amp;gt;s.&lt;br /&gt;
&lt;br /&gt;
==Why is this being explored?==&lt;br /&gt;
There are a number of use cases for making better use of these container semantics, both in microformats like hCalendar that already have containers, and [[hReview]], where no current container concept exists.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== examples ==&lt;br /&gt;
As always it helps to start with examples of markup from actual websites that are already publishing container semantics. If this section gets too large, perhaps we can move it to [[container-examples]].&lt;br /&gt;
&lt;br /&gt;
=== container of reviews ===&lt;br /&gt;
The following website(s) contain a list of reviews which could/would benefit from a way of marking up not just the reviews as hReviews, but also the set of them as reviewing the same item.&lt;br /&gt;
==== SustainLane ====&lt;br /&gt;
http://www.sustainlane.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.sustainlane.com/reviews/aziza/TVLWN4ZKQLKTOIKFLWKBWFQ17DN8&lt;br /&gt;
&lt;br /&gt;
==== Yelp ====&lt;br /&gt;
http://yelp.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.yelp.com/biz/coffee-to-the-people-san-francisco&lt;br /&gt;
&lt;br /&gt;
==Use cases==&lt;br /&gt;
Here are some example use cases for sharing properties from a container into multiple child microformats:&lt;br /&gt;
&lt;br /&gt;
===Multiple reviews of the same item===&lt;br /&gt;
As demonstrated by the above real world examples, many sites publish a page for a single item, listing multiple reviews of that item (e.g. Amazon, Kelkoo, Yelp, Yahoo! Location etc.). The item appears once at the top of the page. The reviews follow. [[hReview]]'s current requirement is that the &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; be referenced from every review using the include-pattern. This requires duplicating some amount of content (most logically, the name of the reviewed item). This has raised objections by implementers, and usually imposes a CSS-dependency to hide the repeated content.&lt;br /&gt;
&lt;br /&gt;
===Reviews and review aggregate of the same item===&lt;br /&gt;
Same as above, a single page includes a few reviews and a single reviews aggregate for a single business. In some implementations (yelp) the aggregate result number is contained inside the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt;. Reviews that use the include pattern to include the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; of the business, are also including a second &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; microformat, resulting in two ratings for the same &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;. Putting the reviews and review aggregates as siblings inside the same container, can solve this problem.&lt;br /&gt;
&lt;br /&gt;
===Shared hCalendar Properties===&lt;br /&gt;
Yahoo! TV Listings marks up television programme listings using hCalendar. The &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; field of the event is the channel on which the show is broadcast: e.g. &amp;lt;code&amp;gt;&amp;amp;lt;span class='location'&amp;gt;BBC 1&amp;amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* ‘BBC 1’ is the heading for that channels listing page. The information is published ''once'' in the page.&lt;br /&gt;
* Each scheduled programme on the page is a &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
* Using current hCalendar semantics, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; must be included in every &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the ‘BBC 1’ content at the top of the page, not part of the programme content, the content either has to be repeated and hidden in the presentation layer, or current microformats constructs such as the [[include-pattern]] need to be used to invisibly reference the original mention of ‘BBC 1’.&lt;br /&gt;
&lt;br /&gt;
Repeating content is unacceptable, and the include-pattern is a messy, hacky mark-up pattern. Embracing the concept of the container would match the publishing pattern of the site, without repeating content or including invisible pointers.&lt;br /&gt;
&lt;br /&gt;
'''ideally this markup proposal would be moved to the &amp;quot;markup proposals&amp;quot; section below, separate from the &amp;quot;Use Cases&amp;quot; section, so that multiple varying proposals could be grouped together to compare, rather than intermingling them with the list of use cases.'''&lt;br /&gt;
&lt;br /&gt;
.e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class='vcalendar'&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class='location'&amp;gt;BBC 2&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Gardener's World&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T20:30:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 8:30pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Have I Got News For You&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T21:00:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 9:00pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; is promoted to being a property of the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt;, and is the default location for all the contained events.&lt;br /&gt;
&lt;br /&gt;
This could also apply to the &amp;lt;code&amp;gt;organizer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;attendees&amp;lt;/code&amp;gt;, and others. With further explanation and [[value-class-pattern|date-time separation]], you could event declare the day of the week the the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; and the time-of-day in the &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;. The basic principal is illustrated, though.&lt;br /&gt;
&lt;br /&gt;
Uses for this pattern:&lt;br /&gt;
* Broadcast listings for a single channel/station&lt;br /&gt;
* Concert listings at a single venue&lt;br /&gt;
* Concert listings for a single act (e.g. ‘Doves in Concert’ is the event &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; for multiple events at different &amp;lt;code&amp;gt;locations&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
This of course, extends the use of an existing container.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Shared Aspects of Containers==&lt;br /&gt;
If containers become a more strongly adopted concept in microformats, they should behave consistently across formats (hence documenting these two examples here, rather than just as separate issues for both hReview and hCalendar).&lt;br /&gt;
&lt;br /&gt;
Things that should be consistent and predictable:&lt;br /&gt;
&lt;br /&gt;
* Inheriting an property into a microformat item within the container&lt;br /&gt;
* Contained items ''overriding'' one or more inherited property&lt;br /&gt;
* Alternatively, siblings cannot override properties of other siblings. Example: hcard of reviewer inside hreview cannot override any property of the item hcard (a sibling of the hreview). When a sibling specifies a property of another sibling, it is ignored (Example: hreview contains brand, brand is ignored).&lt;br /&gt;
&lt;br /&gt;
== markup proposals ==&lt;br /&gt;
=== hreview-set ===&lt;br /&gt;
One solution to the problem of multiple reviews of the same item could be to wrap each &amp;lt;code&amp;gt;hReview&amp;lt;/code&amp;gt; in a container (hypothetically, &amp;lt;code&amp;gt;hreview-set&amp;lt;/code&amp;gt;. The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; is a child of the set, and is inherited by each &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; contained within.&lt;br /&gt;
&lt;br /&gt;
=== hCard as a container ===&lt;br /&gt;
&amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; block can contain associated information like reviews and aggregates. &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;s inside an &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; do not need to specify item.&lt;br /&gt;
This also extends to other microformats that can may contain reviews, such as hproduct.&lt;br /&gt;
Another option is that a vcard that contains other microformat must also specify additional tag, such as &amp;lt;code&amp;gt;hcontainer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; or similar.&lt;br /&gt;
====Problems====&lt;br /&gt;
* &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; already contains child hCard. Since it can inherit aspects of hcard from its parent, there will be duplicate values. This makes the job of the parser more complex, and requires additional rules, such as &amp;quot;an hreview inside an hcard ignores all hCard properties that are not contained in it&amp;quot;, etc.&lt;br /&gt;
* Include pattern from hreview to the container hCard can cause circular references, requiring more rules in the microformat specification and more rules for the parsers to follow.&lt;br /&gt;
* Generally it seems to me (Elli) that this pattern will require many parsing rules. Things are not &amp;quot;atomic&amp;quot;. It also forces a rigid structure on the xhtml, which may defeat the purpose of containers.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;vcard&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hcontainer===&lt;br /&gt;
A container microformat. Inside a container, a microformat that requires another microformat as a child (such as hreview requiring an item), can resolve this association by sibling relationship (as opposed to parent child relationship).&lt;br /&gt;
When a container includes &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;hreview-aggregate&amp;lt;/code&amp;gt;, it also requires a child &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt;. This is similar to &amp;lt;code&amp;gt;hreview-set&amp;lt;/code&amp;gt; proposal, with specific handling of aggregates.&lt;br /&gt;
&lt;br /&gt;
In the example below, the item is hcard, similar examples can be written for products and events.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;!-- simple, all elements in the container are siblings --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcontainer&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;item vcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- More complex case, nested elements in the container have additional parent child relationship --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcontainer&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h1 class=&amp;quot;item vcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== item as a container ===&lt;br /&gt;
The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; microformat is currently used inside &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;s. Use this existing micformat as a container as well. This makes the specification slightly more complicated, since &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; will be allowed as a parent of &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; as well as a child. This is basically the same proposal as above, but using the name &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; for the container, instead of a dedicated name.&lt;br /&gt;
====Problems====&lt;br /&gt;
* This defines two microformats that can be parent child of each other in both directions (&amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt;).&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;vcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hreview rating and hreview-aggregate rating use different names ===&lt;br /&gt;
Since the microformat &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; is used for both, an &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; that includes an &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; which contains aggregates, effectively imports a second rating. This can be solved by having different names for hreview rating and hreview-aggregate rating. This is not really a container proposal, but it addresses issues of the hreview-aggregate which is currently a container for item.&lt;br /&gt;
====Problems====&lt;br /&gt;
* This may not be necessary for pages that can use a container to add microformats with minimal impact to the xhtml structure. Pages that cannot use container structure and use includes may still need a solution.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;vcard item&amp;quot; id=&amp;quot;review_item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;!-- average rating --&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;average-rating&amp;quot;&amp;gt;5&amp;lt;/span&amp;gt; stars&lt;br /&gt;
   based on &amp;lt;span class=&amp;quot;review-count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;span class=&amp;quot;type microformat_detail&amp;quot;&amp;gt;business&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;!-- single rating --&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;rating&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt; stars&lt;br /&gt;
   &amp;lt;!-- include pattern --&amp;gt;&lt;br /&gt;
   &amp;lt;a class=&amp;quot;item microformat_detail&amp;quot; href=&amp;quot;#review_item&amp;quot;&amp;gt;Aziza&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[hReview]]&lt;br /&gt;
* [[hCalendar]]&lt;br /&gt;
* [[hListing]]&lt;/div&gt;</summary>
		<author><name>Elli</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39081</id>
		<title>container-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39081"/>
		<updated>2009-06-11T15:03:15Z</updated>

		<summary type="html">&lt;p&gt;Elli: /* hreview rating and hreview-aggregate rating use different names */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;Containers&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page exists to brainstorm around the concept of ‘containers’ in microformats.&lt;br /&gt;
&lt;br /&gt;
==What's a Container?==&lt;br /&gt;
&lt;br /&gt;
A ‘container’ is a root element that contains multiple microformat items within it. It groups those items together, but could also be used to provide additional or shared semantics between those items.&lt;br /&gt;
&lt;br /&gt;
Some microformats already define containers: &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; [[hCalendar]] is a container for events, the &amp;lt;code&amp;gt;hfeed&amp;lt;/code&amp;gt; container in [[hAtom]] contains entries, [[hAudio]] has a concept whereby &amp;lt;code&amp;gt;haudio&amp;lt;/code&amp;gt; concepts may be nested, and an [[hCard]] &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; may be a container for &amp;lt;code&amp;gt;agent vcard&amp;lt;/code&amp;gt;s.&lt;br /&gt;
&lt;br /&gt;
==Why is this being explored?==&lt;br /&gt;
There are a number of use cases for making better use of these container semantics, both in microformats like hCalendar that already have containers, and [[hReview]], where no current container concept exists.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== examples ==&lt;br /&gt;
As always it helps to start with examples of markup from actual websites that are already publishing container semantics. If this section gets too large, perhaps we can move it to [[container-examples]].&lt;br /&gt;
&lt;br /&gt;
=== container of reviews ===&lt;br /&gt;
The following website(s) contain a list of reviews which could/would benefit from a way of marking up not just the reviews as hReviews, but also the set of them as reviewing the same item.&lt;br /&gt;
==== SustainLane ====&lt;br /&gt;
http://www.sustainlane.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.sustainlane.com/reviews/aziza/TVLWN4ZKQLKTOIKFLWKBWFQ17DN8&lt;br /&gt;
&lt;br /&gt;
==== Yelp ====&lt;br /&gt;
http://yelp.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.yelp.com/biz/coffee-to-the-people-san-francisco&lt;br /&gt;
&lt;br /&gt;
==Use cases==&lt;br /&gt;
Here are some example use cases for sharing properties from a container into multiple child microformats:&lt;br /&gt;
&lt;br /&gt;
===Multiple reviews of the same item===&lt;br /&gt;
As demonstrated by the above real world examples, many sites publish a page for a single item, listing multiple reviews of that item (e.g. Amazon, Kelkoo, Yelp, Yahoo! Location etc.). The item appears once at the top of the page. The reviews follow. [[hReview]]'s current requirement is that the &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; be referenced from every review using the include-pattern. This requires duplicating some amount of content (most logically, the name of the reviewed item). This has raised objections by implementers, and usually imposes a CSS-dependency to hide the repeated content.&lt;br /&gt;
&lt;br /&gt;
===Reviews and review aggregate of the same item===&lt;br /&gt;
Same as above, a single page includes a few reviews and a single reviews aggregate for a single business. In some implementations (yelp) the aggregate result number is contained inside the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt;. Reviews that use the include pattern to include the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; of the business, are also including a second &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; microformat, resulting in two ratings for the same &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;. Putting the reviews and review aggregates as siblings inside the same container, can solve this problem.&lt;br /&gt;
&lt;br /&gt;
===Shared hCalendar Properties===&lt;br /&gt;
Yahoo! TV Listings marks up television programme listings using hCalendar. The &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; field of the event is the channel on which the show is broadcast: e.g. &amp;lt;code&amp;gt;&amp;amp;lt;span class='location'&amp;gt;BBC 1&amp;amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* ‘BBC 1’ is the heading for that channels listing page. The information is published ''once'' in the page.&lt;br /&gt;
* Each scheduled programme on the page is a &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
* Using current hCalendar semantics, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; must be included in every &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the ‘BBC 1’ content at the top of the page, not part of the programme content, the content either has to be repeated and hidden in the presentation layer, or current microformats constructs such as the [[include-pattern]] need to be used to invisibly reference the original mention of ‘BBC 1’.&lt;br /&gt;
&lt;br /&gt;
Repeating content is unacceptable, and the include-pattern is a messy, hacky mark-up pattern. Embracing the concept of the container would match the publishing pattern of the site, without repeating content or including invisible pointers.&lt;br /&gt;
&lt;br /&gt;
'''ideally this markup proposal would be moved to the &amp;quot;markup proposals&amp;quot; section below, separate from the &amp;quot;Use Cases&amp;quot; section, so that multiple varying proposals could be grouped together to compare, rather than intermingling them with the list of use cases.'''&lt;br /&gt;
&lt;br /&gt;
.e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class='vcalendar'&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class='location'&amp;gt;BBC 2&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Gardener's World&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T20:30:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 8:30pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Have I Got News For You&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T21:00:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 9:00pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; is promoted to being a property of the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt;, and is the default location for all the contained events.&lt;br /&gt;
&lt;br /&gt;
This could also apply to the &amp;lt;code&amp;gt;organizer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;attendees&amp;lt;/code&amp;gt;, and others. With further explanation and [[value-class-pattern|date-time separation]], you could event declare the day of the week the the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; and the time-of-day in the &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;. The basic principal is illustrated, though.&lt;br /&gt;
&lt;br /&gt;
Uses for this pattern:&lt;br /&gt;
* Broadcast listings for a single channel/station&lt;br /&gt;
* Concert listings at a single venue&lt;br /&gt;
* Concert listings for a single act (e.g. ‘Doves in Concert’ is the event &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; for multiple events at different &amp;lt;code&amp;gt;locations&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
This of course, extends the use of an existing container.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Shared Aspects of Containers==&lt;br /&gt;
If containers become a more strongly adopted concept in microformats, they should behave consistently across formats (hence documenting these two examples here, rather than just as separate issues for both hReview and hCalendar).&lt;br /&gt;
&lt;br /&gt;
Things that should be consistent and predictable:&lt;br /&gt;
&lt;br /&gt;
* Inheriting an property into a microformat item within the container&lt;br /&gt;
* Contained items ''overriding'' one or more inherited property&lt;br /&gt;
&lt;br /&gt;
== markup proposals ==&lt;br /&gt;
=== hreview-set ===&lt;br /&gt;
One solution to the problem of multiple reviews of the same item could be to wrap each &amp;lt;code&amp;gt;hReview&amp;lt;/code&amp;gt; in a container (hypothetically, &amp;lt;code&amp;gt;hreview-set&amp;lt;/code&amp;gt;. The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; is a child of the set, and is inherited by each &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; contained within.&lt;br /&gt;
&lt;br /&gt;
=== hCard as a container ===&lt;br /&gt;
&amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; block can contain associated information like reviews and aggregates. &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;s inside an &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; do not need to specify item.&lt;br /&gt;
This also extends to other microformats that can may contain reviews, such as hproduct.&lt;br /&gt;
Another option is that a vcard that contains other microformat must also specify additional tag, such as &amp;lt;code&amp;gt;hcontainer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; or similar.&lt;br /&gt;
====Problems====&lt;br /&gt;
* &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; already contains child hCard. Since it can inherit aspects of hcard from its parent, there will be duplicate values. This makes the job of the parser more complex, and requires additional rules, such as &amp;quot;an hreview inside an hcard ignores all hCard properties that are not contained in it&amp;quot;, etc.&lt;br /&gt;
* Include pattern from hreview to the container hCard can cause circular references, requiring more rules in the microformat specification and more rules for the parsers to follow.&lt;br /&gt;
* Generally it seems to me (Elli) that this pattern will require many parsing rules. Things are not &amp;quot;atomic&amp;quot;. It also forces a rigid structure on the xhtml, which may defeat the purpose of containers.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;vcard&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hcontainer===&lt;br /&gt;
A container microformat. Inside a container, a microformat that requires another microformat as a child (such as hreview requiring an item), can resolve this association by sibling relationship (as opposed to parent child relationship).&lt;br /&gt;
When a container includes &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;hreview-aggregate&amp;lt;/code&amp;gt;, it also requires a child &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt;. This is similar to &amp;lt;code&amp;gt;hreview-set&amp;lt;/code&amp;gt; proposal, with specific handling of aggregates.&lt;br /&gt;
&lt;br /&gt;
In the example below, the item is hcard, similar examples can be written for products and events.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;!-- simple, all elements in the container are siblings --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcontainer&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;item vcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- More complex case, nested elements in the container have additional parent child relationship --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcontainer&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h1 class=&amp;quot;item vcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== item as a container ===&lt;br /&gt;
The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; microformat is currently used inside &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;s. Use this existing micformat as a container as well. This makes the specification slightly more complicated, since &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; will be allowed as a parent of &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; as well as a child. This is basically the same proposal as above, but using the name &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; for the container, instead of a dedicated name.&lt;br /&gt;
====Problems====&lt;br /&gt;
* This defines two microformats that can be parent child of each other in both directions (&amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt;).&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;vcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hreview rating and hreview-aggregate rating use different names ===&lt;br /&gt;
Since the microformat &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; is used for both, an &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; that includes an &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; which contains aggregates, effectively imports a second rating. This can be solved by having different names for hreview rating and hreview-aggregate rating. This is not really a container proposal, but it addresses issues of the hreview-aggregate which is currently a container for item.&lt;br /&gt;
====Problems====&lt;br /&gt;
* This may not be necessary for pages that can use a container to add microformats with minimal impact to the xhtml structure. Pages that cannot use container structure and use includes may still need a solution.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;vcard item&amp;quot; id=&amp;quot;review_item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;!-- average rating --&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;average-rating&amp;quot;&amp;gt;5&amp;lt;/span&amp;gt; stars&lt;br /&gt;
   based on &amp;lt;span class=&amp;quot;review-count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;span class=&amp;quot;type microformat_detail&amp;quot;&amp;gt;business&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;!-- single rating --&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;rating&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt; stars&lt;br /&gt;
   &amp;lt;!-- include pattern --&amp;gt;&lt;br /&gt;
   &amp;lt;a class=&amp;quot;item microformat_detail&amp;quot; href=&amp;quot;#review_item&amp;quot;&amp;gt;Aziza&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[hReview]]&lt;br /&gt;
* [[hCalendar]]&lt;br /&gt;
* [[hListing]]&lt;/div&gt;</summary>
		<author><name>Elli</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39080</id>
		<title>container-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39080"/>
		<updated>2009-06-11T15:00:00Z</updated>

		<summary type="html">&lt;p&gt;Elli: /* hcontainer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;Containers&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page exists to brainstorm around the concept of ‘containers’ in microformats.&lt;br /&gt;
&lt;br /&gt;
==What's a Container?==&lt;br /&gt;
&lt;br /&gt;
A ‘container’ is a root element that contains multiple microformat items within it. It groups those items together, but could also be used to provide additional or shared semantics between those items.&lt;br /&gt;
&lt;br /&gt;
Some microformats already define containers: &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; [[hCalendar]] is a container for events, the &amp;lt;code&amp;gt;hfeed&amp;lt;/code&amp;gt; container in [[hAtom]] contains entries, [[hAudio]] has a concept whereby &amp;lt;code&amp;gt;haudio&amp;lt;/code&amp;gt; concepts may be nested, and an [[hCard]] &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; may be a container for &amp;lt;code&amp;gt;agent vcard&amp;lt;/code&amp;gt;s.&lt;br /&gt;
&lt;br /&gt;
==Why is this being explored?==&lt;br /&gt;
There are a number of use cases for making better use of these container semantics, both in microformats like hCalendar that already have containers, and [[hReview]], where no current container concept exists.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== examples ==&lt;br /&gt;
As always it helps to start with examples of markup from actual websites that are already publishing container semantics. If this section gets too large, perhaps we can move it to [[container-examples]].&lt;br /&gt;
&lt;br /&gt;
=== container of reviews ===&lt;br /&gt;
The following website(s) contain a list of reviews which could/would benefit from a way of marking up not just the reviews as hReviews, but also the set of them as reviewing the same item.&lt;br /&gt;
==== SustainLane ====&lt;br /&gt;
http://www.sustainlane.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.sustainlane.com/reviews/aziza/TVLWN4ZKQLKTOIKFLWKBWFQ17DN8&lt;br /&gt;
&lt;br /&gt;
==== Yelp ====&lt;br /&gt;
http://yelp.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.yelp.com/biz/coffee-to-the-people-san-francisco&lt;br /&gt;
&lt;br /&gt;
==Use cases==&lt;br /&gt;
Here are some example use cases for sharing properties from a container into multiple child microformats:&lt;br /&gt;
&lt;br /&gt;
===Multiple reviews of the same item===&lt;br /&gt;
As demonstrated by the above real world examples, many sites publish a page for a single item, listing multiple reviews of that item (e.g. Amazon, Kelkoo, Yelp, Yahoo! Location etc.). The item appears once at the top of the page. The reviews follow. [[hReview]]'s current requirement is that the &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; be referenced from every review using the include-pattern. This requires duplicating some amount of content (most logically, the name of the reviewed item). This has raised objections by implementers, and usually imposes a CSS-dependency to hide the repeated content.&lt;br /&gt;
&lt;br /&gt;
===Reviews and review aggregate of the same item===&lt;br /&gt;
Same as above, a single page includes a few reviews and a single reviews aggregate for a single business. In some implementations (yelp) the aggregate result number is contained inside the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt;. Reviews that use the include pattern to include the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; of the business, are also including a second &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; microformat, resulting in two ratings for the same &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;. Putting the reviews and review aggregates as siblings inside the same container, can solve this problem.&lt;br /&gt;
&lt;br /&gt;
===Shared hCalendar Properties===&lt;br /&gt;
Yahoo! TV Listings marks up television programme listings using hCalendar. The &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; field of the event is the channel on which the show is broadcast: e.g. &amp;lt;code&amp;gt;&amp;amp;lt;span class='location'&amp;gt;BBC 1&amp;amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* ‘BBC 1’ is the heading for that channels listing page. The information is published ''once'' in the page.&lt;br /&gt;
* Each scheduled programme on the page is a &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
* Using current hCalendar semantics, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; must be included in every &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the ‘BBC 1’ content at the top of the page, not part of the programme content, the content either has to be repeated and hidden in the presentation layer, or current microformats constructs such as the [[include-pattern]] need to be used to invisibly reference the original mention of ‘BBC 1’.&lt;br /&gt;
&lt;br /&gt;
Repeating content is unacceptable, and the include-pattern is a messy, hacky mark-up pattern. Embracing the concept of the container would match the publishing pattern of the site, without repeating content or including invisible pointers.&lt;br /&gt;
&lt;br /&gt;
'''ideally this markup proposal would be moved to the &amp;quot;markup proposals&amp;quot; section below, separate from the &amp;quot;Use Cases&amp;quot; section, so that multiple varying proposals could be grouped together to compare, rather than intermingling them with the list of use cases.'''&lt;br /&gt;
&lt;br /&gt;
.e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class='vcalendar'&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class='location'&amp;gt;BBC 2&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Gardener's World&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T20:30:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 8:30pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Have I Got News For You&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T21:00:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 9:00pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; is promoted to being a property of the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt;, and is the default location for all the contained events.&lt;br /&gt;
&lt;br /&gt;
This could also apply to the &amp;lt;code&amp;gt;organizer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;attendees&amp;lt;/code&amp;gt;, and others. With further explanation and [[value-class-pattern|date-time separation]], you could event declare the day of the week the the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; and the time-of-day in the &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;. The basic principal is illustrated, though.&lt;br /&gt;
&lt;br /&gt;
Uses for this pattern:&lt;br /&gt;
* Broadcast listings for a single channel/station&lt;br /&gt;
* Concert listings at a single venue&lt;br /&gt;
* Concert listings for a single act (e.g. ‘Doves in Concert’ is the event &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; for multiple events at different &amp;lt;code&amp;gt;locations&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
This of course, extends the use of an existing container.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Shared Aspects of Containers==&lt;br /&gt;
If containers become a more strongly adopted concept in microformats, they should behave consistently across formats (hence documenting these two examples here, rather than just as separate issues for both hReview and hCalendar).&lt;br /&gt;
&lt;br /&gt;
Things that should be consistent and predictable:&lt;br /&gt;
&lt;br /&gt;
* Inheriting an property into a microformat item within the container&lt;br /&gt;
* Contained items ''overriding'' one or more inherited property&lt;br /&gt;
&lt;br /&gt;
== markup proposals ==&lt;br /&gt;
=== hreview-set ===&lt;br /&gt;
One solution to the problem of multiple reviews of the same item could be to wrap each &amp;lt;code&amp;gt;hReview&amp;lt;/code&amp;gt; in a container (hypothetically, &amp;lt;code&amp;gt;hreview-set&amp;lt;/code&amp;gt;. The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; is a child of the set, and is inherited by each &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; contained within.&lt;br /&gt;
&lt;br /&gt;
=== hCard as a container ===&lt;br /&gt;
&amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; block can contain associated information like reviews and aggregates. &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;s inside an &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; do not need to specify item.&lt;br /&gt;
This also extends to other microformats that can may contain reviews, such as hproduct.&lt;br /&gt;
Another option is that a vcard that contains other microformat must also specify additional tag, such as &amp;lt;code&amp;gt;hcontainer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; or similar.&lt;br /&gt;
====Problems====&lt;br /&gt;
* &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; already contains child hCard. Since it can inherit aspects of hcard from its parent, there will be duplicate values. This makes the job of the parser more complex, and requires additional rules, such as &amp;quot;an hreview inside an hcard ignores all hCard properties that are not contained in it&amp;quot;, etc.&lt;br /&gt;
* Include pattern from hreview to the container hCard can cause circular references, requiring more rules in the microformat specification and more rules for the parsers to follow.&lt;br /&gt;
* Generally it seems to me (Elli) that this pattern will require many parsing rules. Things are not &amp;quot;atomic&amp;quot;. It also forces a rigid structure on the xhtml, which may defeat the purpose of containers.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;vcard&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hcontainer===&lt;br /&gt;
A container microformat. Inside a container, a microformat that requires another microformat as a child (such as hreview requiring an item), can resolve this association by sibling relationship (as opposed to parent child relationship).&lt;br /&gt;
When a container includes &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;hreview-aggregate&amp;lt;/code&amp;gt;, it also requires a child &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt;. This is similar to &amp;lt;code&amp;gt;hreview-set&amp;lt;/code&amp;gt; proposal, with specific handling of aggregates.&lt;br /&gt;
&lt;br /&gt;
In the example below, the item is hcard, similar examples can be written for products and events.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;!-- simple, all elements in the container are siblings --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcontainer&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;item vcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- More complex case, nested elements in the container have additional parent child relationship --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcontainer&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h1 class=&amp;quot;item vcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== item as a container ===&lt;br /&gt;
The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; microformat is currently used inside &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;s. Use this existing micformat as a container as well. This makes the specification slightly more complicated, since &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; will be allowed as a parent of &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; as well as a child. This is basically the same proposal as above, but using the name &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; for the container, instead of a dedicated name.&lt;br /&gt;
====Problems====&lt;br /&gt;
* This defines two microformats that can be parent child of each other in both directions (&amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt;).&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;vcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hreview rating and hreview-aggregate rating use different names ===&lt;br /&gt;
Since the microformat &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; is used for both, an &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; that includes an &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; which contains aggregates, effectively imports a second rating. This can be solved by having different names for hreview rating and hreview-aggregate rating. This is not really a container proposal, but it addresses issues of the hreview-aggregate which is currently a container for item.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;vcard item&amp;quot; id=&amp;quot;review_item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;!-- average rating --&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;average-rating&amp;quot;&amp;gt;5&amp;lt;/span&amp;gt; stars&lt;br /&gt;
   based on &amp;lt;span class=&amp;quot;review-count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;span class=&amp;quot;type microformat_detail&amp;quot;&amp;gt;business&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;!-- single rating --&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;rating&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt; stars&lt;br /&gt;
   &amp;lt;!-- include pattern --&amp;gt;&lt;br /&gt;
   &amp;lt;a class=&amp;quot;item microformat_detail&amp;quot; href=&amp;quot;#review_item&amp;quot;&amp;gt;Aziza&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[hReview]]&lt;br /&gt;
* [[hCalendar]]&lt;br /&gt;
* [[hListing]]&lt;/div&gt;</summary>
		<author><name>Elli</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39079</id>
		<title>container-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39079"/>
		<updated>2009-06-11T14:55:45Z</updated>

		<summary type="html">&lt;p&gt;Elli: /* item as a container */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;Containers&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page exists to brainstorm around the concept of ‘containers’ in microformats.&lt;br /&gt;
&lt;br /&gt;
==What's a Container?==&lt;br /&gt;
&lt;br /&gt;
A ‘container’ is a root element that contains multiple microformat items within it. It groups those items together, but could also be used to provide additional or shared semantics between those items.&lt;br /&gt;
&lt;br /&gt;
Some microformats already define containers: &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; [[hCalendar]] is a container for events, the &amp;lt;code&amp;gt;hfeed&amp;lt;/code&amp;gt; container in [[hAtom]] contains entries, [[hAudio]] has a concept whereby &amp;lt;code&amp;gt;haudio&amp;lt;/code&amp;gt; concepts may be nested, and an [[hCard]] &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; may be a container for &amp;lt;code&amp;gt;agent vcard&amp;lt;/code&amp;gt;s.&lt;br /&gt;
&lt;br /&gt;
==Why is this being explored?==&lt;br /&gt;
There are a number of use cases for making better use of these container semantics, both in microformats like hCalendar that already have containers, and [[hReview]], where no current container concept exists.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== examples ==&lt;br /&gt;
As always it helps to start with examples of markup from actual websites that are already publishing container semantics. If this section gets too large, perhaps we can move it to [[container-examples]].&lt;br /&gt;
&lt;br /&gt;
=== container of reviews ===&lt;br /&gt;
The following website(s) contain a list of reviews which could/would benefit from a way of marking up not just the reviews as hReviews, but also the set of them as reviewing the same item.&lt;br /&gt;
==== SustainLane ====&lt;br /&gt;
http://www.sustainlane.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.sustainlane.com/reviews/aziza/TVLWN4ZKQLKTOIKFLWKBWFQ17DN8&lt;br /&gt;
&lt;br /&gt;
==== Yelp ====&lt;br /&gt;
http://yelp.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.yelp.com/biz/coffee-to-the-people-san-francisco&lt;br /&gt;
&lt;br /&gt;
==Use cases==&lt;br /&gt;
Here are some example use cases for sharing properties from a container into multiple child microformats:&lt;br /&gt;
&lt;br /&gt;
===Multiple reviews of the same item===&lt;br /&gt;
As demonstrated by the above real world examples, many sites publish a page for a single item, listing multiple reviews of that item (e.g. Amazon, Kelkoo, Yelp, Yahoo! Location etc.). The item appears once at the top of the page. The reviews follow. [[hReview]]'s current requirement is that the &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; be referenced from every review using the include-pattern. This requires duplicating some amount of content (most logically, the name of the reviewed item). This has raised objections by implementers, and usually imposes a CSS-dependency to hide the repeated content.&lt;br /&gt;
&lt;br /&gt;
===Reviews and review aggregate of the same item===&lt;br /&gt;
Same as above, a single page includes a few reviews and a single reviews aggregate for a single business. In some implementations (yelp) the aggregate result number is contained inside the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt;. Reviews that use the include pattern to include the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; of the business, are also including a second &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; microformat, resulting in two ratings for the same &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;. Putting the reviews and review aggregates as siblings inside the same container, can solve this problem.&lt;br /&gt;
&lt;br /&gt;
===Shared hCalendar Properties===&lt;br /&gt;
Yahoo! TV Listings marks up television programme listings using hCalendar. The &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; field of the event is the channel on which the show is broadcast: e.g. &amp;lt;code&amp;gt;&amp;amp;lt;span class='location'&amp;gt;BBC 1&amp;amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* ‘BBC 1’ is the heading for that channels listing page. The information is published ''once'' in the page.&lt;br /&gt;
* Each scheduled programme on the page is a &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
* Using current hCalendar semantics, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; must be included in every &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the ‘BBC 1’ content at the top of the page, not part of the programme content, the content either has to be repeated and hidden in the presentation layer, or current microformats constructs such as the [[include-pattern]] need to be used to invisibly reference the original mention of ‘BBC 1’.&lt;br /&gt;
&lt;br /&gt;
Repeating content is unacceptable, and the include-pattern is a messy, hacky mark-up pattern. Embracing the concept of the container would match the publishing pattern of the site, without repeating content or including invisible pointers.&lt;br /&gt;
&lt;br /&gt;
'''ideally this markup proposal would be moved to the &amp;quot;markup proposals&amp;quot; section below, separate from the &amp;quot;Use Cases&amp;quot; section, so that multiple varying proposals could be grouped together to compare, rather than intermingling them with the list of use cases.'''&lt;br /&gt;
&lt;br /&gt;
.e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class='vcalendar'&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class='location'&amp;gt;BBC 2&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Gardener's World&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T20:30:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 8:30pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Have I Got News For You&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T21:00:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 9:00pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; is promoted to being a property of the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt;, and is the default location for all the contained events.&lt;br /&gt;
&lt;br /&gt;
This could also apply to the &amp;lt;code&amp;gt;organizer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;attendees&amp;lt;/code&amp;gt;, and others. With further explanation and [[value-class-pattern|date-time separation]], you could event declare the day of the week the the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; and the time-of-day in the &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;. The basic principal is illustrated, though.&lt;br /&gt;
&lt;br /&gt;
Uses for this pattern:&lt;br /&gt;
* Broadcast listings for a single channel/station&lt;br /&gt;
* Concert listings at a single venue&lt;br /&gt;
* Concert listings for a single act (e.g. ‘Doves in Concert’ is the event &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; for multiple events at different &amp;lt;code&amp;gt;locations&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
This of course, extends the use of an existing container.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Shared Aspects of Containers==&lt;br /&gt;
If containers become a more strongly adopted concept in microformats, they should behave consistently across formats (hence documenting these two examples here, rather than just as separate issues for both hReview and hCalendar).&lt;br /&gt;
&lt;br /&gt;
Things that should be consistent and predictable:&lt;br /&gt;
&lt;br /&gt;
* Inheriting an property into a microformat item within the container&lt;br /&gt;
* Contained items ''overriding'' one or more inherited property&lt;br /&gt;
&lt;br /&gt;
== markup proposals ==&lt;br /&gt;
=== hreview-set ===&lt;br /&gt;
One solution to the problem of multiple reviews of the same item could be to wrap each &amp;lt;code&amp;gt;hReview&amp;lt;/code&amp;gt; in a container (hypothetically, &amp;lt;code&amp;gt;hreview-set&amp;lt;/code&amp;gt;. The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; is a child of the set, and is inherited by each &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; contained within.&lt;br /&gt;
&lt;br /&gt;
=== hCard as a container ===&lt;br /&gt;
&amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; block can contain associated information like reviews and aggregates. &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;s inside an &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; do not need to specify item.&lt;br /&gt;
This also extends to other microformats that can may contain reviews, such as hproduct.&lt;br /&gt;
Another option is that a vcard that contains other microformat must also specify additional tag, such as &amp;lt;code&amp;gt;hcontainer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; or similar.&lt;br /&gt;
====Problems====&lt;br /&gt;
* &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; already contains child hCard. Since it can inherit aspects of hcard from its parent, there will be duplicate values. This makes the job of the parser more complex, and requires additional rules, such as &amp;quot;an hreview inside an hcard ignores all hCard properties that are not contained in it&amp;quot;, etc.&lt;br /&gt;
* Include pattern from hreview to the container hCard can cause circular references, requiring more rules in the microformat specification and more rules for the parsers to follow.&lt;br /&gt;
* Generally it seems to me (Elli) that this pattern will require many parsing rules. Things are not &amp;quot;atomic&amp;quot;. It also forces a rigid structure on the xhtml, which may defeat the purpose of containers.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;vcard&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hcontainer===&lt;br /&gt;
A container microformat. Inside a container, a microformat that requires another microformat as a child (such as hreview requiring an item), can resolve this association by sibling relationship (as opposed to parent child relationship).&lt;br /&gt;
When a container includes &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;hreview-aggregate&amp;lt;/code&amp;gt;, it also requires a child &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In the example below, the item is hcard, similar examples can be written for products and events.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcontainer&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;item vcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== item as a container ===&lt;br /&gt;
The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; microformat is currently used inside &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;s. Use this existing micformat as a container as well. This makes the specification slightly more complicated, since &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; will be allowed as a parent of &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; as well as a child. This is basically the same proposal as above, but using the name &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; for the container, instead of a dedicated name.&lt;br /&gt;
====Problems====&lt;br /&gt;
* This defines two microformats that can be parent child of each other in both directions (&amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt;).&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;vcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hreview rating and hreview-aggregate rating use different names ===&lt;br /&gt;
Since the microformat &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; is used for both, an &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; that includes an &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; which contains aggregates, effectively imports a second rating. This can be solved by having different names for hreview rating and hreview-aggregate rating. This is not really a container proposal, but it addresses issues of the hreview-aggregate which is currently a container for item.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;vcard item&amp;quot; id=&amp;quot;review_item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;!-- average rating --&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;average-rating&amp;quot;&amp;gt;5&amp;lt;/span&amp;gt; stars&lt;br /&gt;
   based on &amp;lt;span class=&amp;quot;review-count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;span class=&amp;quot;type microformat_detail&amp;quot;&amp;gt;business&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;!-- single rating --&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;rating&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt; stars&lt;br /&gt;
   &amp;lt;!-- include pattern --&amp;gt;&lt;br /&gt;
   &amp;lt;a class=&amp;quot;item microformat_detail&amp;quot; href=&amp;quot;#review_item&amp;quot;&amp;gt;Aziza&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[hReview]]&lt;br /&gt;
* [[hCalendar]]&lt;br /&gt;
* [[hListing]]&lt;/div&gt;</summary>
		<author><name>Elli</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39078</id>
		<title>container-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39078"/>
		<updated>2009-06-11T14:51:48Z</updated>

		<summary type="html">&lt;p&gt;Elli: /* hcard as a container */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;Containers&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page exists to brainstorm around the concept of ‘containers’ in microformats.&lt;br /&gt;
&lt;br /&gt;
==What's a Container?==&lt;br /&gt;
&lt;br /&gt;
A ‘container’ is a root element that contains multiple microformat items within it. It groups those items together, but could also be used to provide additional or shared semantics between those items.&lt;br /&gt;
&lt;br /&gt;
Some microformats already define containers: &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; [[hCalendar]] is a container for events, the &amp;lt;code&amp;gt;hfeed&amp;lt;/code&amp;gt; container in [[hAtom]] contains entries, [[hAudio]] has a concept whereby &amp;lt;code&amp;gt;haudio&amp;lt;/code&amp;gt; concepts may be nested, and an [[hCard]] &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; may be a container for &amp;lt;code&amp;gt;agent vcard&amp;lt;/code&amp;gt;s.&lt;br /&gt;
&lt;br /&gt;
==Why is this being explored?==&lt;br /&gt;
There are a number of use cases for making better use of these container semantics, both in microformats like hCalendar that already have containers, and [[hReview]], where no current container concept exists.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== examples ==&lt;br /&gt;
As always it helps to start with examples of markup from actual websites that are already publishing container semantics. If this section gets too large, perhaps we can move it to [[container-examples]].&lt;br /&gt;
&lt;br /&gt;
=== container of reviews ===&lt;br /&gt;
The following website(s) contain a list of reviews which could/would benefit from a way of marking up not just the reviews as hReviews, but also the set of them as reviewing the same item.&lt;br /&gt;
==== SustainLane ====&lt;br /&gt;
http://www.sustainlane.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.sustainlane.com/reviews/aziza/TVLWN4ZKQLKTOIKFLWKBWFQ17DN8&lt;br /&gt;
&lt;br /&gt;
==== Yelp ====&lt;br /&gt;
http://yelp.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.yelp.com/biz/coffee-to-the-people-san-francisco&lt;br /&gt;
&lt;br /&gt;
==Use cases==&lt;br /&gt;
Here are some example use cases for sharing properties from a container into multiple child microformats:&lt;br /&gt;
&lt;br /&gt;
===Multiple reviews of the same item===&lt;br /&gt;
As demonstrated by the above real world examples, many sites publish a page for a single item, listing multiple reviews of that item (e.g. Amazon, Kelkoo, Yelp, Yahoo! Location etc.). The item appears once at the top of the page. The reviews follow. [[hReview]]'s current requirement is that the &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; be referenced from every review using the include-pattern. This requires duplicating some amount of content (most logically, the name of the reviewed item). This has raised objections by implementers, and usually imposes a CSS-dependency to hide the repeated content.&lt;br /&gt;
&lt;br /&gt;
===Reviews and review aggregate of the same item===&lt;br /&gt;
Same as above, a single page includes a few reviews and a single reviews aggregate for a single business. In some implementations (yelp) the aggregate result number is contained inside the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt;. Reviews that use the include pattern to include the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; of the business, are also including a second &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; microformat, resulting in two ratings for the same &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;. Putting the reviews and review aggregates as siblings inside the same container, can solve this problem.&lt;br /&gt;
&lt;br /&gt;
===Shared hCalendar Properties===&lt;br /&gt;
Yahoo! TV Listings marks up television programme listings using hCalendar. The &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; field of the event is the channel on which the show is broadcast: e.g. &amp;lt;code&amp;gt;&amp;amp;lt;span class='location'&amp;gt;BBC 1&amp;amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* ‘BBC 1’ is the heading for that channels listing page. The information is published ''once'' in the page.&lt;br /&gt;
* Each scheduled programme on the page is a &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
* Using current hCalendar semantics, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; must be included in every &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the ‘BBC 1’ content at the top of the page, not part of the programme content, the content either has to be repeated and hidden in the presentation layer, or current microformats constructs such as the [[include-pattern]] need to be used to invisibly reference the original mention of ‘BBC 1’.&lt;br /&gt;
&lt;br /&gt;
Repeating content is unacceptable, and the include-pattern is a messy, hacky mark-up pattern. Embracing the concept of the container would match the publishing pattern of the site, without repeating content or including invisible pointers.&lt;br /&gt;
&lt;br /&gt;
'''ideally this markup proposal would be moved to the &amp;quot;markup proposals&amp;quot; section below, separate from the &amp;quot;Use Cases&amp;quot; section, so that multiple varying proposals could be grouped together to compare, rather than intermingling them with the list of use cases.'''&lt;br /&gt;
&lt;br /&gt;
.e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class='vcalendar'&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class='location'&amp;gt;BBC 2&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Gardener's World&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T20:30:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 8:30pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Have I Got News For You&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T21:00:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 9:00pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; is promoted to being a property of the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt;, and is the default location for all the contained events.&lt;br /&gt;
&lt;br /&gt;
This could also apply to the &amp;lt;code&amp;gt;organizer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;attendees&amp;lt;/code&amp;gt;, and others. With further explanation and [[value-class-pattern|date-time separation]], you could event declare the day of the week the the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; and the time-of-day in the &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;. The basic principal is illustrated, though.&lt;br /&gt;
&lt;br /&gt;
Uses for this pattern:&lt;br /&gt;
* Broadcast listings for a single channel/station&lt;br /&gt;
* Concert listings at a single venue&lt;br /&gt;
* Concert listings for a single act (e.g. ‘Doves in Concert’ is the event &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; for multiple events at different &amp;lt;code&amp;gt;locations&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
This of course, extends the use of an existing container.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Shared Aspects of Containers==&lt;br /&gt;
If containers become a more strongly adopted concept in microformats, they should behave consistently across formats (hence documenting these two examples here, rather than just as separate issues for both hReview and hCalendar).&lt;br /&gt;
&lt;br /&gt;
Things that should be consistent and predictable:&lt;br /&gt;
&lt;br /&gt;
* Inheriting an property into a microformat item within the container&lt;br /&gt;
* Contained items ''overriding'' one or more inherited property&lt;br /&gt;
&lt;br /&gt;
== markup proposals ==&lt;br /&gt;
=== hreview-set ===&lt;br /&gt;
One solution to the problem of multiple reviews of the same item could be to wrap each &amp;lt;code&amp;gt;hReview&amp;lt;/code&amp;gt; in a container (hypothetically, &amp;lt;code&amp;gt;hreview-set&amp;lt;/code&amp;gt;. The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; is a child of the set, and is inherited by each &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; contained within.&lt;br /&gt;
&lt;br /&gt;
=== hCard as a container ===&lt;br /&gt;
&amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; block can contain associated information like reviews and aggregates. &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;s inside an &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; do not need to specify item.&lt;br /&gt;
This also extends to other microformats that can may contain reviews, such as hproduct.&lt;br /&gt;
Another option is that a vcard that contains other microformat must also specify additional tag, such as &amp;lt;code&amp;gt;hcontainer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; or similar.&lt;br /&gt;
====Problems====&lt;br /&gt;
* &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; already contains child hCard. Since it can inherit aspects of hcard from its parent, there will be duplicate values. This makes the job of the parser more complex, and requires additional rules, such as &amp;quot;an hreview inside an hcard ignores all hCard properties that are not contained in it&amp;quot;, etc.&lt;br /&gt;
* Include pattern from hreview to the container hCard can cause circular references, requiring more rules in the microformat specification and more rules for the parsers to follow.&lt;br /&gt;
* Generally it seems to me (Elli) that this pattern will require many parsing rules. Things are not &amp;quot;atomic&amp;quot;. It also forces a rigid structure on the xhtml, which may defeat the purpose of containers.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;vcard&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hcontainer===&lt;br /&gt;
A container microformat. Inside a container, a microformat that requires another microformat as a child (such as hreview requiring an item), can resolve this association by sibling relationship (as opposed to parent child relationship).&lt;br /&gt;
When a container includes &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;hreview-aggregate&amp;lt;/code&amp;gt;, it also requires a child &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In the example below, the item is hcard, similar examples can be written for products and events.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcontainer&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;item vcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== item as a container ===&lt;br /&gt;
The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; microformat is currently used inside &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;s. Use this existing micformat as a container as well. This makes the specification slightly more complicated, since &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; will be allowed as a parent of &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; as well as a child. This is basically the same proposal as above, but using the name &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; for the container, instead of a dedicated name.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;vcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hreview rating and hreview-aggregate rating use different names ===&lt;br /&gt;
Since the microformat &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; is used for both, an &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; that includes an &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; which contains aggregates, effectively imports a second rating. This can be solved by having different names for hreview rating and hreview-aggregate rating. This is not really a container proposal, but it addresses issues of the hreview-aggregate which is currently a container for item.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;vcard item&amp;quot; id=&amp;quot;review_item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;!-- average rating --&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;average-rating&amp;quot;&amp;gt;5&amp;lt;/span&amp;gt; stars&lt;br /&gt;
   based on &amp;lt;span class=&amp;quot;review-count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;span class=&amp;quot;type microformat_detail&amp;quot;&amp;gt;business&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;!-- single rating --&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;rating&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt; stars&lt;br /&gt;
   &amp;lt;!-- include pattern --&amp;gt;&lt;br /&gt;
   &amp;lt;a class=&amp;quot;item microformat_detail&amp;quot; href=&amp;quot;#review_item&amp;quot;&amp;gt;Aziza&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[hReview]]&lt;br /&gt;
* [[hCalendar]]&lt;br /&gt;
* [[hListing]]&lt;/div&gt;</summary>
		<author><name>Elli</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39077</id>
		<title>container-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39077"/>
		<updated>2009-06-11T14:40:06Z</updated>

		<summary type="html">&lt;p&gt;Elli: Fixed brokem classes in examples&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;Containers&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page exists to brainstorm around the concept of ‘containers’ in microformats.&lt;br /&gt;
&lt;br /&gt;
==What's a Container?==&lt;br /&gt;
&lt;br /&gt;
A ‘container’ is a root element that contains multiple microformat items within it. It groups those items together, but could also be used to provide additional or shared semantics between those items.&lt;br /&gt;
&lt;br /&gt;
Some microformats already define containers: &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; [[hCalendar]] is a container for events, the &amp;lt;code&amp;gt;hfeed&amp;lt;/code&amp;gt; container in [[hAtom]] contains entries, [[hAudio]] has a concept whereby &amp;lt;code&amp;gt;haudio&amp;lt;/code&amp;gt; concepts may be nested, and an [[hCard]] &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; may be a container for &amp;lt;code&amp;gt;agent vcard&amp;lt;/code&amp;gt;s.&lt;br /&gt;
&lt;br /&gt;
==Why is this being explored?==&lt;br /&gt;
There are a number of use cases for making better use of these container semantics, both in microformats like hCalendar that already have containers, and [[hReview]], where no current container concept exists.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== examples ==&lt;br /&gt;
As always it helps to start with examples of markup from actual websites that are already publishing container semantics. If this section gets too large, perhaps we can move it to [[container-examples]].&lt;br /&gt;
&lt;br /&gt;
=== container of reviews ===&lt;br /&gt;
The following website(s) contain a list of reviews which could/would benefit from a way of marking up not just the reviews as hReviews, but also the set of them as reviewing the same item.&lt;br /&gt;
==== SustainLane ====&lt;br /&gt;
http://www.sustainlane.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.sustainlane.com/reviews/aziza/TVLWN4ZKQLKTOIKFLWKBWFQ17DN8&lt;br /&gt;
&lt;br /&gt;
==== Yelp ====&lt;br /&gt;
http://yelp.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.yelp.com/biz/coffee-to-the-people-san-francisco&lt;br /&gt;
&lt;br /&gt;
==Use cases==&lt;br /&gt;
Here are some example use cases for sharing properties from a container into multiple child microformats:&lt;br /&gt;
&lt;br /&gt;
===Multiple reviews of the same item===&lt;br /&gt;
As demonstrated by the above real world examples, many sites publish a page for a single item, listing multiple reviews of that item (e.g. Amazon, Kelkoo, Yelp, Yahoo! Location etc.). The item appears once at the top of the page. The reviews follow. [[hReview]]'s current requirement is that the &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; be referenced from every review using the include-pattern. This requires duplicating some amount of content (most logically, the name of the reviewed item). This has raised objections by implementers, and usually imposes a CSS-dependency to hide the repeated content.&lt;br /&gt;
&lt;br /&gt;
===Reviews and review aggregate of the same item===&lt;br /&gt;
Same as above, a single page includes a few reviews and a single reviews aggregate for a single business. In some implementations (yelp) the aggregate result number is contained inside the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt;. Reviews that use the include pattern to include the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; of the business, are also including a second &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; microformat, resulting in two ratings for the same &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;. Putting the reviews and review aggregates as siblings inside the same container, can solve this problem.&lt;br /&gt;
&lt;br /&gt;
===Shared hCalendar Properties===&lt;br /&gt;
Yahoo! TV Listings marks up television programme listings using hCalendar. The &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; field of the event is the channel on which the show is broadcast: e.g. &amp;lt;code&amp;gt;&amp;amp;lt;span class='location'&amp;gt;BBC 1&amp;amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* ‘BBC 1’ is the heading for that channels listing page. The information is published ''once'' in the page.&lt;br /&gt;
* Each scheduled programme on the page is a &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
* Using current hCalendar semantics, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; must be included in every &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the ‘BBC 1’ content at the top of the page, not part of the programme content, the content either has to be repeated and hidden in the presentation layer, or current microformats constructs such as the [[include-pattern]] need to be used to invisibly reference the original mention of ‘BBC 1’.&lt;br /&gt;
&lt;br /&gt;
Repeating content is unacceptable, and the include-pattern is a messy, hacky mark-up pattern. Embracing the concept of the container would match the publishing pattern of the site, without repeating content or including invisible pointers.&lt;br /&gt;
&lt;br /&gt;
'''ideally this markup proposal would be moved to the &amp;quot;markup proposals&amp;quot; section below, separate from the &amp;quot;Use Cases&amp;quot; section, so that multiple varying proposals could be grouped together to compare, rather than intermingling them with the list of use cases.'''&lt;br /&gt;
&lt;br /&gt;
.e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class='vcalendar'&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class='location'&amp;gt;BBC 2&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Gardener's World&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T20:30:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 8:30pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Have I Got News For You&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T21:00:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 9:00pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; is promoted to being a property of the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt;, and is the default location for all the contained events.&lt;br /&gt;
&lt;br /&gt;
This could also apply to the &amp;lt;code&amp;gt;organizer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;attendees&amp;lt;/code&amp;gt;, and others. With further explanation and [[value-class-pattern|date-time separation]], you could event declare the day of the week the the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; and the time-of-day in the &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;. The basic principal is illustrated, though.&lt;br /&gt;
&lt;br /&gt;
Uses for this pattern:&lt;br /&gt;
* Broadcast listings for a single channel/station&lt;br /&gt;
* Concert listings at a single venue&lt;br /&gt;
* Concert listings for a single act (e.g. ‘Doves in Concert’ is the event &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; for multiple events at different &amp;lt;code&amp;gt;locations&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
This of course, extends the use of an existing container.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Shared Aspects of Containers==&lt;br /&gt;
If containers become a more strongly adopted concept in microformats, they should behave consistently across formats (hence documenting these two examples here, rather than just as separate issues for both hReview and hCalendar).&lt;br /&gt;
&lt;br /&gt;
Things that should be consistent and predictable:&lt;br /&gt;
&lt;br /&gt;
* Inheriting an property into a microformat item within the container&lt;br /&gt;
* Contained items ''overriding'' one or more inherited property&lt;br /&gt;
&lt;br /&gt;
== markup proposals ==&lt;br /&gt;
=== hreview-set ===&lt;br /&gt;
One solution to the problem of multiple reviews of the same item could be to wrap each &amp;lt;code&amp;gt;hReview&amp;lt;/code&amp;gt; in a container (hypothetically, &amp;lt;code&amp;gt;hreview-set&amp;lt;/code&amp;gt;. The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; is a child of the set, and is inherited by each &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; contained within.&lt;br /&gt;
&lt;br /&gt;
=== hcard as a container ===&lt;br /&gt;
&amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; can contain associated information like reviews and aggregates. &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;s inside an &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; do not need to specify item.&lt;br /&gt;
This also extends to other microformats that can may contain reviews, such as hproduct.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;vcard&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hcontainer===&lt;br /&gt;
A container microformat. Inside a container, a microformat that requires another microformat as a child (such as hreview requiring an item), can resolve this association by sibling relationship (as opposed to parent child relationship).&lt;br /&gt;
When a container includes &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;hreview-aggregate&amp;lt;/code&amp;gt;, it also requires a child &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In the example below, the item is hcard, similar examples can be written for products and events.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcontainer&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;item vcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== item as a container ===&lt;br /&gt;
The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; microformat is currently used inside &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;s. Use this existing micformat as a container as well. This makes the specification slightly more complicated, since &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; will be allowed as a parent of &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; as well as a child. This is basically the same proposal as above, but using the name &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; for the container, instead of a dedicated name.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;vcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hreview rating and hreview-aggregate rating use different names ===&lt;br /&gt;
Since the microformat &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; is used for both, an &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; that includes an &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; which contains aggregates, effectively imports a second rating. This can be solved by having different names for hreview rating and hreview-aggregate rating. This is not really a container proposal, but it addresses issues of the hreview-aggregate which is currently a container for item.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;vcard item&amp;quot; id=&amp;quot;review_item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;!-- average rating --&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;average-rating&amp;quot;&amp;gt;5&amp;lt;/span&amp;gt; stars&lt;br /&gt;
   based on &amp;lt;span class=&amp;quot;review-count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;span class=&amp;quot;type microformat_detail&amp;quot;&amp;gt;business&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;!-- single rating --&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;rating&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt; stars&lt;br /&gt;
   &amp;lt;!-- include pattern --&amp;gt;&lt;br /&gt;
   &amp;lt;a class=&amp;quot;item microformat_detail&amp;quot; href=&amp;quot;#review_item&amp;quot;&amp;gt;Aziza&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[hReview]]&lt;br /&gt;
* [[hCalendar]]&lt;br /&gt;
* [[hListing]]&lt;/div&gt;</summary>
		<author><name>Elli</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39076</id>
		<title>container-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39076"/>
		<updated>2009-06-11T05:30:42Z</updated>

		<summary type="html">&lt;p&gt;Elli: /* item as a container */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;Containers&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page exists to brainstorm around the concept of ‘containers’ in microformats.&lt;br /&gt;
&lt;br /&gt;
==What's a Container?==&lt;br /&gt;
&lt;br /&gt;
A ‘container’ is a root element that contains multiple microformat items within it. It groups those items together, but could also be used to provide additional or shared semantics between those items.&lt;br /&gt;
&lt;br /&gt;
Some microformats already define containers: &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; [[hCalendar]] is a container for events, the &amp;lt;code&amp;gt;hfeed&amp;lt;/code&amp;gt; container in [[hAtom]] contains entries, [[hAudio]] has a concept whereby &amp;lt;code&amp;gt;haudio&amp;lt;/code&amp;gt; concepts may be nested, and an [[hCard]] &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; may be a container for &amp;lt;code&amp;gt;agent vcard&amp;lt;/code&amp;gt;s.&lt;br /&gt;
&lt;br /&gt;
==Why is this being explored?==&lt;br /&gt;
There are a number of use cases for making better use of these container semantics, both in microformats like hCalendar that already have containers, and [[hReview]], where no current container concept exists.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== examples ==&lt;br /&gt;
As always it helps to start with examples of markup from actual websites that are already publishing container semantics. If this section gets too large, perhaps we can move it to [[container-examples]].&lt;br /&gt;
&lt;br /&gt;
=== container of reviews ===&lt;br /&gt;
The following website(s) contain a list of reviews which could/would benefit from a way of marking up not just the reviews as hReviews, but also the set of them as reviewing the same item.&lt;br /&gt;
==== SustainLane ====&lt;br /&gt;
http://www.sustainlane.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.sustainlane.com/reviews/aziza/TVLWN4ZKQLKTOIKFLWKBWFQ17DN8&lt;br /&gt;
&lt;br /&gt;
==== Yelp ====&lt;br /&gt;
http://yelp.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.yelp.com/biz/coffee-to-the-people-san-francisco&lt;br /&gt;
&lt;br /&gt;
==Use cases==&lt;br /&gt;
Here are some example use cases for sharing properties from a container into multiple child microformats:&lt;br /&gt;
&lt;br /&gt;
===Multiple reviews of the same item===&lt;br /&gt;
As demonstrated by the above real world examples, many sites publish a page for a single item, listing multiple reviews of that item (e.g. Amazon, Kelkoo, Yelp, Yahoo! Location etc.). The item appears once at the top of the page. The reviews follow. [[hReview]]'s current requirement is that the &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; be referenced from every review using the include-pattern. This requires duplicating some amount of content (most logically, the name of the reviewed item). This has raised objections by implementers, and usually imposes a CSS-dependency to hide the repeated content.&lt;br /&gt;
&lt;br /&gt;
===Reviews and review aggregate of the same item===&lt;br /&gt;
Same as above, a single page includes a few reviews and a single reviews aggregate for a single business. In some implementations (yelp) the aggregate result number is contained inside the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt;. Reviews that use the include pattern to include the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; of the business, are also including a second &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; microformat, resulting in two ratings for the same &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;. Putting the reviews and review aggregates as siblings inside the same container, can solve this problem.&lt;br /&gt;
&lt;br /&gt;
===Shared hCalendar Properties===&lt;br /&gt;
Yahoo! TV Listings marks up television programme listings using hCalendar. The &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; field of the event is the channel on which the show is broadcast: e.g. &amp;lt;code&amp;gt;&amp;amp;lt;span class='location'&amp;gt;BBC 1&amp;amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* ‘BBC 1’ is the heading for that channels listing page. The information is published ''once'' in the page.&lt;br /&gt;
* Each scheduled programme on the page is a &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
* Using current hCalendar semantics, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; must be included in every &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the ‘BBC 1’ content at the top of the page, not part of the programme content, the content either has to be repeated and hidden in the presentation layer, or current microformats constructs such as the [[include-pattern]] need to be used to invisibly reference the original mention of ‘BBC 1’.&lt;br /&gt;
&lt;br /&gt;
Repeating content is unacceptable, and the include-pattern is a messy, hacky mark-up pattern. Embracing the concept of the container would match the publishing pattern of the site, without repeating content or including invisible pointers.&lt;br /&gt;
&lt;br /&gt;
'''ideally this markup proposal would be moved to the &amp;quot;markup proposals&amp;quot; section below, separate from the &amp;quot;Use Cases&amp;quot; section, so that multiple varying proposals could be grouped together to compare, rather than intermingling them with the list of use cases.'''&lt;br /&gt;
&lt;br /&gt;
.e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class='vcalendar'&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class='location'&amp;gt;BBC 2&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Gardener's World&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T20:30:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 8:30pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Have I Got News For You&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T21:00:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 9:00pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; is promoted to being a property of the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt;, and is the default location for all the contained events.&lt;br /&gt;
&lt;br /&gt;
This could also apply to the &amp;lt;code&amp;gt;organizer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;attendees&amp;lt;/code&amp;gt;, and others. With further explanation and [[value-class-pattern|date-time separation]], you could event declare the day of the week the the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; and the time-of-day in the &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;. The basic principal is illustrated, though.&lt;br /&gt;
&lt;br /&gt;
Uses for this pattern:&lt;br /&gt;
* Broadcast listings for a single channel/station&lt;br /&gt;
* Concert listings at a single venue&lt;br /&gt;
* Concert listings for a single act (e.g. ‘Doves in Concert’ is the event &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; for multiple events at different &amp;lt;code&amp;gt;locations&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
This of course, extends the use of an existing container.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Shared Aspects of Containers==&lt;br /&gt;
If containers become a more strongly adopted concept in microformats, they should behave consistently across formats (hence documenting these two examples here, rather than just as separate issues for both hReview and hCalendar).&lt;br /&gt;
&lt;br /&gt;
Things that should be consistent and predictable:&lt;br /&gt;
&lt;br /&gt;
* Inheriting an property into a microformat item within the container&lt;br /&gt;
* Contained items ''overriding'' one or more inherited property&lt;br /&gt;
&lt;br /&gt;
== markup proposals ==&lt;br /&gt;
=== hreview-set ===&lt;br /&gt;
One solution to the problem of multiple reviews of the same item could be to wrap each &amp;lt;code&amp;gt;hReview&amp;lt;/code&amp;gt; in a container (hypothetically, &amp;lt;code&amp;gt;hreview-set&amp;lt;/code&amp;gt;. The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; is a child of the set, and is inherited by each &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; contained within.&lt;br /&gt;
&lt;br /&gt;
=== hcard as a container ===&lt;br /&gt;
&amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; can contain associated information like reviews and aggregates. &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;s inside an &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; do not need to specify item.&lt;br /&gt;
This also extends to other microformats that can may contain reviews, such as hproduct.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcard&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hcontainer===&lt;br /&gt;
A container microformat. Inside a container, a microformat that requires another microformat as a child (such as hreview requiring an item), can resolve this association by sibling relationship (as opposed to parent child relationship).&lt;br /&gt;
When a container includes &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;hreview-aggregate&amp;lt;/code&amp;gt;, it also requires a child &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In the example below, the item is hcard, similar examples can be written for products and events.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcontainer&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;item hcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== item as a container ===&lt;br /&gt;
The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; microformat is currently used inside &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;s. Use this existing micformat as a container as well. This makes the specification slightly more complicated, since &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; will be allowed as a parent of &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; as well as a child. This is basically the same proposal as above, but using the name &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; for the container, instead of a dedicated name.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;hcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hreview rating and hreview-aggregate rating use different names ===&lt;br /&gt;
Since the microformat &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; is used for both, an &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; that includes an &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; which contains aggregates, effectively imports a second rating. This can be solved by having different names for hreview rating and hreview-aggregate rating. This is not really a container proposal, but it addresses issues of the hreview-aggregate which is currently a container for item.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcard item&amp;quot; id=&amp;quot;review_item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;!-- average rating --&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;average-rating&amp;quot;&amp;gt;5&amp;lt;/span&amp;gt; stars&lt;br /&gt;
   based on &amp;lt;span class=&amp;quot;review-count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;span class=&amp;quot;type microformat_detail&amp;quot;&amp;gt;business&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;!-- single rating --&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;rating&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt; stars&lt;br /&gt;
   &amp;lt;!-- include pattern --&amp;gt;&lt;br /&gt;
   &amp;lt;a class=&amp;quot;item microformat_detail&amp;quot; href=&amp;quot;#review_item&amp;quot;&amp;gt;Aziza&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[hReview]]&lt;br /&gt;
* [[hCalendar]]&lt;br /&gt;
* [[hListing]]&lt;/div&gt;</summary>
		<author><name>Elli</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39075</id>
		<title>container-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39075"/>
		<updated>2009-06-11T05:30:05Z</updated>

		<summary type="html">&lt;p&gt;Elli: /* hcontainer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;Containers&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page exists to brainstorm around the concept of ‘containers’ in microformats.&lt;br /&gt;
&lt;br /&gt;
==What's a Container?==&lt;br /&gt;
&lt;br /&gt;
A ‘container’ is a root element that contains multiple microformat items within it. It groups those items together, but could also be used to provide additional or shared semantics between those items.&lt;br /&gt;
&lt;br /&gt;
Some microformats already define containers: &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; [[hCalendar]] is a container for events, the &amp;lt;code&amp;gt;hfeed&amp;lt;/code&amp;gt; container in [[hAtom]] contains entries, [[hAudio]] has a concept whereby &amp;lt;code&amp;gt;haudio&amp;lt;/code&amp;gt; concepts may be nested, and an [[hCard]] &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; may be a container for &amp;lt;code&amp;gt;agent vcard&amp;lt;/code&amp;gt;s.&lt;br /&gt;
&lt;br /&gt;
==Why is this being explored?==&lt;br /&gt;
There are a number of use cases for making better use of these container semantics, both in microformats like hCalendar that already have containers, and [[hReview]], where no current container concept exists.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== examples ==&lt;br /&gt;
As always it helps to start with examples of markup from actual websites that are already publishing container semantics. If this section gets too large, perhaps we can move it to [[container-examples]].&lt;br /&gt;
&lt;br /&gt;
=== container of reviews ===&lt;br /&gt;
The following website(s) contain a list of reviews which could/would benefit from a way of marking up not just the reviews as hReviews, but also the set of them as reviewing the same item.&lt;br /&gt;
==== SustainLane ====&lt;br /&gt;
http://www.sustainlane.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.sustainlane.com/reviews/aziza/TVLWN4ZKQLKTOIKFLWKBWFQ17DN8&lt;br /&gt;
&lt;br /&gt;
==== Yelp ====&lt;br /&gt;
http://yelp.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.yelp.com/biz/coffee-to-the-people-san-francisco&lt;br /&gt;
&lt;br /&gt;
==Use cases==&lt;br /&gt;
Here are some example use cases for sharing properties from a container into multiple child microformats:&lt;br /&gt;
&lt;br /&gt;
===Multiple reviews of the same item===&lt;br /&gt;
As demonstrated by the above real world examples, many sites publish a page for a single item, listing multiple reviews of that item (e.g. Amazon, Kelkoo, Yelp, Yahoo! Location etc.). The item appears once at the top of the page. The reviews follow. [[hReview]]'s current requirement is that the &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; be referenced from every review using the include-pattern. This requires duplicating some amount of content (most logically, the name of the reviewed item). This has raised objections by implementers, and usually imposes a CSS-dependency to hide the repeated content.&lt;br /&gt;
&lt;br /&gt;
===Reviews and review aggregate of the same item===&lt;br /&gt;
Same as above, a single page includes a few reviews and a single reviews aggregate for a single business. In some implementations (yelp) the aggregate result number is contained inside the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt;. Reviews that use the include pattern to include the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; of the business, are also including a second &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; microformat, resulting in two ratings for the same &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;. Putting the reviews and review aggregates as siblings inside the same container, can solve this problem.&lt;br /&gt;
&lt;br /&gt;
===Shared hCalendar Properties===&lt;br /&gt;
Yahoo! TV Listings marks up television programme listings using hCalendar. The &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; field of the event is the channel on which the show is broadcast: e.g. &amp;lt;code&amp;gt;&amp;amp;lt;span class='location'&amp;gt;BBC 1&amp;amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* ‘BBC 1’ is the heading for that channels listing page. The information is published ''once'' in the page.&lt;br /&gt;
* Each scheduled programme on the page is a &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
* Using current hCalendar semantics, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; must be included in every &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the ‘BBC 1’ content at the top of the page, not part of the programme content, the content either has to be repeated and hidden in the presentation layer, or current microformats constructs such as the [[include-pattern]] need to be used to invisibly reference the original mention of ‘BBC 1’.&lt;br /&gt;
&lt;br /&gt;
Repeating content is unacceptable, and the include-pattern is a messy, hacky mark-up pattern. Embracing the concept of the container would match the publishing pattern of the site, without repeating content or including invisible pointers.&lt;br /&gt;
&lt;br /&gt;
'''ideally this markup proposal would be moved to the &amp;quot;markup proposals&amp;quot; section below, separate from the &amp;quot;Use Cases&amp;quot; section, so that multiple varying proposals could be grouped together to compare, rather than intermingling them with the list of use cases.'''&lt;br /&gt;
&lt;br /&gt;
.e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class='vcalendar'&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class='location'&amp;gt;BBC 2&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Gardener's World&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T20:30:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 8:30pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Have I Got News For You&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T21:00:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 9:00pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; is promoted to being a property of the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt;, and is the default location for all the contained events.&lt;br /&gt;
&lt;br /&gt;
This could also apply to the &amp;lt;code&amp;gt;organizer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;attendees&amp;lt;/code&amp;gt;, and others. With further explanation and [[value-class-pattern|date-time separation]], you could event declare the day of the week the the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; and the time-of-day in the &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;. The basic principal is illustrated, though.&lt;br /&gt;
&lt;br /&gt;
Uses for this pattern:&lt;br /&gt;
* Broadcast listings for a single channel/station&lt;br /&gt;
* Concert listings at a single venue&lt;br /&gt;
* Concert listings for a single act (e.g. ‘Doves in Concert’ is the event &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; for multiple events at different &amp;lt;code&amp;gt;locations&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
This of course, extends the use of an existing container.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Shared Aspects of Containers==&lt;br /&gt;
If containers become a more strongly adopted concept in microformats, they should behave consistently across formats (hence documenting these two examples here, rather than just as separate issues for both hReview and hCalendar).&lt;br /&gt;
&lt;br /&gt;
Things that should be consistent and predictable:&lt;br /&gt;
&lt;br /&gt;
* Inheriting an property into a microformat item within the container&lt;br /&gt;
* Contained items ''overriding'' one or more inherited property&lt;br /&gt;
&lt;br /&gt;
== markup proposals ==&lt;br /&gt;
=== hreview-set ===&lt;br /&gt;
One solution to the problem of multiple reviews of the same item could be to wrap each &amp;lt;code&amp;gt;hReview&amp;lt;/code&amp;gt; in a container (hypothetically, &amp;lt;code&amp;gt;hreview-set&amp;lt;/code&amp;gt;. The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; is a child of the set, and is inherited by each &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; contained within.&lt;br /&gt;
&lt;br /&gt;
=== hcard as a container ===&lt;br /&gt;
&amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; can contain associated information like reviews and aggregates. &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;s inside an &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; do not need to specify item.&lt;br /&gt;
This also extends to other microformats that can may contain reviews, such as hproduct.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcard&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hcontainer===&lt;br /&gt;
A container microformat. Inside a container, a microformat that requires another microformat as a child (such as hreview requiring an item), can resolve this association by sibling relationship (as opposed to parent child relationship).&lt;br /&gt;
When a container includes &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;hreview-aggregate&amp;lt;/code&amp;gt;, it also requires a child &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In the example below, the item is hcard, similar examples can be written for products and events.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcontainer&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;item hcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== item as a container ===&lt;br /&gt;
The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; microformat is currently used inside &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;s. Use this existing micformat as a container as well. This makes the specification slightly more complicated, since &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; will be allowed as a parent of &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; as well as a child. This is basically the same proposal as above, but using the name &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; for the container, instead of a dedicated name.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;item hcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== hreview rating and hreview-aggregate rating use different names ===&lt;br /&gt;
Since the microformat &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; is used for both, an &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; that includes an &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; which contains aggregates, effectively imports a second rating. This can be solved by having different names for hreview rating and hreview-aggregate rating. This is not really a container proposal, but it addresses issues of the hreview-aggregate which is currently a container for item.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcard item&amp;quot; id=&amp;quot;review_item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;!-- average rating --&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;average-rating&amp;quot;&amp;gt;5&amp;lt;/span&amp;gt; stars&lt;br /&gt;
   based on &amp;lt;span class=&amp;quot;review-count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;span class=&amp;quot;type microformat_detail&amp;quot;&amp;gt;business&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;!-- single rating --&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;rating&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt; stars&lt;br /&gt;
   &amp;lt;!-- include pattern --&amp;gt;&lt;br /&gt;
   &amp;lt;a class=&amp;quot;item microformat_detail&amp;quot; href=&amp;quot;#review_item&amp;quot;&amp;gt;Aziza&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[hReview]]&lt;br /&gt;
* [[hCalendar]]&lt;br /&gt;
* [[hListing]]&lt;/div&gt;</summary>
		<author><name>Elli</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39074</id>
		<title>container-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39074"/>
		<updated>2009-06-11T05:26:08Z</updated>

		<summary type="html">&lt;p&gt;Elli: /* Reviews and review aggregate of the same item */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;Containers&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page exists to brainstorm around the concept of ‘containers’ in microformats.&lt;br /&gt;
&lt;br /&gt;
==What's a Container?==&lt;br /&gt;
&lt;br /&gt;
A ‘container’ is a root element that contains multiple microformat items within it. It groups those items together, but could also be used to provide additional or shared semantics between those items.&lt;br /&gt;
&lt;br /&gt;
Some microformats already define containers: &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; [[hCalendar]] is a container for events, the &amp;lt;code&amp;gt;hfeed&amp;lt;/code&amp;gt; container in [[hAtom]] contains entries, [[hAudio]] has a concept whereby &amp;lt;code&amp;gt;haudio&amp;lt;/code&amp;gt; concepts may be nested, and an [[hCard]] &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; may be a container for &amp;lt;code&amp;gt;agent vcard&amp;lt;/code&amp;gt;s.&lt;br /&gt;
&lt;br /&gt;
==Why is this being explored?==&lt;br /&gt;
There are a number of use cases for making better use of these container semantics, both in microformats like hCalendar that already have containers, and [[hReview]], where no current container concept exists.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== examples ==&lt;br /&gt;
As always it helps to start with examples of markup from actual websites that are already publishing container semantics. If this section gets too large, perhaps we can move it to [[container-examples]].&lt;br /&gt;
&lt;br /&gt;
=== container of reviews ===&lt;br /&gt;
The following website(s) contain a list of reviews which could/would benefit from a way of marking up not just the reviews as hReviews, but also the set of them as reviewing the same item.&lt;br /&gt;
==== SustainLane ====&lt;br /&gt;
http://www.sustainlane.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.sustainlane.com/reviews/aziza/TVLWN4ZKQLKTOIKFLWKBWFQ17DN8&lt;br /&gt;
&lt;br /&gt;
==== Yelp ====&lt;br /&gt;
http://yelp.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.yelp.com/biz/coffee-to-the-people-san-francisco&lt;br /&gt;
&lt;br /&gt;
==Use cases==&lt;br /&gt;
Here are some example use cases for sharing properties from a container into multiple child microformats:&lt;br /&gt;
&lt;br /&gt;
===Multiple reviews of the same item===&lt;br /&gt;
As demonstrated by the above real world examples, many sites publish a page for a single item, listing multiple reviews of that item (e.g. Amazon, Kelkoo, Yelp, Yahoo! Location etc.). The item appears once at the top of the page. The reviews follow. [[hReview]]'s current requirement is that the &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; be referenced from every review using the include-pattern. This requires duplicating some amount of content (most logically, the name of the reviewed item). This has raised objections by implementers, and usually imposes a CSS-dependency to hide the repeated content.&lt;br /&gt;
&lt;br /&gt;
===Reviews and review aggregate of the same item===&lt;br /&gt;
Same as above, a single page includes a few reviews and a single reviews aggregate for a single business. In some implementations (yelp) the aggregate result number is contained inside the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt;. Reviews that use the include pattern to include the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; of the business, are also including a second &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; microformat, resulting in two ratings for the same &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;. Putting the reviews and review aggregates as siblings inside the same container, can solve this problem.&lt;br /&gt;
&lt;br /&gt;
===Shared hCalendar Properties===&lt;br /&gt;
Yahoo! TV Listings marks up television programme listings using hCalendar. The &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; field of the event is the channel on which the show is broadcast: e.g. &amp;lt;code&amp;gt;&amp;amp;lt;span class='location'&amp;gt;BBC 1&amp;amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* ‘BBC 1’ is the heading for that channels listing page. The information is published ''once'' in the page.&lt;br /&gt;
* Each scheduled programme on the page is a &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
* Using current hCalendar semantics, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; must be included in every &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the ‘BBC 1’ content at the top of the page, not part of the programme content, the content either has to be repeated and hidden in the presentation layer, or current microformats constructs such as the [[include-pattern]] need to be used to invisibly reference the original mention of ‘BBC 1’.&lt;br /&gt;
&lt;br /&gt;
Repeating content is unacceptable, and the include-pattern is a messy, hacky mark-up pattern. Embracing the concept of the container would match the publishing pattern of the site, without repeating content or including invisible pointers.&lt;br /&gt;
&lt;br /&gt;
'''ideally this markup proposal would be moved to the &amp;quot;markup proposals&amp;quot; section below, separate from the &amp;quot;Use Cases&amp;quot; section, so that multiple varying proposals could be grouped together to compare, rather than intermingling them with the list of use cases.'''&lt;br /&gt;
&lt;br /&gt;
.e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class='vcalendar'&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class='location'&amp;gt;BBC 2&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Gardener's World&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T20:30:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 8:30pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Have I Got News For You&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T21:00:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 9:00pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; is promoted to being a property of the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt;, and is the default location for all the contained events.&lt;br /&gt;
&lt;br /&gt;
This could also apply to the &amp;lt;code&amp;gt;organizer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;attendees&amp;lt;/code&amp;gt;, and others. With further explanation and [[value-class-pattern|date-time separation]], you could event declare the day of the week the the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; and the time-of-day in the &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;. The basic principal is illustrated, though.&lt;br /&gt;
&lt;br /&gt;
Uses for this pattern:&lt;br /&gt;
* Broadcast listings for a single channel/station&lt;br /&gt;
* Concert listings at a single venue&lt;br /&gt;
* Concert listings for a single act (e.g. ‘Doves in Concert’ is the event &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; for multiple events at different &amp;lt;code&amp;gt;locations&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
This of course, extends the use of an existing container.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Shared Aspects of Containers==&lt;br /&gt;
If containers become a more strongly adopted concept in microformats, they should behave consistently across formats (hence documenting these two examples here, rather than just as separate issues for both hReview and hCalendar).&lt;br /&gt;
&lt;br /&gt;
Things that should be consistent and predictable:&lt;br /&gt;
&lt;br /&gt;
* Inheriting an property into a microformat item within the container&lt;br /&gt;
* Contained items ''overriding'' one or more inherited property&lt;br /&gt;
&lt;br /&gt;
== markup proposals ==&lt;br /&gt;
=== hreview-set ===&lt;br /&gt;
One solution to the problem of multiple reviews of the same item could be to wrap each &amp;lt;code&amp;gt;hReview&amp;lt;/code&amp;gt; in a container (hypothetically, &amp;lt;code&amp;gt;hreview-set&amp;lt;/code&amp;gt;. The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; is a child of the set, and is inherited by each &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; contained within.&lt;br /&gt;
&lt;br /&gt;
=== hcard as a container ===&lt;br /&gt;
&amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; can contain associated information like reviews and aggregates. &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;s inside an &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; do not need to specify item.&lt;br /&gt;
This also extends to other microformats that can may contain reviews, such as hproduct.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcard&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hcontainer===&lt;br /&gt;
A container microformat. Inside a container, a microformat that requires another microformat as a child (such as hreview requiring an hcard), can resolve this association by sibling relationship (as opposed to parent child relationship).&lt;br /&gt;
When a container includes &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;hreview-aggregate&amp;lt;/code&amp;gt;, it also requires a child &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In the example below, the item is hcard, a similar example can be written for hproduct. &amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcontainer&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;item hcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== item as a container ===&lt;br /&gt;
The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; microformat is currently used inside &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;s. Use this existing micformat as a container as well. This makes the specification slightly more complicated, since &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; will be allowed as a parent of &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; as well as a child. This is basically the same proposal as above, but using the name &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; for the container, instead of a dedicated name.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;item hcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== hreview rating and hreview-aggregate rating use different names ===&lt;br /&gt;
Since the microformat &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; is used for both, an &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; that includes an &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; which contains aggregates, effectively imports a second rating. This can be solved by having different names for hreview rating and hreview-aggregate rating. This is not really a container proposal, but it addresses issues of the hreview-aggregate which is currently a container for item.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcard item&amp;quot; id=&amp;quot;review_item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;!-- average rating --&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;average-rating&amp;quot;&amp;gt;5&amp;lt;/span&amp;gt; stars&lt;br /&gt;
   based on &amp;lt;span class=&amp;quot;review-count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;span class=&amp;quot;type microformat_detail&amp;quot;&amp;gt;business&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;!-- single rating --&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;rating&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt; stars&lt;br /&gt;
   &amp;lt;!-- include pattern --&amp;gt;&lt;br /&gt;
   &amp;lt;a class=&amp;quot;item microformat_detail&amp;quot; href=&amp;quot;#review_item&amp;quot;&amp;gt;Aziza&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[hReview]]&lt;br /&gt;
* [[hCalendar]]&lt;br /&gt;
* [[hListing]]&lt;/div&gt;</summary>
		<author><name>Elli</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39073</id>
		<title>container-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39073"/>
		<updated>2009-06-11T05:22:11Z</updated>

		<summary type="html">&lt;p&gt;Elli: /* hreview rating and hreview-aggregate rating use different names */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;Containers&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page exists to brainstorm around the concept of ‘containers’ in microformats.&lt;br /&gt;
&lt;br /&gt;
==What's a Container?==&lt;br /&gt;
&lt;br /&gt;
A ‘container’ is a root element that contains multiple microformat items within it. It groups those items together, but could also be used to provide additional or shared semantics between those items.&lt;br /&gt;
&lt;br /&gt;
Some microformats already define containers: &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; [[hCalendar]] is a container for events, the &amp;lt;code&amp;gt;hfeed&amp;lt;/code&amp;gt; container in [[hAtom]] contains entries, [[hAudio]] has a concept whereby &amp;lt;code&amp;gt;haudio&amp;lt;/code&amp;gt; concepts may be nested, and an [[hCard]] &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; may be a container for &amp;lt;code&amp;gt;agent vcard&amp;lt;/code&amp;gt;s.&lt;br /&gt;
&lt;br /&gt;
==Why is this being explored?==&lt;br /&gt;
There are a number of use cases for making better use of these container semantics, both in microformats like hCalendar that already have containers, and [[hReview]], where no current container concept exists.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== examples ==&lt;br /&gt;
As always it helps to start with examples of markup from actual websites that are already publishing container semantics. If this section gets too large, perhaps we can move it to [[container-examples]].&lt;br /&gt;
&lt;br /&gt;
=== container of reviews ===&lt;br /&gt;
The following website(s) contain a list of reviews which could/would benefit from a way of marking up not just the reviews as hReviews, but also the set of them as reviewing the same item.&lt;br /&gt;
==== SustainLane ====&lt;br /&gt;
http://www.sustainlane.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.sustainlane.com/reviews/aziza/TVLWN4ZKQLKTOIKFLWKBWFQ17DN8&lt;br /&gt;
&lt;br /&gt;
==== Yelp ====&lt;br /&gt;
http://yelp.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.yelp.com/biz/coffee-to-the-people-san-francisco&lt;br /&gt;
&lt;br /&gt;
==Use cases==&lt;br /&gt;
Here are some example use cases for sharing properties from a container into multiple child microformats:&lt;br /&gt;
&lt;br /&gt;
===Multiple reviews of the same item===&lt;br /&gt;
As demonstrated by the above real world examples, many sites publish a page for a single item, listing multiple reviews of that item (e.g. Amazon, Kelkoo, Yelp, Yahoo! Location etc.). The item appears once at the top of the page. The reviews follow. [[hReview]]'s current requirement is that the &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; be referenced from every review using the include-pattern. This requires duplicating some amount of content (most logically, the name of the reviewed item). This has raised objections by implementers, and usually imposes a CSS-dependency to hide the repeated content.&lt;br /&gt;
&lt;br /&gt;
===Reviews and review aggregate of the same item===&lt;br /&gt;
Same as above, a single page includes a few reviews and a single reviews aggregate for a single business. In some implementations (yelp) the aggregate result number is contained inside the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt;. Reviews that use the include pattern to include the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; of the business, are also including a second &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; microformat, resulting in two ratings for the same &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Shared hCalendar Properties===&lt;br /&gt;
Yahoo! TV Listings marks up television programme listings using hCalendar. The &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; field of the event is the channel on which the show is broadcast: e.g. &amp;lt;code&amp;gt;&amp;amp;lt;span class='location'&amp;gt;BBC 1&amp;amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* ‘BBC 1’ is the heading for that channels listing page. The information is published ''once'' in the page.&lt;br /&gt;
* Each scheduled programme on the page is a &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
* Using current hCalendar semantics, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; must be included in every &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the ‘BBC 1’ content at the top of the page, not part of the programme content, the content either has to be repeated and hidden in the presentation layer, or current microformats constructs such as the [[include-pattern]] need to be used to invisibly reference the original mention of ‘BBC 1’.&lt;br /&gt;
&lt;br /&gt;
Repeating content is unacceptable, and the include-pattern is a messy, hacky mark-up pattern. Embracing the concept of the container would match the publishing pattern of the site, without repeating content or including invisible pointers.&lt;br /&gt;
&lt;br /&gt;
'''ideally this markup proposal would be moved to the &amp;quot;markup proposals&amp;quot; section below, separate from the &amp;quot;Use Cases&amp;quot; section, so that multiple varying proposals could be grouped together to compare, rather than intermingling them with the list of use cases.'''&lt;br /&gt;
&lt;br /&gt;
.e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class='vcalendar'&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class='location'&amp;gt;BBC 2&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Gardener's World&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T20:30:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 8:30pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Have I Got News For You&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T21:00:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 9:00pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; is promoted to being a property of the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt;, and is the default location for all the contained events.&lt;br /&gt;
&lt;br /&gt;
This could also apply to the &amp;lt;code&amp;gt;organizer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;attendees&amp;lt;/code&amp;gt;, and others. With further explanation and [[value-class-pattern|date-time separation]], you could event declare the day of the week the the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; and the time-of-day in the &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;. The basic principal is illustrated, though.&lt;br /&gt;
&lt;br /&gt;
Uses for this pattern:&lt;br /&gt;
* Broadcast listings for a single channel/station&lt;br /&gt;
* Concert listings at a single venue&lt;br /&gt;
* Concert listings for a single act (e.g. ‘Doves in Concert’ is the event &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; for multiple events at different &amp;lt;code&amp;gt;locations&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
This of course, extends the use of an existing container.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Shared Aspects of Containers==&lt;br /&gt;
If containers become a more strongly adopted concept in microformats, they should behave consistently across formats (hence documenting these two examples here, rather than just as separate issues for both hReview and hCalendar).&lt;br /&gt;
&lt;br /&gt;
Things that should be consistent and predictable:&lt;br /&gt;
&lt;br /&gt;
* Inheriting an property into a microformat item within the container&lt;br /&gt;
* Contained items ''overriding'' one or more inherited property&lt;br /&gt;
&lt;br /&gt;
== markup proposals ==&lt;br /&gt;
=== hreview-set ===&lt;br /&gt;
One solution to the problem of multiple reviews of the same item could be to wrap each &amp;lt;code&amp;gt;hReview&amp;lt;/code&amp;gt; in a container (hypothetically, &amp;lt;code&amp;gt;hreview-set&amp;lt;/code&amp;gt;. The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; is a child of the set, and is inherited by each &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; contained within.&lt;br /&gt;
&lt;br /&gt;
=== hcard as a container ===&lt;br /&gt;
&amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; can contain associated information like reviews and aggregates. &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;s inside an &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; do not need to specify item.&lt;br /&gt;
This also extends to other microformats that can may contain reviews, such as hproduct.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcard&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hcontainer===&lt;br /&gt;
A container microformat. Inside a container, a microformat that requires another microformat as a child (such as hreview requiring an hcard), can resolve this association by sibling relationship (as opposed to parent child relationship).&lt;br /&gt;
When a container includes &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;hreview-aggregate&amp;lt;/code&amp;gt;, it also requires a child &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In the example below, the item is hcard, a similar example can be written for hproduct. &amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcontainer&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;item hcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== item as a container ===&lt;br /&gt;
The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; microformat is currently used inside &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;s. Use this existing micformat as a container as well. This makes the specification slightly more complicated, since &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; will be allowed as a parent of &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; as well as a child. This is basically the same proposal as above, but using the name &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; for the container, instead of a dedicated name.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;item hcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== hreview rating and hreview-aggregate rating use different names ===&lt;br /&gt;
Since the microformat &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; is used for both, an &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; that includes an &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; which contains aggregates, effectively imports a second rating. This can be solved by having different names for hreview rating and hreview-aggregate rating. This is not really a container proposal, but it addresses issues of the hreview-aggregate which is currently a container for item.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcard item&amp;quot; id=&amp;quot;review_item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;!-- average rating --&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;average-rating&amp;quot;&amp;gt;5&amp;lt;/span&amp;gt; stars&lt;br /&gt;
   based on &amp;lt;span class=&amp;quot;review-count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;span class=&amp;quot;type microformat_detail&amp;quot;&amp;gt;business&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;!-- single rating --&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;rating&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt; stars&lt;br /&gt;
   &amp;lt;!-- include pattern --&amp;gt;&lt;br /&gt;
   &amp;lt;a class=&amp;quot;item microformat_detail&amp;quot; href=&amp;quot;#review_item&amp;quot;&amp;gt;Aziza&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[hReview]]&lt;br /&gt;
* [[hCalendar]]&lt;br /&gt;
* [[hListing]]&lt;/div&gt;</summary>
		<author><name>Elli</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39072</id>
		<title>container-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39072"/>
		<updated>2009-06-11T04:43:35Z</updated>

		<summary type="html">&lt;p&gt;Elli: /* hreview rating and hreview-aggregate rating use different names */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;Containers&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page exists to brainstorm around the concept of ‘containers’ in microformats.&lt;br /&gt;
&lt;br /&gt;
==What's a Container?==&lt;br /&gt;
&lt;br /&gt;
A ‘container’ is a root element that contains multiple microformat items within it. It groups those items together, but could also be used to provide additional or shared semantics between those items.&lt;br /&gt;
&lt;br /&gt;
Some microformats already define containers: &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; [[hCalendar]] is a container for events, the &amp;lt;code&amp;gt;hfeed&amp;lt;/code&amp;gt; container in [[hAtom]] contains entries, [[hAudio]] has a concept whereby &amp;lt;code&amp;gt;haudio&amp;lt;/code&amp;gt; concepts may be nested, and an [[hCard]] &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; may be a container for &amp;lt;code&amp;gt;agent vcard&amp;lt;/code&amp;gt;s.&lt;br /&gt;
&lt;br /&gt;
==Why is this being explored?==&lt;br /&gt;
There are a number of use cases for making better use of these container semantics, both in microformats like hCalendar that already have containers, and [[hReview]], where no current container concept exists.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== examples ==&lt;br /&gt;
As always it helps to start with examples of markup from actual websites that are already publishing container semantics. If this section gets too large, perhaps we can move it to [[container-examples]].&lt;br /&gt;
&lt;br /&gt;
=== container of reviews ===&lt;br /&gt;
The following website(s) contain a list of reviews which could/would benefit from a way of marking up not just the reviews as hReviews, but also the set of them as reviewing the same item.&lt;br /&gt;
==== SustainLane ====&lt;br /&gt;
http://www.sustainlane.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.sustainlane.com/reviews/aziza/TVLWN4ZKQLKTOIKFLWKBWFQ17DN8&lt;br /&gt;
&lt;br /&gt;
==== Yelp ====&lt;br /&gt;
http://yelp.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.yelp.com/biz/coffee-to-the-people-san-francisco&lt;br /&gt;
&lt;br /&gt;
==Use cases==&lt;br /&gt;
Here are some example use cases for sharing properties from a container into multiple child microformats:&lt;br /&gt;
&lt;br /&gt;
===Multiple reviews of the same item===&lt;br /&gt;
As demonstrated by the above real world examples, many sites publish a page for a single item, listing multiple reviews of that item (e.g. Amazon, Kelkoo, Yelp, Yahoo! Location etc.). The item appears once at the top of the page. The reviews follow. [[hReview]]'s current requirement is that the &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; be referenced from every review using the include-pattern. This requires duplicating some amount of content (most logically, the name of the reviewed item). This has raised objections by implementers, and usually imposes a CSS-dependency to hide the repeated content.&lt;br /&gt;
&lt;br /&gt;
===Reviews and review aggregate of the same item===&lt;br /&gt;
Same as above, a single page includes a few reviews and a single reviews aggregate for a single business. In some implementations (yelp) the aggregate result number is contained inside the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt;. Reviews that use the include pattern to include the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; of the business, are also including a second &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; microformat, resulting in two ratings for the same &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Shared hCalendar Properties===&lt;br /&gt;
Yahoo! TV Listings marks up television programme listings using hCalendar. The &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; field of the event is the channel on which the show is broadcast: e.g. &amp;lt;code&amp;gt;&amp;amp;lt;span class='location'&amp;gt;BBC 1&amp;amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* ‘BBC 1’ is the heading for that channels listing page. The information is published ''once'' in the page.&lt;br /&gt;
* Each scheduled programme on the page is a &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
* Using current hCalendar semantics, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; must be included in every &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the ‘BBC 1’ content at the top of the page, not part of the programme content, the content either has to be repeated and hidden in the presentation layer, or current microformats constructs such as the [[include-pattern]] need to be used to invisibly reference the original mention of ‘BBC 1’.&lt;br /&gt;
&lt;br /&gt;
Repeating content is unacceptable, and the include-pattern is a messy, hacky mark-up pattern. Embracing the concept of the container would match the publishing pattern of the site, without repeating content or including invisible pointers.&lt;br /&gt;
&lt;br /&gt;
'''ideally this markup proposal would be moved to the &amp;quot;markup proposals&amp;quot; section below, separate from the &amp;quot;Use Cases&amp;quot; section, so that multiple varying proposals could be grouped together to compare, rather than intermingling them with the list of use cases.'''&lt;br /&gt;
&lt;br /&gt;
.e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class='vcalendar'&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class='location'&amp;gt;BBC 2&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Gardener's World&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T20:30:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 8:30pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Have I Got News For You&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T21:00:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 9:00pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; is promoted to being a property of the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt;, and is the default location for all the contained events.&lt;br /&gt;
&lt;br /&gt;
This could also apply to the &amp;lt;code&amp;gt;organizer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;attendees&amp;lt;/code&amp;gt;, and others. With further explanation and [[value-class-pattern|date-time separation]], you could event declare the day of the week the the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; and the time-of-day in the &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;. The basic principal is illustrated, though.&lt;br /&gt;
&lt;br /&gt;
Uses for this pattern:&lt;br /&gt;
* Broadcast listings for a single channel/station&lt;br /&gt;
* Concert listings at a single venue&lt;br /&gt;
* Concert listings for a single act (e.g. ‘Doves in Concert’ is the event &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; for multiple events at different &amp;lt;code&amp;gt;locations&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
This of course, extends the use of an existing container.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Shared Aspects of Containers==&lt;br /&gt;
If containers become a more strongly adopted concept in microformats, they should behave consistently across formats (hence documenting these two examples here, rather than just as separate issues for both hReview and hCalendar).&lt;br /&gt;
&lt;br /&gt;
Things that should be consistent and predictable:&lt;br /&gt;
&lt;br /&gt;
* Inheriting an property into a microformat item within the container&lt;br /&gt;
* Contained items ''overriding'' one or more inherited property&lt;br /&gt;
&lt;br /&gt;
== markup proposals ==&lt;br /&gt;
=== hreview-set ===&lt;br /&gt;
One solution to the problem of multiple reviews of the same item could be to wrap each &amp;lt;code&amp;gt;hReview&amp;lt;/code&amp;gt; in a container (hypothetically, &amp;lt;code&amp;gt;hreview-set&amp;lt;/code&amp;gt;. The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; is a child of the set, and is inherited by each &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; contained within.&lt;br /&gt;
&lt;br /&gt;
=== hcard as a container ===&lt;br /&gt;
&amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; can contain associated information like reviews and aggregates. &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;s inside an &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; do not need to specify item.&lt;br /&gt;
This also extends to other microformats that can may contain reviews, such as hproduct.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcard&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hcontainer===&lt;br /&gt;
A container microformat. Inside a container, a microformat that requires another microformat as a child (such as hreview requiring an hcard), can resolve this association by sibling relationship (as opposed to parent child relationship).&lt;br /&gt;
When a container includes &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;hreview-aggregate&amp;lt;/code&amp;gt;, it also requires a child &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In the example below, the item is hcard, a similar example can be written for hproduct. &amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcontainer&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;item hcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== item as a container ===&lt;br /&gt;
The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; microformat is currently used inside &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;s. Use this existing micformat as a container as well. This makes the specification slightly more complicated, since &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; will be allowed as a parent of &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; as well as a child. This is basically the same proposal as above, but using the name &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; for the container, instead of a dedicated name.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;item hcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== hreview rating and hreview-aggregate rating use different names ===&lt;br /&gt;
Since the microformat &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; is used for both, an &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; that includes an &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; which contains aggregates, effectively imports a second rating. This can be solved by having different names for hreview rating and hreview-aggregate rating.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcard item&amp;quot; id=&amp;quot;review_item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;!-- average rating --&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;average-rating&amp;quot;&amp;gt;5&amp;lt;/span&amp;gt; stars&lt;br /&gt;
   based on &amp;lt;span class=&amp;quot;review-count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;span class=&amp;quot;type microformat_detail&amp;quot;&amp;gt;business&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;!-- single rating --&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;rating&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt; stars&lt;br /&gt;
   &amp;lt;!-- include pattern --&amp;gt;&lt;br /&gt;
   &amp;lt;a class=&amp;quot;item microformat_detail&amp;quot; href=&amp;quot;#review_item&amp;quot;&amp;gt;Aziza&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[hReview]]&lt;br /&gt;
* [[hCalendar]]&lt;br /&gt;
* [[hListing]]&lt;/div&gt;</summary>
		<author><name>Elli</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39071</id>
		<title>container-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39071"/>
		<updated>2009-06-11T04:39:47Z</updated>

		<summary type="html">&lt;p&gt;Elli: /* hcard as a container */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;Containers&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page exists to brainstorm around the concept of ‘containers’ in microformats.&lt;br /&gt;
&lt;br /&gt;
==What's a Container?==&lt;br /&gt;
&lt;br /&gt;
A ‘container’ is a root element that contains multiple microformat items within it. It groups those items together, but could also be used to provide additional or shared semantics between those items.&lt;br /&gt;
&lt;br /&gt;
Some microformats already define containers: &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; [[hCalendar]] is a container for events, the &amp;lt;code&amp;gt;hfeed&amp;lt;/code&amp;gt; container in [[hAtom]] contains entries, [[hAudio]] has a concept whereby &amp;lt;code&amp;gt;haudio&amp;lt;/code&amp;gt; concepts may be nested, and an [[hCard]] &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; may be a container for &amp;lt;code&amp;gt;agent vcard&amp;lt;/code&amp;gt;s.&lt;br /&gt;
&lt;br /&gt;
==Why is this being explored?==&lt;br /&gt;
There are a number of use cases for making better use of these container semantics, both in microformats like hCalendar that already have containers, and [[hReview]], where no current container concept exists.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== examples ==&lt;br /&gt;
As always it helps to start with examples of markup from actual websites that are already publishing container semantics. If this section gets too large, perhaps we can move it to [[container-examples]].&lt;br /&gt;
&lt;br /&gt;
=== container of reviews ===&lt;br /&gt;
The following website(s) contain a list of reviews which could/would benefit from a way of marking up not just the reviews as hReviews, but also the set of them as reviewing the same item.&lt;br /&gt;
==== SustainLane ====&lt;br /&gt;
http://www.sustainlane.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.sustainlane.com/reviews/aziza/TVLWN4ZKQLKTOIKFLWKBWFQ17DN8&lt;br /&gt;
&lt;br /&gt;
==== Yelp ====&lt;br /&gt;
http://yelp.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.yelp.com/biz/coffee-to-the-people-san-francisco&lt;br /&gt;
&lt;br /&gt;
==Use cases==&lt;br /&gt;
Here are some example use cases for sharing properties from a container into multiple child microformats:&lt;br /&gt;
&lt;br /&gt;
===Multiple reviews of the same item===&lt;br /&gt;
As demonstrated by the above real world examples, many sites publish a page for a single item, listing multiple reviews of that item (e.g. Amazon, Kelkoo, Yelp, Yahoo! Location etc.). The item appears once at the top of the page. The reviews follow. [[hReview]]'s current requirement is that the &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; be referenced from every review using the include-pattern. This requires duplicating some amount of content (most logically, the name of the reviewed item). This has raised objections by implementers, and usually imposes a CSS-dependency to hide the repeated content.&lt;br /&gt;
&lt;br /&gt;
===Reviews and review aggregate of the same item===&lt;br /&gt;
Same as above, a single page includes a few reviews and a single reviews aggregate for a single business. In some implementations (yelp) the aggregate result number is contained inside the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt;. Reviews that use the include pattern to include the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; of the business, are also including a second &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; microformat, resulting in two ratings for the same &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Shared hCalendar Properties===&lt;br /&gt;
Yahoo! TV Listings marks up television programme listings using hCalendar. The &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; field of the event is the channel on which the show is broadcast: e.g. &amp;lt;code&amp;gt;&amp;amp;lt;span class='location'&amp;gt;BBC 1&amp;amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* ‘BBC 1’ is the heading for that channels listing page. The information is published ''once'' in the page.&lt;br /&gt;
* Each scheduled programme on the page is a &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
* Using current hCalendar semantics, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; must be included in every &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the ‘BBC 1’ content at the top of the page, not part of the programme content, the content either has to be repeated and hidden in the presentation layer, or current microformats constructs such as the [[include-pattern]] need to be used to invisibly reference the original mention of ‘BBC 1’.&lt;br /&gt;
&lt;br /&gt;
Repeating content is unacceptable, and the include-pattern is a messy, hacky mark-up pattern. Embracing the concept of the container would match the publishing pattern of the site, without repeating content or including invisible pointers.&lt;br /&gt;
&lt;br /&gt;
'''ideally this markup proposal would be moved to the &amp;quot;markup proposals&amp;quot; section below, separate from the &amp;quot;Use Cases&amp;quot; section, so that multiple varying proposals could be grouped together to compare, rather than intermingling them with the list of use cases.'''&lt;br /&gt;
&lt;br /&gt;
.e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class='vcalendar'&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class='location'&amp;gt;BBC 2&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Gardener's World&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T20:30:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 8:30pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Have I Got News For You&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T21:00:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 9:00pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; is promoted to being a property of the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt;, and is the default location for all the contained events.&lt;br /&gt;
&lt;br /&gt;
This could also apply to the &amp;lt;code&amp;gt;organizer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;attendees&amp;lt;/code&amp;gt;, and others. With further explanation and [[value-class-pattern|date-time separation]], you could event declare the day of the week the the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; and the time-of-day in the &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;. The basic principal is illustrated, though.&lt;br /&gt;
&lt;br /&gt;
Uses for this pattern:&lt;br /&gt;
* Broadcast listings for a single channel/station&lt;br /&gt;
* Concert listings at a single venue&lt;br /&gt;
* Concert listings for a single act (e.g. ‘Doves in Concert’ is the event &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; for multiple events at different &amp;lt;code&amp;gt;locations&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
This of course, extends the use of an existing container.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Shared Aspects of Containers==&lt;br /&gt;
If containers become a more strongly adopted concept in microformats, they should behave consistently across formats (hence documenting these two examples here, rather than just as separate issues for both hReview and hCalendar).&lt;br /&gt;
&lt;br /&gt;
Things that should be consistent and predictable:&lt;br /&gt;
&lt;br /&gt;
* Inheriting an property into a microformat item within the container&lt;br /&gt;
* Contained items ''overriding'' one or more inherited property&lt;br /&gt;
&lt;br /&gt;
== markup proposals ==&lt;br /&gt;
=== hreview-set ===&lt;br /&gt;
One solution to the problem of multiple reviews of the same item could be to wrap each &amp;lt;code&amp;gt;hReview&amp;lt;/code&amp;gt; in a container (hypothetically, &amp;lt;code&amp;gt;hreview-set&amp;lt;/code&amp;gt;. The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; is a child of the set, and is inherited by each &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; contained within.&lt;br /&gt;
&lt;br /&gt;
=== hcard as a container ===&lt;br /&gt;
&amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; can contain associated information like reviews and aggregates. &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;s inside an &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; do not need to specify item.&lt;br /&gt;
This also extends to other microformats that can may contain reviews, such as hproduct.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcard&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hcontainer===&lt;br /&gt;
A container microformat. Inside a container, a microformat that requires another microformat as a child (such as hreview requiring an hcard), can resolve this association by sibling relationship (as opposed to parent child relationship).&lt;br /&gt;
When a container includes &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;hreview-aggregate&amp;lt;/code&amp;gt;, it also requires a child &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In the example below, the item is hcard, a similar example can be written for hproduct. &amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcontainer&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;item hcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== item as a container ===&lt;br /&gt;
The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; microformat is currently used inside &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;s. Use this existing micformat as a container as well. This makes the specification slightly more complicated, since &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; will be allowed as a parent of &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; as well as a child. This is basically the same proposal as above, but using the name &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; for the container, instead of a dedicated name.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;item hcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== hreview rating and hreview-aggregate rating use different names ===&lt;br /&gt;
Since the microformat &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; is used for both, an &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; that includes an &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; which contains aggregates, effectively imports a second rating. This can be solved by having different names for hreview rating and hreview-aggregate rating.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcard item&amp;quot; id=&amp;quot;review_item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;average-rating&amp;quot;&amp;gt;5&amp;lt;/span&amp;gt; stars&lt;br /&gt;
   based on &amp;lt;span class=&amp;quot;review-count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;span class=&amp;quot;type microformat_detail&amp;quot;&amp;gt;business&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&lt;br /&gt;
   &amp;lt;!-- include pattern --&amp;gt;&lt;br /&gt;
   &amp;lt;a class=&amp;quot;item microformat_detail&amp;quot; href=&amp;quot;#review_item&amp;quot;&amp;gt;Aziza&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[hReview]]&lt;br /&gt;
* [[hCalendar]]&lt;br /&gt;
* [[hListing]]&lt;/div&gt;</summary>
		<author><name>Elli</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39070</id>
		<title>container-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39070"/>
		<updated>2009-06-11T04:34:55Z</updated>

		<summary type="html">&lt;p&gt;Elli: /* hcontainer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;Containers&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page exists to brainstorm around the concept of ‘containers’ in microformats.&lt;br /&gt;
&lt;br /&gt;
==What's a Container?==&lt;br /&gt;
&lt;br /&gt;
A ‘container’ is a root element that contains multiple microformat items within it. It groups those items together, but could also be used to provide additional or shared semantics between those items.&lt;br /&gt;
&lt;br /&gt;
Some microformats already define containers: &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; [[hCalendar]] is a container for events, the &amp;lt;code&amp;gt;hfeed&amp;lt;/code&amp;gt; container in [[hAtom]] contains entries, [[hAudio]] has a concept whereby &amp;lt;code&amp;gt;haudio&amp;lt;/code&amp;gt; concepts may be nested, and an [[hCard]] &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; may be a container for &amp;lt;code&amp;gt;agent vcard&amp;lt;/code&amp;gt;s.&lt;br /&gt;
&lt;br /&gt;
==Why is this being explored?==&lt;br /&gt;
There are a number of use cases for making better use of these container semantics, both in microformats like hCalendar that already have containers, and [[hReview]], where no current container concept exists.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== examples ==&lt;br /&gt;
As always it helps to start with examples of markup from actual websites that are already publishing container semantics. If this section gets too large, perhaps we can move it to [[container-examples]].&lt;br /&gt;
&lt;br /&gt;
=== container of reviews ===&lt;br /&gt;
The following website(s) contain a list of reviews which could/would benefit from a way of marking up not just the reviews as hReviews, but also the set of them as reviewing the same item.&lt;br /&gt;
==== SustainLane ====&lt;br /&gt;
http://www.sustainlane.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.sustainlane.com/reviews/aziza/TVLWN4ZKQLKTOIKFLWKBWFQ17DN8&lt;br /&gt;
&lt;br /&gt;
==== Yelp ====&lt;br /&gt;
http://yelp.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.yelp.com/biz/coffee-to-the-people-san-francisco&lt;br /&gt;
&lt;br /&gt;
==Use cases==&lt;br /&gt;
Here are some example use cases for sharing properties from a container into multiple child microformats:&lt;br /&gt;
&lt;br /&gt;
===Multiple reviews of the same item===&lt;br /&gt;
As demonstrated by the above real world examples, many sites publish a page for a single item, listing multiple reviews of that item (e.g. Amazon, Kelkoo, Yelp, Yahoo! Location etc.). The item appears once at the top of the page. The reviews follow. [[hReview]]'s current requirement is that the &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; be referenced from every review using the include-pattern. This requires duplicating some amount of content (most logically, the name of the reviewed item). This has raised objections by implementers, and usually imposes a CSS-dependency to hide the repeated content.&lt;br /&gt;
&lt;br /&gt;
===Reviews and review aggregate of the same item===&lt;br /&gt;
Same as above, a single page includes a few reviews and a single reviews aggregate for a single business. In some implementations (yelp) the aggregate result number is contained inside the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt;. Reviews that use the include pattern to include the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; of the business, are also including a second &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; microformat, resulting in two ratings for the same &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Shared hCalendar Properties===&lt;br /&gt;
Yahoo! TV Listings marks up television programme listings using hCalendar. The &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; field of the event is the channel on which the show is broadcast: e.g. &amp;lt;code&amp;gt;&amp;amp;lt;span class='location'&amp;gt;BBC 1&amp;amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* ‘BBC 1’ is the heading for that channels listing page. The information is published ''once'' in the page.&lt;br /&gt;
* Each scheduled programme on the page is a &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
* Using current hCalendar semantics, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; must be included in every &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the ‘BBC 1’ content at the top of the page, not part of the programme content, the content either has to be repeated and hidden in the presentation layer, or current microformats constructs such as the [[include-pattern]] need to be used to invisibly reference the original mention of ‘BBC 1’.&lt;br /&gt;
&lt;br /&gt;
Repeating content is unacceptable, and the include-pattern is a messy, hacky mark-up pattern. Embracing the concept of the container would match the publishing pattern of the site, without repeating content or including invisible pointers.&lt;br /&gt;
&lt;br /&gt;
'''ideally this markup proposal would be moved to the &amp;quot;markup proposals&amp;quot; section below, separate from the &amp;quot;Use Cases&amp;quot; section, so that multiple varying proposals could be grouped together to compare, rather than intermingling them with the list of use cases.'''&lt;br /&gt;
&lt;br /&gt;
.e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class='vcalendar'&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class='location'&amp;gt;BBC 2&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Gardener's World&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T20:30:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 8:30pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Have I Got News For You&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T21:00:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 9:00pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; is promoted to being a property of the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt;, and is the default location for all the contained events.&lt;br /&gt;
&lt;br /&gt;
This could also apply to the &amp;lt;code&amp;gt;organizer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;attendees&amp;lt;/code&amp;gt;, and others. With further explanation and [[value-class-pattern|date-time separation]], you could event declare the day of the week the the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; and the time-of-day in the &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;. The basic principal is illustrated, though.&lt;br /&gt;
&lt;br /&gt;
Uses for this pattern:&lt;br /&gt;
* Broadcast listings for a single channel/station&lt;br /&gt;
* Concert listings at a single venue&lt;br /&gt;
* Concert listings for a single act (e.g. ‘Doves in Concert’ is the event &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; for multiple events at different &amp;lt;code&amp;gt;locations&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
This of course, extends the use of an existing container.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Shared Aspects of Containers==&lt;br /&gt;
If containers become a more strongly adopted concept in microformats, they should behave consistently across formats (hence documenting these two examples here, rather than just as separate issues for both hReview and hCalendar).&lt;br /&gt;
&lt;br /&gt;
Things that should be consistent and predictable:&lt;br /&gt;
&lt;br /&gt;
* Inheriting an property into a microformat item within the container&lt;br /&gt;
* Contained items ''overriding'' one or more inherited property&lt;br /&gt;
&lt;br /&gt;
== markup proposals ==&lt;br /&gt;
=== hreview-set ===&lt;br /&gt;
One solution to the problem of multiple reviews of the same item could be to wrap each &amp;lt;code&amp;gt;hReview&amp;lt;/code&amp;gt; in a container (hypothetically, &amp;lt;code&amp;gt;hreview-set&amp;lt;/code&amp;gt;. The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; is a child of the set, and is inherited by each &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; contained within.&lt;br /&gt;
&lt;br /&gt;
=== hcard as a container ===&lt;br /&gt;
&amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; can contain associated information like reviews and aggregates. &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;s inside an &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; to not need to specify item.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcard&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hcontainer===&lt;br /&gt;
A container microformat. Inside a container, a microformat that requires another microformat as a child (such as hreview requiring an hcard), can resolve this association by sibling relationship (as opposed to parent child relationship).&lt;br /&gt;
When a container includes &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;hreview-aggregate&amp;lt;/code&amp;gt;, it also requires a child &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In the example below, the item is hcard, a similar example can be written for hproduct. &amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcontainer&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;item hcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== item as a container ===&lt;br /&gt;
The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; microformat is currently used inside &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;s. Use this existing micformat as a container as well. This makes the specification slightly more complicated, since &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; will be allowed as a parent of &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; as well as a child. This is basically the same proposal as above, but using the name &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; for the container, instead of a dedicated name.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;item hcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== hreview rating and hreview-aggregate rating use different names ===&lt;br /&gt;
Since the microformat &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; is used for both, an &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; that includes an &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; which contains aggregates, effectively imports a second rating. This can be solved by having different names for hreview rating and hreview-aggregate rating.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcard item&amp;quot; id=&amp;quot;review_item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;average-rating&amp;quot;&amp;gt;5&amp;lt;/span&amp;gt; stars&lt;br /&gt;
   based on &amp;lt;span class=&amp;quot;review-count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;span class=&amp;quot;type microformat_detail&amp;quot;&amp;gt;business&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&lt;br /&gt;
   &amp;lt;!-- include pattern --&amp;gt;&lt;br /&gt;
   &amp;lt;a class=&amp;quot;item microformat_detail&amp;quot; href=&amp;quot;#review_item&amp;quot;&amp;gt;Aziza&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[hReview]]&lt;br /&gt;
* [[hCalendar]]&lt;br /&gt;
* [[hListing]]&lt;/div&gt;</summary>
		<author><name>Elli</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39069</id>
		<title>container-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39069"/>
		<updated>2009-06-11T04:33:12Z</updated>

		<summary type="html">&lt;p&gt;Elli: /* hcontainer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;Containers&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page exists to brainstorm around the concept of ‘containers’ in microformats.&lt;br /&gt;
&lt;br /&gt;
==What's a Container?==&lt;br /&gt;
&lt;br /&gt;
A ‘container’ is a root element that contains multiple microformat items within it. It groups those items together, but could also be used to provide additional or shared semantics between those items.&lt;br /&gt;
&lt;br /&gt;
Some microformats already define containers: &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; [[hCalendar]] is a container for events, the &amp;lt;code&amp;gt;hfeed&amp;lt;/code&amp;gt; container in [[hAtom]] contains entries, [[hAudio]] has a concept whereby &amp;lt;code&amp;gt;haudio&amp;lt;/code&amp;gt; concepts may be nested, and an [[hCard]] &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; may be a container for &amp;lt;code&amp;gt;agent vcard&amp;lt;/code&amp;gt;s.&lt;br /&gt;
&lt;br /&gt;
==Why is this being explored?==&lt;br /&gt;
There are a number of use cases for making better use of these container semantics, both in microformats like hCalendar that already have containers, and [[hReview]], where no current container concept exists.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== examples ==&lt;br /&gt;
As always it helps to start with examples of markup from actual websites that are already publishing container semantics. If this section gets too large, perhaps we can move it to [[container-examples]].&lt;br /&gt;
&lt;br /&gt;
=== container of reviews ===&lt;br /&gt;
The following website(s) contain a list of reviews which could/would benefit from a way of marking up not just the reviews as hReviews, but also the set of them as reviewing the same item.&lt;br /&gt;
==== SustainLane ====&lt;br /&gt;
http://www.sustainlane.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.sustainlane.com/reviews/aziza/TVLWN4ZKQLKTOIKFLWKBWFQ17DN8&lt;br /&gt;
&lt;br /&gt;
==== Yelp ====&lt;br /&gt;
http://yelp.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.yelp.com/biz/coffee-to-the-people-san-francisco&lt;br /&gt;
&lt;br /&gt;
==Use cases==&lt;br /&gt;
Here are some example use cases for sharing properties from a container into multiple child microformats:&lt;br /&gt;
&lt;br /&gt;
===Multiple reviews of the same item===&lt;br /&gt;
As demonstrated by the above real world examples, many sites publish a page for a single item, listing multiple reviews of that item (e.g. Amazon, Kelkoo, Yelp, Yahoo! Location etc.). The item appears once at the top of the page. The reviews follow. [[hReview]]'s current requirement is that the &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; be referenced from every review using the include-pattern. This requires duplicating some amount of content (most logically, the name of the reviewed item). This has raised objections by implementers, and usually imposes a CSS-dependency to hide the repeated content.&lt;br /&gt;
&lt;br /&gt;
===Reviews and review aggregate of the same item===&lt;br /&gt;
Same as above, a single page includes a few reviews and a single reviews aggregate for a single business. In some implementations (yelp) the aggregate result number is contained inside the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt;. Reviews that use the include pattern to include the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; of the business, are also including a second &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; microformat, resulting in two ratings for the same &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Shared hCalendar Properties===&lt;br /&gt;
Yahoo! TV Listings marks up television programme listings using hCalendar. The &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; field of the event is the channel on which the show is broadcast: e.g. &amp;lt;code&amp;gt;&amp;amp;lt;span class='location'&amp;gt;BBC 1&amp;amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* ‘BBC 1’ is the heading for that channels listing page. The information is published ''once'' in the page.&lt;br /&gt;
* Each scheduled programme on the page is a &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
* Using current hCalendar semantics, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; must be included in every &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the ‘BBC 1’ content at the top of the page, not part of the programme content, the content either has to be repeated and hidden in the presentation layer, or current microformats constructs such as the [[include-pattern]] need to be used to invisibly reference the original mention of ‘BBC 1’.&lt;br /&gt;
&lt;br /&gt;
Repeating content is unacceptable, and the include-pattern is a messy, hacky mark-up pattern. Embracing the concept of the container would match the publishing pattern of the site, without repeating content or including invisible pointers.&lt;br /&gt;
&lt;br /&gt;
'''ideally this markup proposal would be moved to the &amp;quot;markup proposals&amp;quot; section below, separate from the &amp;quot;Use Cases&amp;quot; section, so that multiple varying proposals could be grouped together to compare, rather than intermingling them with the list of use cases.'''&lt;br /&gt;
&lt;br /&gt;
.e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class='vcalendar'&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class='location'&amp;gt;BBC 2&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Gardener's World&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T20:30:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 8:30pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Have I Got News For You&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T21:00:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 9:00pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; is promoted to being a property of the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt;, and is the default location for all the contained events.&lt;br /&gt;
&lt;br /&gt;
This could also apply to the &amp;lt;code&amp;gt;organizer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;attendees&amp;lt;/code&amp;gt;, and others. With further explanation and [[value-class-pattern|date-time separation]], you could event declare the day of the week the the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; and the time-of-day in the &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;. The basic principal is illustrated, though.&lt;br /&gt;
&lt;br /&gt;
Uses for this pattern:&lt;br /&gt;
* Broadcast listings for a single channel/station&lt;br /&gt;
* Concert listings at a single venue&lt;br /&gt;
* Concert listings for a single act (e.g. ‘Doves in Concert’ is the event &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; for multiple events at different &amp;lt;code&amp;gt;locations&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
This of course, extends the use of an existing container.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Shared Aspects of Containers==&lt;br /&gt;
If containers become a more strongly adopted concept in microformats, they should behave consistently across formats (hence documenting these two examples here, rather than just as separate issues for both hReview and hCalendar).&lt;br /&gt;
&lt;br /&gt;
Things that should be consistent and predictable:&lt;br /&gt;
&lt;br /&gt;
* Inheriting an property into a microformat item within the container&lt;br /&gt;
* Contained items ''overriding'' one or more inherited property&lt;br /&gt;
&lt;br /&gt;
== markup proposals ==&lt;br /&gt;
=== hreview-set ===&lt;br /&gt;
One solution to the problem of multiple reviews of the same item could be to wrap each &amp;lt;code&amp;gt;hReview&amp;lt;/code&amp;gt; in a container (hypothetically, &amp;lt;code&amp;gt;hreview-set&amp;lt;/code&amp;gt;. The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; is a child of the set, and is inherited by each &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; contained within.&lt;br /&gt;
&lt;br /&gt;
=== hcard as a container ===&lt;br /&gt;
&amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; can contain associated information like reviews and aggregates. &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;s inside an &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; to not need to specify item.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcard&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hcontainer===&lt;br /&gt;
A container microformat. Inside a container, a microformat that requires another microformat as a child (such as hreview requiring an hcard), can resolve this association by sibling relationship (as opposed to parent child relationship).&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcontainer&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;item hcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== item as a container ===&lt;br /&gt;
The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; microformat is currently used inside &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;s. Use this existing micformat as a container as well. This makes the specification slightly more complicated, since &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; will be allowed as a parent of &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; as well as a child. This is basically the same proposal as above, but using the name &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; for the container, instead of a dedicated name.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;item hcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== hreview rating and hreview-aggregate rating use different names ===&lt;br /&gt;
Since the microformat &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; is used for both, an &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; that includes an &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; which contains aggregates, effectively imports a second rating. This can be solved by having different names for hreview rating and hreview-aggregate rating.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcard item&amp;quot; id=&amp;quot;review_item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;average-rating&amp;quot;&amp;gt;5&amp;lt;/span&amp;gt; stars&lt;br /&gt;
   based on &amp;lt;span class=&amp;quot;review-count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;span class=&amp;quot;type microformat_detail&amp;quot;&amp;gt;business&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&lt;br /&gt;
   &amp;lt;!-- include pattern --&amp;gt;&lt;br /&gt;
   &amp;lt;a class=&amp;quot;item microformat_detail&amp;quot; href=&amp;quot;#review_item&amp;quot;&amp;gt;Aziza&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[hReview]]&lt;br /&gt;
* [[hCalendar]]&lt;br /&gt;
* [[hListing]]&lt;/div&gt;</summary>
		<author><name>Elli</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39068</id>
		<title>container-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39068"/>
		<updated>2009-06-11T04:27:37Z</updated>

		<summary type="html">&lt;p&gt;Elli: /* hcard as a container */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;Containers&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page exists to brainstorm around the concept of ‘containers’ in microformats.&lt;br /&gt;
&lt;br /&gt;
==What's a Container?==&lt;br /&gt;
&lt;br /&gt;
A ‘container’ is a root element that contains multiple microformat items within it. It groups those items together, but could also be used to provide additional or shared semantics between those items.&lt;br /&gt;
&lt;br /&gt;
Some microformats already define containers: &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; [[hCalendar]] is a container for events, the &amp;lt;code&amp;gt;hfeed&amp;lt;/code&amp;gt; container in [[hAtom]] contains entries, [[hAudio]] has a concept whereby &amp;lt;code&amp;gt;haudio&amp;lt;/code&amp;gt; concepts may be nested, and an [[hCard]] &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; may be a container for &amp;lt;code&amp;gt;agent vcard&amp;lt;/code&amp;gt;s.&lt;br /&gt;
&lt;br /&gt;
==Why is this being explored?==&lt;br /&gt;
There are a number of use cases for making better use of these container semantics, both in microformats like hCalendar that already have containers, and [[hReview]], where no current container concept exists.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== examples ==&lt;br /&gt;
As always it helps to start with examples of markup from actual websites that are already publishing container semantics. If this section gets too large, perhaps we can move it to [[container-examples]].&lt;br /&gt;
&lt;br /&gt;
=== container of reviews ===&lt;br /&gt;
The following website(s) contain a list of reviews which could/would benefit from a way of marking up not just the reviews as hReviews, but also the set of them as reviewing the same item.&lt;br /&gt;
==== SustainLane ====&lt;br /&gt;
http://www.sustainlane.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.sustainlane.com/reviews/aziza/TVLWN4ZKQLKTOIKFLWKBWFQ17DN8&lt;br /&gt;
&lt;br /&gt;
==== Yelp ====&lt;br /&gt;
http://yelp.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.yelp.com/biz/coffee-to-the-people-san-francisco&lt;br /&gt;
&lt;br /&gt;
==Use cases==&lt;br /&gt;
Here are some example use cases for sharing properties from a container into multiple child microformats:&lt;br /&gt;
&lt;br /&gt;
===Multiple reviews of the same item===&lt;br /&gt;
As demonstrated by the above real world examples, many sites publish a page for a single item, listing multiple reviews of that item (e.g. Amazon, Kelkoo, Yelp, Yahoo! Location etc.). The item appears once at the top of the page. The reviews follow. [[hReview]]'s current requirement is that the &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; be referenced from every review using the include-pattern. This requires duplicating some amount of content (most logically, the name of the reviewed item). This has raised objections by implementers, and usually imposes a CSS-dependency to hide the repeated content.&lt;br /&gt;
&lt;br /&gt;
===Reviews and review aggregate of the same item===&lt;br /&gt;
Same as above, a single page includes a few reviews and a single reviews aggregate for a single business. In some implementations (yelp) the aggregate result number is contained inside the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt;. Reviews that use the include pattern to include the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; of the business, are also including a second &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; microformat, resulting in two ratings for the same &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Shared hCalendar Properties===&lt;br /&gt;
Yahoo! TV Listings marks up television programme listings using hCalendar. The &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; field of the event is the channel on which the show is broadcast: e.g. &amp;lt;code&amp;gt;&amp;amp;lt;span class='location'&amp;gt;BBC 1&amp;amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* ‘BBC 1’ is the heading for that channels listing page. The information is published ''once'' in the page.&lt;br /&gt;
* Each scheduled programme on the page is a &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
* Using current hCalendar semantics, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; must be included in every &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the ‘BBC 1’ content at the top of the page, not part of the programme content, the content either has to be repeated and hidden in the presentation layer, or current microformats constructs such as the [[include-pattern]] need to be used to invisibly reference the original mention of ‘BBC 1’.&lt;br /&gt;
&lt;br /&gt;
Repeating content is unacceptable, and the include-pattern is a messy, hacky mark-up pattern. Embracing the concept of the container would match the publishing pattern of the site, without repeating content or including invisible pointers.&lt;br /&gt;
&lt;br /&gt;
'''ideally this markup proposal would be moved to the &amp;quot;markup proposals&amp;quot; section below, separate from the &amp;quot;Use Cases&amp;quot; section, so that multiple varying proposals could be grouped together to compare, rather than intermingling them with the list of use cases.'''&lt;br /&gt;
&lt;br /&gt;
.e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class='vcalendar'&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class='location'&amp;gt;BBC 2&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Gardener's World&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T20:30:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 8:30pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Have I Got News For You&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T21:00:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 9:00pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; is promoted to being a property of the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt;, and is the default location for all the contained events.&lt;br /&gt;
&lt;br /&gt;
This could also apply to the &amp;lt;code&amp;gt;organizer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;attendees&amp;lt;/code&amp;gt;, and others. With further explanation and [[value-class-pattern|date-time separation]], you could event declare the day of the week the the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; and the time-of-day in the &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;. The basic principal is illustrated, though.&lt;br /&gt;
&lt;br /&gt;
Uses for this pattern:&lt;br /&gt;
* Broadcast listings for a single channel/station&lt;br /&gt;
* Concert listings at a single venue&lt;br /&gt;
* Concert listings for a single act (e.g. ‘Doves in Concert’ is the event &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; for multiple events at different &amp;lt;code&amp;gt;locations&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
This of course, extends the use of an existing container.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Shared Aspects of Containers==&lt;br /&gt;
If containers become a more strongly adopted concept in microformats, they should behave consistently across formats (hence documenting these two examples here, rather than just as separate issues for both hReview and hCalendar).&lt;br /&gt;
&lt;br /&gt;
Things that should be consistent and predictable:&lt;br /&gt;
&lt;br /&gt;
* Inheriting an property into a microformat item within the container&lt;br /&gt;
* Contained items ''overriding'' one or more inherited property&lt;br /&gt;
&lt;br /&gt;
== markup proposals ==&lt;br /&gt;
=== hreview-set ===&lt;br /&gt;
One solution to the problem of multiple reviews of the same item could be to wrap each &amp;lt;code&amp;gt;hReview&amp;lt;/code&amp;gt; in a container (hypothetically, &amp;lt;code&amp;gt;hreview-set&amp;lt;/code&amp;gt;. The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; is a child of the set, and is inherited by each &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; contained within.&lt;br /&gt;
&lt;br /&gt;
=== hcard as a container ===&lt;br /&gt;
&amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; can contain associated information like reviews and aggregates. &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;s inside an &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; to not need to specify item.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcard&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hcontainer===&lt;br /&gt;
A container microformat. Inside a container, a microformat that requires another microformat as a child (such as hreview requiring an hcard), can resolve this association by sibling relationship (as opposed to parent child relationship).&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcontainer&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;item hcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt; ...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== item as a container ===&lt;br /&gt;
The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; microformat is currently used inside &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;s. Use this existing micformat as a container as well. This makes the specification slightly more complicated, since &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; will be allowed as a parent of &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; as well as a child. This is basically the same proposal as above, but using the name &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; for the container, instead of a dedicated name.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;item hcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== hreview rating and hreview-aggregate rating use different names ===&lt;br /&gt;
Since the microformat &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; is used for both, an &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; that includes an &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; which contains aggregates, effectively imports a second rating. This can be solved by having different names for hreview rating and hreview-aggregate rating.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcard item&amp;quot; id=&amp;quot;review_item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;average-rating&amp;quot;&amp;gt;5&amp;lt;/span&amp;gt; stars&lt;br /&gt;
   based on &amp;lt;span class=&amp;quot;review-count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;span class=&amp;quot;type microformat_detail&amp;quot;&amp;gt;business&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&lt;br /&gt;
   &amp;lt;!-- include pattern --&amp;gt;&lt;br /&gt;
   &amp;lt;a class=&amp;quot;item microformat_detail&amp;quot; href=&amp;quot;#review_item&amp;quot;&amp;gt;Aziza&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[hReview]]&lt;br /&gt;
* [[hCalendar]]&lt;br /&gt;
* [[hListing]]&lt;/div&gt;</summary>
		<author><name>Elli</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39067</id>
		<title>container-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39067"/>
		<updated>2009-06-11T04:26:12Z</updated>

		<summary type="html">&lt;p&gt;Elli: /* item as a container */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;Containers&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page exists to brainstorm around the concept of ‘containers’ in microformats.&lt;br /&gt;
&lt;br /&gt;
==What's a Container?==&lt;br /&gt;
&lt;br /&gt;
A ‘container’ is a root element that contains multiple microformat items within it. It groups those items together, but could also be used to provide additional or shared semantics between those items.&lt;br /&gt;
&lt;br /&gt;
Some microformats already define containers: &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; [[hCalendar]] is a container for events, the &amp;lt;code&amp;gt;hfeed&amp;lt;/code&amp;gt; container in [[hAtom]] contains entries, [[hAudio]] has a concept whereby &amp;lt;code&amp;gt;haudio&amp;lt;/code&amp;gt; concepts may be nested, and an [[hCard]] &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; may be a container for &amp;lt;code&amp;gt;agent vcard&amp;lt;/code&amp;gt;s.&lt;br /&gt;
&lt;br /&gt;
==Why is this being explored?==&lt;br /&gt;
There are a number of use cases for making better use of these container semantics, both in microformats like hCalendar that already have containers, and [[hReview]], where no current container concept exists.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== examples ==&lt;br /&gt;
As always it helps to start with examples of markup from actual websites that are already publishing container semantics. If this section gets too large, perhaps we can move it to [[container-examples]].&lt;br /&gt;
&lt;br /&gt;
=== container of reviews ===&lt;br /&gt;
The following website(s) contain a list of reviews which could/would benefit from a way of marking up not just the reviews as hReviews, but also the set of them as reviewing the same item.&lt;br /&gt;
==== SustainLane ====&lt;br /&gt;
http://www.sustainlane.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.sustainlane.com/reviews/aziza/TVLWN4ZKQLKTOIKFLWKBWFQ17DN8&lt;br /&gt;
&lt;br /&gt;
==== Yelp ====&lt;br /&gt;
http://yelp.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.yelp.com/biz/coffee-to-the-people-san-francisco&lt;br /&gt;
&lt;br /&gt;
==Use cases==&lt;br /&gt;
Here are some example use cases for sharing properties from a container into multiple child microformats:&lt;br /&gt;
&lt;br /&gt;
===Multiple reviews of the same item===&lt;br /&gt;
As demonstrated by the above real world examples, many sites publish a page for a single item, listing multiple reviews of that item (e.g. Amazon, Kelkoo, Yelp, Yahoo! Location etc.). The item appears once at the top of the page. The reviews follow. [[hReview]]'s current requirement is that the &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; be referenced from every review using the include-pattern. This requires duplicating some amount of content (most logically, the name of the reviewed item). This has raised objections by implementers, and usually imposes a CSS-dependency to hide the repeated content.&lt;br /&gt;
&lt;br /&gt;
===Reviews and review aggregate of the same item===&lt;br /&gt;
Same as above, a single page includes a few reviews and a single reviews aggregate for a single business. In some implementations (yelp) the aggregate result number is contained inside the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt;. Reviews that use the include pattern to include the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; of the business, are also including a second &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; microformat, resulting in two ratings for the same &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Shared hCalendar Properties===&lt;br /&gt;
Yahoo! TV Listings marks up television programme listings using hCalendar. The &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; field of the event is the channel on which the show is broadcast: e.g. &amp;lt;code&amp;gt;&amp;amp;lt;span class='location'&amp;gt;BBC 1&amp;amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* ‘BBC 1’ is the heading for that channels listing page. The information is published ''once'' in the page.&lt;br /&gt;
* Each scheduled programme on the page is a &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
* Using current hCalendar semantics, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; must be included in every &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the ‘BBC 1’ content at the top of the page, not part of the programme content, the content either has to be repeated and hidden in the presentation layer, or current microformats constructs such as the [[include-pattern]] need to be used to invisibly reference the original mention of ‘BBC 1’.&lt;br /&gt;
&lt;br /&gt;
Repeating content is unacceptable, and the include-pattern is a messy, hacky mark-up pattern. Embracing the concept of the container would match the publishing pattern of the site, without repeating content or including invisible pointers.&lt;br /&gt;
&lt;br /&gt;
'''ideally this markup proposal would be moved to the &amp;quot;markup proposals&amp;quot; section below, separate from the &amp;quot;Use Cases&amp;quot; section, so that multiple varying proposals could be grouped together to compare, rather than intermingling them with the list of use cases.'''&lt;br /&gt;
&lt;br /&gt;
.e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class='vcalendar'&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class='location'&amp;gt;BBC 2&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Gardener's World&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T20:30:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 8:30pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Have I Got News For You&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T21:00:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 9:00pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; is promoted to being a property of the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt;, and is the default location for all the contained events.&lt;br /&gt;
&lt;br /&gt;
This could also apply to the &amp;lt;code&amp;gt;organizer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;attendees&amp;lt;/code&amp;gt;, and others. With further explanation and [[value-class-pattern|date-time separation]], you could event declare the day of the week the the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; and the time-of-day in the &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;. The basic principal is illustrated, though.&lt;br /&gt;
&lt;br /&gt;
Uses for this pattern:&lt;br /&gt;
* Broadcast listings for a single channel/station&lt;br /&gt;
* Concert listings at a single venue&lt;br /&gt;
* Concert listings for a single act (e.g. ‘Doves in Concert’ is the event &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; for multiple events at different &amp;lt;code&amp;gt;locations&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
This of course, extends the use of an existing container.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Shared Aspects of Containers==&lt;br /&gt;
If containers become a more strongly adopted concept in microformats, they should behave consistently across formats (hence documenting these two examples here, rather than just as separate issues for both hReview and hCalendar).&lt;br /&gt;
&lt;br /&gt;
Things that should be consistent and predictable:&lt;br /&gt;
&lt;br /&gt;
* Inheriting an property into a microformat item within the container&lt;br /&gt;
* Contained items ''overriding'' one or more inherited property&lt;br /&gt;
&lt;br /&gt;
== markup proposals ==&lt;br /&gt;
=== hreview-set ===&lt;br /&gt;
One solution to the problem of multiple reviews of the same item could be to wrap each &amp;lt;code&amp;gt;hReview&amp;lt;/code&amp;gt; in a container (hypothetically, &amp;lt;code&amp;gt;hreview-set&amp;lt;/code&amp;gt;. The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; is a child of the set, and is inherited by each &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; contained within.&lt;br /&gt;
&lt;br /&gt;
=== hcard as a container ===&lt;br /&gt;
hcard can contain associated information like reviews and aggregates. hreviews inside an hcard to not need to specify item.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcard&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt; ...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== hcontainer===&lt;br /&gt;
A container microformat. Inside a container, a microformat that requires another microformat as a child (such as hreview requiring an hcard), can resolve this association by sibling relationship (as opposed to parent child relationship).&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcontainer&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;item hcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt; ...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== item as a container ===&lt;br /&gt;
The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; microformat is currently used inside &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;s. Use this existing micformat as a container as well. This makes the specification slightly more complicated, since &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; will be allowed as a parent of &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; as well as a child. This is basically the same proposal as above, but using the name &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; for the container, instead of a dedicated name.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;item hcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&amp;lt;!-- this hreview does not contain item --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== hreview rating and hreview-aggregate rating use different names ===&lt;br /&gt;
Since the microformat &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; is used for both, an &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; that includes an &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; which contains aggregates, effectively imports a second rating. This can be solved by having different names for hreview rating and hreview-aggregate rating.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcard item&amp;quot; id=&amp;quot;review_item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;average-rating&amp;quot;&amp;gt;5&amp;lt;/span&amp;gt; stars&lt;br /&gt;
   based on &amp;lt;span class=&amp;quot;review-count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;span class=&amp;quot;type microformat_detail&amp;quot;&amp;gt;business&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&lt;br /&gt;
   &amp;lt;!-- include pattern --&amp;gt;&lt;br /&gt;
   &amp;lt;a class=&amp;quot;item microformat_detail&amp;quot; href=&amp;quot;#review_item&amp;quot;&amp;gt;Aziza&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[hReview]]&lt;br /&gt;
* [[hCalendar]]&lt;br /&gt;
* [[hListing]]&lt;/div&gt;</summary>
		<author><name>Elli</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39066</id>
		<title>container-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39066"/>
		<updated>2009-06-11T04:16:49Z</updated>

		<summary type="html">&lt;p&gt;Elli: /* hcontainer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;Containers&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page exists to brainstorm around the concept of ‘containers’ in microformats.&lt;br /&gt;
&lt;br /&gt;
==What's a Container?==&lt;br /&gt;
&lt;br /&gt;
A ‘container’ is a root element that contains multiple microformat items within it. It groups those items together, but could also be used to provide additional or shared semantics between those items.&lt;br /&gt;
&lt;br /&gt;
Some microformats already define containers: &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; [[hCalendar]] is a container for events, the &amp;lt;code&amp;gt;hfeed&amp;lt;/code&amp;gt; container in [[hAtom]] contains entries, [[hAudio]] has a concept whereby &amp;lt;code&amp;gt;haudio&amp;lt;/code&amp;gt; concepts may be nested, and an [[hCard]] &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; may be a container for &amp;lt;code&amp;gt;agent vcard&amp;lt;/code&amp;gt;s.&lt;br /&gt;
&lt;br /&gt;
==Why is this being explored?==&lt;br /&gt;
There are a number of use cases for making better use of these container semantics, both in microformats like hCalendar that already have containers, and [[hReview]], where no current container concept exists.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== examples ==&lt;br /&gt;
As always it helps to start with examples of markup from actual websites that are already publishing container semantics. If this section gets too large, perhaps we can move it to [[container-examples]].&lt;br /&gt;
&lt;br /&gt;
=== container of reviews ===&lt;br /&gt;
The following website(s) contain a list of reviews which could/would benefit from a way of marking up not just the reviews as hReviews, but also the set of them as reviewing the same item.&lt;br /&gt;
==== SustainLane ====&lt;br /&gt;
http://www.sustainlane.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.sustainlane.com/reviews/aziza/TVLWN4ZKQLKTOIKFLWKBWFQ17DN8&lt;br /&gt;
&lt;br /&gt;
==== Yelp ====&lt;br /&gt;
http://yelp.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.yelp.com/biz/coffee-to-the-people-san-francisco&lt;br /&gt;
&lt;br /&gt;
==Use cases==&lt;br /&gt;
Here are some example use cases for sharing properties from a container into multiple child microformats:&lt;br /&gt;
&lt;br /&gt;
===Multiple reviews of the same item===&lt;br /&gt;
As demonstrated by the above real world examples, many sites publish a page for a single item, listing multiple reviews of that item (e.g. Amazon, Kelkoo, Yelp, Yahoo! Location etc.). The item appears once at the top of the page. The reviews follow. [[hReview]]'s current requirement is that the &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; be referenced from every review using the include-pattern. This requires duplicating some amount of content (most logically, the name of the reviewed item). This has raised objections by implementers, and usually imposes a CSS-dependency to hide the repeated content.&lt;br /&gt;
&lt;br /&gt;
===Reviews and review aggregate of the same item===&lt;br /&gt;
Same as above, a single page includes a few reviews and a single reviews aggregate for a single business. In some implementations (yelp) the aggregate result number is contained inside the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt;. Reviews that use the include pattern to include the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; of the business, are also including a second &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; microformat, resulting in two ratings for the same &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Shared hCalendar Properties===&lt;br /&gt;
Yahoo! TV Listings marks up television programme listings using hCalendar. The &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; field of the event is the channel on which the show is broadcast: e.g. &amp;lt;code&amp;gt;&amp;amp;lt;span class='location'&amp;gt;BBC 1&amp;amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* ‘BBC 1’ is the heading for that channels listing page. The information is published ''once'' in the page.&lt;br /&gt;
* Each scheduled programme on the page is a &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
* Using current hCalendar semantics, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; must be included in every &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the ‘BBC 1’ content at the top of the page, not part of the programme content, the content either has to be repeated and hidden in the presentation layer, or current microformats constructs such as the [[include-pattern]] need to be used to invisibly reference the original mention of ‘BBC 1’.&lt;br /&gt;
&lt;br /&gt;
Repeating content is unacceptable, and the include-pattern is a messy, hacky mark-up pattern. Embracing the concept of the container would match the publishing pattern of the site, without repeating content or including invisible pointers.&lt;br /&gt;
&lt;br /&gt;
'''ideally this markup proposal would be moved to the &amp;quot;markup proposals&amp;quot; section below, separate from the &amp;quot;Use Cases&amp;quot; section, so that multiple varying proposals could be grouped together to compare, rather than intermingling them with the list of use cases.'''&lt;br /&gt;
&lt;br /&gt;
.e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class='vcalendar'&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class='location'&amp;gt;BBC 2&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Gardener's World&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T20:30:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 8:30pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Have I Got News For You&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T21:00:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 9:00pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; is promoted to being a property of the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt;, and is the default location for all the contained events.&lt;br /&gt;
&lt;br /&gt;
This could also apply to the &amp;lt;code&amp;gt;organizer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;attendees&amp;lt;/code&amp;gt;, and others. With further explanation and [[value-class-pattern|date-time separation]], you could event declare the day of the week the the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; and the time-of-day in the &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;. The basic principal is illustrated, though.&lt;br /&gt;
&lt;br /&gt;
Uses for this pattern:&lt;br /&gt;
* Broadcast listings for a single channel/station&lt;br /&gt;
* Concert listings at a single venue&lt;br /&gt;
* Concert listings for a single act (e.g. ‘Doves in Concert’ is the event &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; for multiple events at different &amp;lt;code&amp;gt;locations&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
This of course, extends the use of an existing container.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Shared Aspects of Containers==&lt;br /&gt;
If containers become a more strongly adopted concept in microformats, they should behave consistently across formats (hence documenting these two examples here, rather than just as separate issues for both hReview and hCalendar).&lt;br /&gt;
&lt;br /&gt;
Things that should be consistent and predictable:&lt;br /&gt;
&lt;br /&gt;
* Inheriting an property into a microformat item within the container&lt;br /&gt;
* Contained items ''overriding'' one or more inherited property&lt;br /&gt;
&lt;br /&gt;
== markup proposals ==&lt;br /&gt;
=== hreview-set ===&lt;br /&gt;
One solution to the problem of multiple reviews of the same item could be to wrap each &amp;lt;code&amp;gt;hReview&amp;lt;/code&amp;gt; in a container (hypothetically, &amp;lt;code&amp;gt;hreview-set&amp;lt;/code&amp;gt;. The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; is a child of the set, and is inherited by each &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; contained within.&lt;br /&gt;
&lt;br /&gt;
=== hcard as a container ===&lt;br /&gt;
hcard can contain associated information like reviews and aggregates. hreviews inside an hcard to not need to specify item.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcard&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt; ...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== hcontainer===&lt;br /&gt;
A container microformat. Inside a container, a microformat that requires another microformat as a child (such as hreview requiring an hcard), can resolve this association by sibling relationship (as opposed to parent child relationship).&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcontainer&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;item hcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt; ...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== item as a container ===&lt;br /&gt;
item microformat is currently used inside hreviews. Use this existing micformat as a container as well. This makes the implementation slightly more complicated, since item will be allowed as a parent of hreview as well as a child. This is basically the same proposal as above, but use the name &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; for the container, instead of a dedicated name.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;item&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;item hcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt; ...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[hReview]]&lt;br /&gt;
* [[hCalendar]]&lt;br /&gt;
* [[hListing]]&lt;/div&gt;</summary>
		<author><name>Elli</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39065</id>
		<title>container-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39065"/>
		<updated>2009-06-11T04:12:40Z</updated>

		<summary type="html">&lt;p&gt;Elli: /* hcard as a container */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;Containers&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page exists to brainstorm around the concept of ‘containers’ in microformats.&lt;br /&gt;
&lt;br /&gt;
==What's a Container?==&lt;br /&gt;
&lt;br /&gt;
A ‘container’ is a root element that contains multiple microformat items within it. It groups those items together, but could also be used to provide additional or shared semantics between those items.&lt;br /&gt;
&lt;br /&gt;
Some microformats already define containers: &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; [[hCalendar]] is a container for events, the &amp;lt;code&amp;gt;hfeed&amp;lt;/code&amp;gt; container in [[hAtom]] contains entries, [[hAudio]] has a concept whereby &amp;lt;code&amp;gt;haudio&amp;lt;/code&amp;gt; concepts may be nested, and an [[hCard]] &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; may be a container for &amp;lt;code&amp;gt;agent vcard&amp;lt;/code&amp;gt;s.&lt;br /&gt;
&lt;br /&gt;
==Why is this being explored?==&lt;br /&gt;
There are a number of use cases for making better use of these container semantics, both in microformats like hCalendar that already have containers, and [[hReview]], where no current container concept exists.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== examples ==&lt;br /&gt;
As always it helps to start with examples of markup from actual websites that are already publishing container semantics. If this section gets too large, perhaps we can move it to [[container-examples]].&lt;br /&gt;
&lt;br /&gt;
=== container of reviews ===&lt;br /&gt;
The following website(s) contain a list of reviews which could/would benefit from a way of marking up not just the reviews as hReviews, but also the set of them as reviewing the same item.&lt;br /&gt;
==== SustainLane ====&lt;br /&gt;
http://www.sustainlane.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.sustainlane.com/reviews/aziza/TVLWN4ZKQLKTOIKFLWKBWFQ17DN8&lt;br /&gt;
&lt;br /&gt;
==== Yelp ====&lt;br /&gt;
http://yelp.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.yelp.com/biz/coffee-to-the-people-san-francisco&lt;br /&gt;
&lt;br /&gt;
==Use cases==&lt;br /&gt;
Here are some example use cases for sharing properties from a container into multiple child microformats:&lt;br /&gt;
&lt;br /&gt;
===Multiple reviews of the same item===&lt;br /&gt;
As demonstrated by the above real world examples, many sites publish a page for a single item, listing multiple reviews of that item (e.g. Amazon, Kelkoo, Yelp, Yahoo! Location etc.). The item appears once at the top of the page. The reviews follow. [[hReview]]'s current requirement is that the &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; be referenced from every review using the include-pattern. This requires duplicating some amount of content (most logically, the name of the reviewed item). This has raised objections by implementers, and usually imposes a CSS-dependency to hide the repeated content.&lt;br /&gt;
&lt;br /&gt;
===Reviews and review aggregate of the same item===&lt;br /&gt;
Same as above, a single page includes a few reviews and a single reviews aggregate for a single business. In some implementations (yelp) the aggregate result number is contained inside the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt;. Reviews that use the include pattern to include the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; of the business, are also including a second &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; microformat, resulting in two ratings for the same &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Shared hCalendar Properties===&lt;br /&gt;
Yahoo! TV Listings marks up television programme listings using hCalendar. The &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; field of the event is the channel on which the show is broadcast: e.g. &amp;lt;code&amp;gt;&amp;amp;lt;span class='location'&amp;gt;BBC 1&amp;amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* ‘BBC 1’ is the heading for that channels listing page. The information is published ''once'' in the page.&lt;br /&gt;
* Each scheduled programme on the page is a &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
* Using current hCalendar semantics, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; must be included in every &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the ‘BBC 1’ content at the top of the page, not part of the programme content, the content either has to be repeated and hidden in the presentation layer, or current microformats constructs such as the [[include-pattern]] need to be used to invisibly reference the original mention of ‘BBC 1’.&lt;br /&gt;
&lt;br /&gt;
Repeating content is unacceptable, and the include-pattern is a messy, hacky mark-up pattern. Embracing the concept of the container would match the publishing pattern of the site, without repeating content or including invisible pointers.&lt;br /&gt;
&lt;br /&gt;
'''ideally this markup proposal would be moved to the &amp;quot;markup proposals&amp;quot; section below, separate from the &amp;quot;Use Cases&amp;quot; section, so that multiple varying proposals could be grouped together to compare, rather than intermingling them with the list of use cases.'''&lt;br /&gt;
&lt;br /&gt;
.e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class='vcalendar'&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class='location'&amp;gt;BBC 2&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Gardener's World&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T20:30:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 8:30pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Have I Got News For You&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T21:00:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 9:00pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; is promoted to being a property of the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt;, and is the default location for all the contained events.&lt;br /&gt;
&lt;br /&gt;
This could also apply to the &amp;lt;code&amp;gt;organizer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;attendees&amp;lt;/code&amp;gt;, and others. With further explanation and [[value-class-pattern|date-time separation]], you could event declare the day of the week the the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; and the time-of-day in the &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;. The basic principal is illustrated, though.&lt;br /&gt;
&lt;br /&gt;
Uses for this pattern:&lt;br /&gt;
* Broadcast listings for a single channel/station&lt;br /&gt;
* Concert listings at a single venue&lt;br /&gt;
* Concert listings for a single act (e.g. ‘Doves in Concert’ is the event &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; for multiple events at different &amp;lt;code&amp;gt;locations&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
This of course, extends the use of an existing container.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Shared Aspects of Containers==&lt;br /&gt;
If containers become a more strongly adopted concept in microformats, they should behave consistently across formats (hence documenting these two examples here, rather than just as separate issues for both hReview and hCalendar).&lt;br /&gt;
&lt;br /&gt;
Things that should be consistent and predictable:&lt;br /&gt;
&lt;br /&gt;
* Inheriting an property into a microformat item within the container&lt;br /&gt;
* Contained items ''overriding'' one or more inherited property&lt;br /&gt;
&lt;br /&gt;
== markup proposals ==&lt;br /&gt;
=== hreview-set ===&lt;br /&gt;
One solution to the problem of multiple reviews of the same item could be to wrap each &amp;lt;code&amp;gt;hReview&amp;lt;/code&amp;gt; in a container (hypothetically, &amp;lt;code&amp;gt;hreview-set&amp;lt;/code&amp;gt;. The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; is a child of the set, and is inherited by each &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; contained within.&lt;br /&gt;
&lt;br /&gt;
=== hcard as a container ===&lt;br /&gt;
hcard can contain associated information like reviews and aggregates. hreviews inside an hcard to not need to specify item.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcard&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt; ...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== hcontainer===&lt;br /&gt;
A container microformat. Inside a container, a microformat that requires another microformat as a child (such as hreview requiring an hcard), can resolve this association by sibling relationship (as opposed to parent child relationship).&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcontainer&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;item hcard fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt; ...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[hReview]]&lt;br /&gt;
* [[hCalendar]]&lt;br /&gt;
* [[hListing]]&lt;/div&gt;</summary>
		<author><name>Elli</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39064</id>
		<title>container-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39064"/>
		<updated>2009-06-11T04:06:53Z</updated>

		<summary type="html">&lt;p&gt;Elli: /* hreview-set */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;Containers&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page exists to brainstorm around the concept of ‘containers’ in microformats.&lt;br /&gt;
&lt;br /&gt;
==What's a Container?==&lt;br /&gt;
&lt;br /&gt;
A ‘container’ is a root element that contains multiple microformat items within it. It groups those items together, but could also be used to provide additional or shared semantics between those items.&lt;br /&gt;
&lt;br /&gt;
Some microformats already define containers: &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; [[hCalendar]] is a container for events, the &amp;lt;code&amp;gt;hfeed&amp;lt;/code&amp;gt; container in [[hAtom]] contains entries, [[hAudio]] has a concept whereby &amp;lt;code&amp;gt;haudio&amp;lt;/code&amp;gt; concepts may be nested, and an [[hCard]] &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; may be a container for &amp;lt;code&amp;gt;agent vcard&amp;lt;/code&amp;gt;s.&lt;br /&gt;
&lt;br /&gt;
==Why is this being explored?==&lt;br /&gt;
There are a number of use cases for making better use of these container semantics, both in microformats like hCalendar that already have containers, and [[hReview]], where no current container concept exists.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== examples ==&lt;br /&gt;
As always it helps to start with examples of markup from actual websites that are already publishing container semantics. If this section gets too large, perhaps we can move it to [[container-examples]].&lt;br /&gt;
&lt;br /&gt;
=== container of reviews ===&lt;br /&gt;
The following website(s) contain a list of reviews which could/would benefit from a way of marking up not just the reviews as hReviews, but also the set of them as reviewing the same item.&lt;br /&gt;
==== SustainLane ====&lt;br /&gt;
http://www.sustainlane.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.sustainlane.com/reviews/aziza/TVLWN4ZKQLKTOIKFLWKBWFQ17DN8&lt;br /&gt;
&lt;br /&gt;
==== Yelp ====&lt;br /&gt;
http://yelp.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.yelp.com/biz/coffee-to-the-people-san-francisco&lt;br /&gt;
&lt;br /&gt;
==Use cases==&lt;br /&gt;
Here are some example use cases for sharing properties from a container into multiple child microformats:&lt;br /&gt;
&lt;br /&gt;
===Multiple reviews of the same item===&lt;br /&gt;
As demonstrated by the above real world examples, many sites publish a page for a single item, listing multiple reviews of that item (e.g. Amazon, Kelkoo, Yelp, Yahoo! Location etc.). The item appears once at the top of the page. The reviews follow. [[hReview]]'s current requirement is that the &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; be referenced from every review using the include-pattern. This requires duplicating some amount of content (most logically, the name of the reviewed item). This has raised objections by implementers, and usually imposes a CSS-dependency to hide the repeated content.&lt;br /&gt;
&lt;br /&gt;
===Reviews and review aggregate of the same item===&lt;br /&gt;
Same as above, a single page includes a few reviews and a single reviews aggregate for a single business. In some implementations (yelp) the aggregate result number is contained inside the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt;. Reviews that use the include pattern to include the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; of the business, are also including a second &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; microformat, resulting in two ratings for the same &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Shared hCalendar Properties===&lt;br /&gt;
Yahoo! TV Listings marks up television programme listings using hCalendar. The &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; field of the event is the channel on which the show is broadcast: e.g. &amp;lt;code&amp;gt;&amp;amp;lt;span class='location'&amp;gt;BBC 1&amp;amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* ‘BBC 1’ is the heading for that channels listing page. The information is published ''once'' in the page.&lt;br /&gt;
* Each scheduled programme on the page is a &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
* Using current hCalendar semantics, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; must be included in every &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the ‘BBC 1’ content at the top of the page, not part of the programme content, the content either has to be repeated and hidden in the presentation layer, or current microformats constructs such as the [[include-pattern]] need to be used to invisibly reference the original mention of ‘BBC 1’.&lt;br /&gt;
&lt;br /&gt;
Repeating content is unacceptable, and the include-pattern is a messy, hacky mark-up pattern. Embracing the concept of the container would match the publishing pattern of the site, without repeating content or including invisible pointers.&lt;br /&gt;
&lt;br /&gt;
'''ideally this markup proposal would be moved to the &amp;quot;markup proposals&amp;quot; section below, separate from the &amp;quot;Use Cases&amp;quot; section, so that multiple varying proposals could be grouped together to compare, rather than intermingling them with the list of use cases.'''&lt;br /&gt;
&lt;br /&gt;
.e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class='vcalendar'&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class='location'&amp;gt;BBC 2&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Gardener's World&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T20:30:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 8:30pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Have I Got News For You&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T21:00:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 9:00pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; is promoted to being a property of the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt;, and is the default location for all the contained events.&lt;br /&gt;
&lt;br /&gt;
This could also apply to the &amp;lt;code&amp;gt;organizer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;attendees&amp;lt;/code&amp;gt;, and others. With further explanation and [[value-class-pattern|date-time separation]], you could event declare the day of the week the the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; and the time-of-day in the &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;. The basic principal is illustrated, though.&lt;br /&gt;
&lt;br /&gt;
Uses for this pattern:&lt;br /&gt;
* Broadcast listings for a single channel/station&lt;br /&gt;
* Concert listings at a single venue&lt;br /&gt;
* Concert listings for a single act (e.g. ‘Doves in Concert’ is the event &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; for multiple events at different &amp;lt;code&amp;gt;locations&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
This of course, extends the use of an existing container.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Shared Aspects of Containers==&lt;br /&gt;
If containers become a more strongly adopted concept in microformats, they should behave consistently across formats (hence documenting these two examples here, rather than just as separate issues for both hReview and hCalendar).&lt;br /&gt;
&lt;br /&gt;
Things that should be consistent and predictable:&lt;br /&gt;
&lt;br /&gt;
* Inheriting an property into a microformat item within the container&lt;br /&gt;
* Contained items ''overriding'' one or more inherited property&lt;br /&gt;
&lt;br /&gt;
== markup proposals ==&lt;br /&gt;
=== hreview-set ===&lt;br /&gt;
One solution to the problem of multiple reviews of the same item could be to wrap each &amp;lt;code&amp;gt;hReview&amp;lt;/code&amp;gt; in a container (hypothetically, &amp;lt;code&amp;gt;hreview-set&amp;lt;/code&amp;gt;. The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; is a child of the set, and is inherited by each &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; contained within.&lt;br /&gt;
&lt;br /&gt;
=== hcard as a container ===&lt;br /&gt;
hcard can contain associated information like reviews and aggregates. hreviews inside an hcard to not need to specify item.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hcard&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class=&amp;quot;fn&amp;quot;&amp;gt;name&amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;rating&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;span class=&amp;quot;average&amp;quot;&amp;gt;4.4&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt; &lt;br /&gt;
      &amp;lt;span class=&amp;quot;count&amp;quot;&amp;gt;1313&amp;lt;/span&amp;gt; reviews&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt; ...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[hReview]]&lt;br /&gt;
* [[hCalendar]]&lt;br /&gt;
* [[hListing]]&lt;/div&gt;</summary>
		<author><name>Elli</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39063</id>
		<title>container-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=container-brainstorming&amp;diff=39063"/>
		<updated>2009-06-11T03:53:33Z</updated>

		<summary type="html">&lt;p&gt;Elli: Added section about using reviews and review aggregate on a business reviews page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;Containers&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page exists to brainstorm around the concept of ‘containers’ in microformats.&lt;br /&gt;
&lt;br /&gt;
==What's a Container?==&lt;br /&gt;
&lt;br /&gt;
A ‘container’ is a root element that contains multiple microformat items within it. It groups those items together, but could also be used to provide additional or shared semantics between those items.&lt;br /&gt;
&lt;br /&gt;
Some microformats already define containers: &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; [[hCalendar]] is a container for events, the &amp;lt;code&amp;gt;hfeed&amp;lt;/code&amp;gt; container in [[hAtom]] contains entries, [[hAudio]] has a concept whereby &amp;lt;code&amp;gt;haudio&amp;lt;/code&amp;gt; concepts may be nested, and an [[hCard]] &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; may be a container for &amp;lt;code&amp;gt;agent vcard&amp;lt;/code&amp;gt;s.&lt;br /&gt;
&lt;br /&gt;
==Why is this being explored?==&lt;br /&gt;
There are a number of use cases for making better use of these container semantics, both in microformats like hCalendar that already have containers, and [[hReview]], where no current container concept exists.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== examples ==&lt;br /&gt;
As always it helps to start with examples of markup from actual websites that are already publishing container semantics. If this section gets too large, perhaps we can move it to [[container-examples]].&lt;br /&gt;
&lt;br /&gt;
=== container of reviews ===&lt;br /&gt;
The following website(s) contain a list of reviews which could/would benefit from a way of marking up not just the reviews as hReviews, but also the set of them as reviewing the same item.&lt;br /&gt;
==== SustainLane ====&lt;br /&gt;
http://www.sustainlane.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.sustainlane.com/reviews/aziza/TVLWN4ZKQLKTOIKFLWKBWFQ17DN8&lt;br /&gt;
&lt;br /&gt;
==== Yelp ====&lt;br /&gt;
http://yelp.com/ has pages that show multiple reviews of the same item. e.g.&lt;br /&gt;
&lt;br /&gt;
http://www.yelp.com/biz/coffee-to-the-people-san-francisco&lt;br /&gt;
&lt;br /&gt;
==Use cases==&lt;br /&gt;
Here are some example use cases for sharing properties from a container into multiple child microformats:&lt;br /&gt;
&lt;br /&gt;
===Multiple reviews of the same item===&lt;br /&gt;
As demonstrated by the above real world examples, many sites publish a page for a single item, listing multiple reviews of that item (e.g. Amazon, Kelkoo, Yelp, Yahoo! Location etc.). The item appears once at the top of the page. The reviews follow. [[hReview]]'s current requirement is that the &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; be referenced from every review using the include-pattern. This requires duplicating some amount of content (most logically, the name of the reviewed item). This has raised objections by implementers, and usually imposes a CSS-dependency to hide the repeated content.&lt;br /&gt;
&lt;br /&gt;
===Reviews and review aggregate of the same item===&lt;br /&gt;
Same as above, a single page includes a few reviews and a single reviews aggregate for a single business. In some implementations (yelp) the aggregate result number is contained inside the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt;. Reviews that use the include pattern to include the &amp;lt;code&amp;gt;hcard&amp;lt;/code&amp;gt; of the business, are also including a second &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt; microformat, resulting in two ratings for the same &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Shared hCalendar Properties===&lt;br /&gt;
Yahoo! TV Listings marks up television programme listings using hCalendar. The &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; field of the event is the channel on which the show is broadcast: e.g. &amp;lt;code&amp;gt;&amp;amp;lt;span class='location'&amp;gt;BBC 1&amp;amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* ‘BBC 1’ is the heading for that channels listing page. The information is published ''once'' in the page.&lt;br /&gt;
* Each scheduled programme on the page is a &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
* Using current hCalendar semantics, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; must be included in every &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the ‘BBC 1’ content at the top of the page, not part of the programme content, the content either has to be repeated and hidden in the presentation layer, or current microformats constructs such as the [[include-pattern]] need to be used to invisibly reference the original mention of ‘BBC 1’.&lt;br /&gt;
&lt;br /&gt;
Repeating content is unacceptable, and the include-pattern is a messy, hacky mark-up pattern. Embracing the concept of the container would match the publishing pattern of the site, without repeating content or including invisible pointers.&lt;br /&gt;
&lt;br /&gt;
'''ideally this markup proposal would be moved to the &amp;quot;markup proposals&amp;quot; section below, separate from the &amp;quot;Use Cases&amp;quot; section, so that multiple varying proposals could be grouped together to compare, rather than intermingling them with the list of use cases.'''&lt;br /&gt;
&lt;br /&gt;
.e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class='vcalendar'&amp;gt;&lt;br /&gt;
   &amp;lt;h1 class='location'&amp;gt;BBC 2&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Gardener's World&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T20:30:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 8:30pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li class='vevent'&amp;gt;&lt;br /&gt;
        &amp;lt;h2 class='summary'&amp;gt;Have I Got News For You&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p class='dtstart'&amp;gt;&amp;lt;span class='value-title' title='2009-06-05T21:00:00+0100'&amp;gt; &amp;lt;/span&amp;gt; 9:00pm&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here, the &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; is promoted to being a property of the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt;, and is the default location for all the contained events.&lt;br /&gt;
&lt;br /&gt;
This could also apply to the &amp;lt;code&amp;gt;organizer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;attendees&amp;lt;/code&amp;gt;, and others. With further explanation and [[value-class-pattern|date-time separation]], you could event declare the day of the week the the &amp;lt;code&amp;gt;vcalendar&amp;lt;/code&amp;gt; and the time-of-day in the &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt;. The basic principal is illustrated, though.&lt;br /&gt;
&lt;br /&gt;
Uses for this pattern:&lt;br /&gt;
* Broadcast listings for a single channel/station&lt;br /&gt;
* Concert listings at a single venue&lt;br /&gt;
* Concert listings for a single act (e.g. ‘Doves in Concert’ is the event &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; for multiple events at different &amp;lt;code&amp;gt;locations&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
This of course, extends the use of an existing container.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Shared Aspects of Containers==&lt;br /&gt;
If containers become a more strongly adopted concept in microformats, they should behave consistently across formats (hence documenting these two examples here, rather than just as separate issues for both hReview and hCalendar).&lt;br /&gt;
&lt;br /&gt;
Things that should be consistent and predictable:&lt;br /&gt;
&lt;br /&gt;
* Inheriting an property into a microformat item within the container&lt;br /&gt;
* Contained items ''overriding'' one or more inherited property&lt;br /&gt;
&lt;br /&gt;
== markup proposals ==&lt;br /&gt;
=== hreview-set ===&lt;br /&gt;
One solution to the problem of multiple reviews of the same item could be to wrap each &amp;lt;code&amp;gt;hReview&amp;lt;/code&amp;gt; in a container (hypothetically, &amp;lt;code&amp;gt;hreview-set&amp;lt;/code&amp;gt;. The &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; is a child of the set, and is inherited by each &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; contained within.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[hReview]]&lt;br /&gt;
* [[hCalendar]]&lt;br /&gt;
* [[hListing]]&lt;/div&gt;</summary>
		<author><name>Elli</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=aggregate-review-brainstorming&amp;diff=38928</id>
		<title>aggregate-review-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=aggregate-review-brainstorming&amp;diff=38928"/>
		<updated>2009-06-02T07:07:39Z</updated>

		<summary type="html">&lt;p&gt;Elli: /* 4) Do not use hreview classes in hreview-aggregate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ideas for how to support aggregate reviews via microformats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Common themes amongst examples (that we might want to support) ==&lt;br /&gt;
&lt;br /&gt;
* Aggregations of reviews always contain these two elements: &lt;br /&gt;
** the number of reviewers&lt;br /&gt;
** the average rating&lt;br /&gt;
&lt;br /&gt;
* Other elements that occur in the example set include:&lt;br /&gt;
** the number of reviews for each rating (i.e. 10 5-star ratings, 7 4-star ratings, etc) &lt;br /&gt;
** recurring themes about the entity being reviewed (i.e. &amp;quot;romantic restaurant&amp;quot; or &amp;quot;love the chicken mole&amp;quot;).&lt;br /&gt;
** who are the reviewers (i.e. &amp;quot;critics&amp;quot; or &amp;quot;users&amp;quot;). Some sites (i.e. Rotten Tomatoes or GameSpot) have multiple sets of aggregate reviews to cover both critics and users.&lt;br /&gt;
&lt;br /&gt;
* In addition, some elements already present in the hReview schema exist in aggregate reviews as well:&lt;br /&gt;
** review summary/description&lt;br /&gt;
** most recent date reviewed&lt;br /&gt;
&lt;br /&gt;
== Proposal discussed over IRC ==&lt;br /&gt;
&lt;br /&gt;
==== What is the proposal? ====&lt;br /&gt;
* Define a new microformat for aggregate reviews (root class name &amp;quot;hreview-aggregate&amp;quot;).&lt;br /&gt;
* The format will contain only value (the number of reviews) with a new property &amp;quot;count&amp;quot; and embedded [[hReview]]  properties that contains details like the average review score, summary, and a reference to the object of the review.&lt;br /&gt;
&lt;br /&gt;
'''This proposal should be written up on a separate page as a microformats draft, e.g. [[hreview-aggregate]].'''&lt;br /&gt;
&lt;br /&gt;
==== Why was this proposal preferred? ====&lt;br /&gt;
* Creating a new uF rather than extending hReview doesn't require branching the spec for hReview and provides clean separation in case we want to extend the new format to include other data in the future&lt;br /&gt;
* Supporting only the number of reviews (rather than scores per rating, etc) is probably sufficient for 80% of sites with aggregate reviews. &lt;br /&gt;
&lt;br /&gt;
== Other proposals suggested ==&lt;br /&gt;
&lt;br /&gt;
==== 1) Do nothing. Aggregation must be done by the microformats parser ====&lt;br /&gt;
* Pros: Doesn't require any change to the existing microformats definitions&lt;br /&gt;
* Cons: Very difficult for parsers. Reviews for a single entity are usually not limited to a single web page (there are typically no more than 5-10 reviews per page), so aggregating this data would require the parser to figure out which pages to crawl to assemble the aggregate scores.&lt;br /&gt;
&lt;br /&gt;
==== 2) Extend existing hReview format to include &amp;quot;reviewcount&amp;quot; ====&lt;br /&gt;
* Any hReview that contains a reviewcount field (which denotes the number of reviewers) would implicitly refer to an aggregation of reviews. The rating would correspond to the average rating of all individual reviews, summary/description refer to a summary of overall sentiments from the reviews, date refers to the most recent review's date.&lt;br /&gt;
* Pros: very simple addition to the existing microformat&lt;br /&gt;
* Cons: Mild overloading of what an hReview contains -- a review can now correspond to a single user's review or an aggregation of user reviews.&lt;br /&gt;
&lt;br /&gt;
==== 3) Define a new microformat type for aggregate reviews ====&lt;br /&gt;
* This type could contain the staples -- average review score and number of reviewers -- as well as some of the other sometimes-used features listed in the &amp;quot;common themes&amp;quot; section earlier.&lt;br /&gt;
* Pros: robust way to mark up many elements of aggregate review information&lt;br /&gt;
* Cons: some redundancy with hReview. Extending hReview might be sufficient&lt;br /&gt;
&lt;br /&gt;
==== 4) Do not use hreview classes in hreview-aggregate ====&lt;br /&gt;
* This causes a collision when hreview includes an hcard that contains review aggregates per google specification http://www.google.com/support/webmasters/bin/answer.py?answer=146645 . In that case, the hreview has its own rating, and a second rating imported via the include pattern.&lt;br /&gt;
Currently Yelp implements review aggregate as an hreview-aggregate block that include the entire hcard inside it, and the aggregate rating. Importing this hcard from an hreview using the include pattern, imports the rating as well.&lt;br /&gt;
* review-aggregate can be included INSIDE hcard block, or can surround that block.&lt;br /&gt;
* review-aggregate can point to a '''self contained''' hcard (include pattern):&lt;br /&gt;
** Without repeating any of the information in the hcard&lt;br /&gt;
** Without including empty links, example &amp;lt;code&amp;gt;&amp;amp;lt;a class=&amp;quot;item include&amp;quot; href=&amp;quot;#my_business_hcard&amp;quot;&amp;amp;gt;&amp;amp;lt;/a&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
** Without including links with duplicate redundant information that is part of the hcard, example &amp;lt;code&amp;gt;&amp;amp;lt;a class=&amp;quot;item include make_me_invisible_to_user&amp;quot; href=&amp;quot;#my_business_hcard&amp;quot;&amp;amp;gt;Business Name&amp;amp;lt;/a&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
** Without adding listing information, such as the type of listing: &amp;lt;code&amp;gt;&amp;amp;lt;span class=&amp;quot;type&amp;quot;&amp;amp;gt;business&amp;amp;lt;/span&amp;amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
** Without using non-semantic HTML, such as object tag.&lt;br /&gt;
* An hreview should be able to safely import an hcard that may contain hreview-aggregate '''without name collitions''' especially the rating tag (using include pattern).&lt;br /&gt;
* An hreview should be able to safely import an hcard that may contain nested elements of hreview-aggregate, such as count and average rating, '''without name collitions''' (using include pattern). If this is not possible, pages will have to default to non semantic HTML, and markup that contains a lot of hidden content, making them less accessible.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* Aggregate reviews: [[aggregate-review-examples|examples]] - [[aggregate-review-formats|formats]]&lt;br /&gt;
* [[hreview-aggregate]]&lt;br /&gt;
* [[hreview|hReview]]&lt;/div&gt;</summary>
		<author><name>Elli</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=aggregate-review-brainstorming&amp;diff=38927</id>
		<title>aggregate-review-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=aggregate-review-brainstorming&amp;diff=38927"/>
		<updated>2009-06-02T06:36:27Z</updated>

		<summary type="html">&lt;p&gt;Elli: /* Other proposals suggested */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ideas for how to support aggregate reviews via microformats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Common themes amongst examples (that we might want to support) ==&lt;br /&gt;
&lt;br /&gt;
* Aggregations of reviews always contain these two elements: &lt;br /&gt;
** the number of reviewers&lt;br /&gt;
** the average rating&lt;br /&gt;
&lt;br /&gt;
* Other elements that occur in the example set include:&lt;br /&gt;
** the number of reviews for each rating (i.e. 10 5-star ratings, 7 4-star ratings, etc) &lt;br /&gt;
** recurring themes about the entity being reviewed (i.e. &amp;quot;romantic restaurant&amp;quot; or &amp;quot;love the chicken mole&amp;quot;).&lt;br /&gt;
** who are the reviewers (i.e. &amp;quot;critics&amp;quot; or &amp;quot;users&amp;quot;). Some sites (i.e. Rotten Tomatoes or GameSpot) have multiple sets of aggregate reviews to cover both critics and users.&lt;br /&gt;
&lt;br /&gt;
* In addition, some elements already present in the hReview schema exist in aggregate reviews as well:&lt;br /&gt;
** review summary/description&lt;br /&gt;
** most recent date reviewed&lt;br /&gt;
&lt;br /&gt;
== Proposal discussed over IRC ==&lt;br /&gt;
&lt;br /&gt;
==== What is the proposal? ====&lt;br /&gt;
* Define a new microformat for aggregate reviews (root class name &amp;quot;hreview-aggregate&amp;quot;).&lt;br /&gt;
* The format will contain only value (the number of reviews) with a new property &amp;quot;count&amp;quot; and embedded [[hReview]]  properties that contains details like the average review score, summary, and a reference to the object of the review.&lt;br /&gt;
&lt;br /&gt;
'''This proposal should be written up on a separate page as a microformats draft, e.g. [[hreview-aggregate]].'''&lt;br /&gt;
&lt;br /&gt;
==== Why was this proposal preferred? ====&lt;br /&gt;
* Creating a new uF rather than extending hReview doesn't require branching the spec for hReview and provides clean separation in case we want to extend the new format to include other data in the future&lt;br /&gt;
* Supporting only the number of reviews (rather than scores per rating, etc) is probably sufficient for 80% of sites with aggregate reviews. &lt;br /&gt;
&lt;br /&gt;
== Other proposals suggested ==&lt;br /&gt;
&lt;br /&gt;
==== 1) Do nothing. Aggregation must be done by the microformats parser ====&lt;br /&gt;
* Pros: Doesn't require any change to the existing microformats definitions&lt;br /&gt;
* Cons: Very difficult for parsers. Reviews for a single entity are usually not limited to a single web page (there are typically no more than 5-10 reviews per page), so aggregating this data would require the parser to figure out which pages to crawl to assemble the aggregate scores.&lt;br /&gt;
&lt;br /&gt;
==== 2) Extend existing hReview format to include &amp;quot;reviewcount&amp;quot; ====&lt;br /&gt;
* Any hReview that contains a reviewcount field (which denotes the number of reviewers) would implicitly refer to an aggregation of reviews. The rating would correspond to the average rating of all individual reviews, summary/description refer to a summary of overall sentiments from the reviews, date refers to the most recent review's date.&lt;br /&gt;
* Pros: very simple addition to the existing microformat&lt;br /&gt;
* Cons: Mild overloading of what an hReview contains -- a review can now correspond to a single user's review or an aggregation of user reviews.&lt;br /&gt;
&lt;br /&gt;
==== 3) Define a new microformat type for aggregate reviews ====&lt;br /&gt;
* This type could contain the staples -- average review score and number of reviewers -- as well as some of the other sometimes-used features listed in the &amp;quot;common themes&amp;quot; section earlier.&lt;br /&gt;
* Pros: robust way to mark up many elements of aggregate review information&lt;br /&gt;
* Cons: some redundancy with hReview. Extending hReview might be sufficient&lt;br /&gt;
&lt;br /&gt;
==== 4) Do not use hreview classes in hreview-aggregate ====&lt;br /&gt;
* This causes a collision when hreview includes an hcard that contains review aggregates per google specification http://www.google.com/support/webmasters/bin/answer.py?answer=146645 . In that case, the hreview has its own rating, and a second rating imported via the include pattern.&lt;br /&gt;
Currently Yelp implements review aggregate as an hreview-aggregate block that include the entire hcard inside it, and the aggregate rating. Importing this hcard from an hreview using the include pattern, imports the rating as well.&lt;br /&gt;
* review-aggregate can be included INSIDE hcard block, or can surround that block.&lt;br /&gt;
* review-aggregate can point to a '''self contained''' hcard (include pattern):&lt;br /&gt;
** Without repeating any of the information in the hcard&lt;br /&gt;
** Without including empty links, example &amp;lt;code&amp;gt;&amp;amp;lt;a class=&amp;quot;item include&amp;quot; href=&amp;quot;#my_business_hcard&amp;quot;&amp;amp;gt;&amp;amp;lt;/a&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
** Without including links with duplicate redundant information that is part of the hcard, example &amp;lt;code&amp;gt;&amp;amp;lt;a class=&amp;quot;item include make_me_invisible_to_user&amp;quot; href=&amp;quot;#my_business_hcard&amp;quot;&amp;amp;gt;Business Name&amp;amp;lt;/a&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
** Without adding listing information, such as the type of listing: &amp;lt;code&amp;gt;&amp;amp;lt;span class=&amp;quot;type&amp;quot;&amp;amp;gt;business&amp;amp;lt;/span&amp;amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
** Without using non-semantic HTML, such as object tag.&lt;br /&gt;
* An hreview should be able to safely import an hcard that may contain hreview-aggregate '''without name collitions''' especially the rating tag.&lt;br /&gt;
* An hreview should be able to safely import an hcard that may contain nested elements of hreview-aggregate, such as count and average rating, '''without name collitions'''. If this is not possible, pages will have to default to non semantic HTML, and markup that contains a lot of hidden content, making them less accessible.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* Aggregate reviews: [[aggregate-review-examples|examples]] - [[aggregate-review-formats|formats]]&lt;br /&gt;
* [[hreview-aggregate]]&lt;br /&gt;
* [[hreview|hReview]]&lt;/div&gt;</summary>
		<author><name>Elli</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=hatom-examples&amp;diff=38926</id>
		<title>hatom-examples</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=hatom-examples&amp;diff=38926"/>
		<updated>2009-06-02T04:04:48Z</updated>

		<summary type="html">&lt;p&gt;Elli: Fixed &amp;quot;changes&amp;quot; section as it did not reflect the actual HTML in the example&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt;hAtom examples&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Examples of [[hatom]] - '''Work in progress!'''&lt;br /&gt;
&lt;br /&gt;
= Contributors =&lt;br /&gt;
* [[User:DavidJanes|David Janes]] &lt;br /&gt;
* [[User:RobertBachmann|Robert Bachmann]] &lt;br /&gt;
* [[User:Chris_Messina|Chris Messina]] &lt;br /&gt;
&lt;br /&gt;
= Transformation 1 =&lt;br /&gt;
&lt;br /&gt;
A well behaved weblog.&lt;br /&gt;
&lt;br /&gt;
Original:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
 &amp;lt;div id=&amp;quot;wrap&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div id=&amp;quot;content&amp;quot;&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;div class=&amp;quot;entry&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;h3 id=&amp;quot;post-60&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;a href=&amp;quot;http://www.microformats.org/blog/...&amp;quot; rel=&amp;quot;bookmark&amp;quot; title=&amp;quot;...&amp;quot;&amp;gt;Wiki Attack&amp;lt;/a&amp;gt;&lt;br /&gt;
    &amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;We had a bit of trouble with ...&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;We&amp;amp;#8217;ve restored the wiki and ...&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;If anyone is working to combat said spammers ...&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;h4 class=&amp;quot;tags&amp;quot;&amp;gt;Technorati Tags:&amp;lt;/h4&amp;gt;&lt;br /&gt;
    &amp;lt;ul class=&amp;quot;tags&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://technorati.com/tag/mediawiki&amp;quot; rel=&amp;quot;tag&amp;quot;&amp;gt;mediawiki&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
     &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://technorati.com/tag/microformats&amp;quot; rel=&amp;quot;tag&amp;quot;&amp;gt;microformats&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
     &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://technorati.com/tag/spam&amp;quot; rel=&amp;quot;tag&amp;quot;&amp;gt;spam&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;ul class=&amp;quot;post-info&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;li&amp;gt;&lt;br /&gt;
      &amp;lt;a href=&amp;quot;http://www.microformats.org/blog/...&amp;quot; rel=&amp;quot;bookmark&amp;quot; title=&amp;quot;...&amp;quot;&amp;gt;October 10th, 2005&amp;lt;/a&amp;gt;&lt;br /&gt;
     &amp;lt;/li&amp;gt;&lt;br /&gt;
     &amp;lt;li&amp;gt;&lt;br /&gt;
      &amp;lt;address class=&amp;quot;vcard&amp;quot;&amp;gt;&amp;lt;a class=&amp;quot;url fn&amp;quot; href=&amp;quot;http://theryanking.com&amp;quot;&amp;gt;Ryan King&amp;lt;/a&amp;gt;&amp;lt;/address&amp;gt;&lt;br /&gt;
     &amp;lt;/li&amp;gt;&lt;br /&gt;
     &amp;lt;li&amp;gt;&lt;br /&gt;
      &amp;lt;a href=&amp;quot;http://www.microformats.org/blog/...&amp;quot;&amp;gt;4 Comments&amp;lt;/a&amp;gt;&lt;br /&gt;
     &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
   &amp;lt;div class=&amp;quot;entry&amp;quot;&amp;gt;&lt;br /&gt;
   ....&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Transformed to hAtom compliant:&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;body&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div id=&amp;quot;wrap&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;amp;lt;div &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;hfeed&amp;quot;&amp;lt;/span&amp;gt; id=&amp;quot;content&amp;quot;&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
    &amp;amp;lt;div class=&amp;quot;&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;hentry&amp;lt;/span&amp;gt; entry&amp;quot; &amp;lt;span class=&amp;quot;change&amp;quot;&amp;gt;id&amp;lt;/span&amp;gt;=&amp;quot;post-60&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;amp;lt;h3 class=&amp;quot;&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;entry-title&amp;lt;/span&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;amp;lt;a href=&amp;quot;&amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;www.microformats.org/blog/...&amp;quot; rel=&amp;quot;bookmark&amp;quot; title=&amp;quot;...&amp;quot;&amp;gt;Wiki Attack&amp;amp;lt;/a&amp;gt;&lt;br /&gt;
     &amp;amp;lt;/h3&amp;gt;&lt;br /&gt;
     &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;div class=&amp;quot;entry-content&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;amp;lt;p&amp;gt;We had a bit of trouble with ...&amp;amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;amp;lt;p&amp;gt;We&amp;amp;#8217;ve restored the wiki and ...&amp;amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;amp;lt;p&amp;gt;If anyone is working to combat said spammers ...&amp;amp;lt;/p&amp;gt;&lt;br /&gt;
     &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;/div&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;amp;lt;h4 class=&amp;quot;tags&amp;quot;&amp;gt;Technorati Tags:&amp;amp;lt;/h4&amp;gt;&lt;br /&gt;
     &amp;amp;lt;ul class=&amp;quot;tags&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;amp;lt;li&amp;gt;&amp;amp;lt;a href=&amp;quot;&amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;technorati.com/tag/mediawiki&amp;quot; rel=&amp;quot;tag&amp;quot;&amp;gt;mediawiki&amp;amp;lt;/a&amp;gt;&amp;amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;amp;lt;li&amp;gt;&amp;amp;lt;a href=&amp;quot;&amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;technorati.com/tag/microformats&amp;quot; rel=&amp;quot;tag&amp;quot;&amp;gt;microformats&amp;amp;lt;/a&amp;gt;&amp;amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;amp;lt;li&amp;gt;&amp;amp;lt;a href=&amp;quot;&amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;technorati.com/tag/spam&amp;quot; rel=&amp;quot;tag&amp;quot;&amp;gt;spam&amp;amp;lt;/a&amp;gt;&amp;amp;lt;/li&amp;gt;&lt;br /&gt;
     &amp;amp;lt;/ul&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;amp;lt;ul class=&amp;quot;post-info&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;amp;lt;li&amp;gt;&lt;br /&gt;
       &amp;amp;lt;a href=&amp;quot;&amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;www.microformats.org/blog/...&amp;quot; rel=&amp;quot;bookmark&amp;quot; &lt;br /&gt;
         title=&amp;quot;...&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;abbr class=&amp;quot;published&amp;quot; title=&amp;quot;2005-10-10T14:07:00-07:00&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;October 10th, 2005&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;/abbr&amp;gt;&amp;lt;/span&amp;gt;&amp;amp;lt;/a&amp;gt;&lt;br /&gt;
      &amp;amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;amp;lt;li&amp;gt;&lt;br /&gt;
       &amp;amp;lt;address class=&amp;quot;vcard &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;author&amp;lt;/span&amp;gt;&amp;quot;&amp;gt;&amp;amp;lt;a class=&amp;quot;url fn&amp;quot; href=&amp;quot;&amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;theryanking.com&amp;quot;&amp;gt;Ryan King&amp;amp;lt;/a&amp;gt;&amp;amp;lt;/address&amp;gt;&lt;br /&gt;
      &amp;amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;amp;lt;li&amp;gt;&lt;br /&gt;
       &amp;amp;lt;a href=&amp;quot;&amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;www.microformats.org/blog/...&amp;quot;&amp;gt;4 Comments&amp;amp;lt;/a&amp;gt;&lt;br /&gt;
      &amp;amp;lt;/li&amp;gt;&lt;br /&gt;
     &amp;amp;lt;/ul&amp;gt;&lt;br /&gt;
    &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;amp;lt;div class=&amp;quot;&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;hentry&amp;lt;/span&amp;gt; entry&amp;quot; &amp;lt;span class=&amp;quot;change&amp;quot;&amp;gt;id&amp;lt;/span&amp;gt;=&amp;quot;post-59&amp;quot;&amp;gt;&lt;br /&gt;
    ....&lt;br /&gt;
    &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
   &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;amp;lt;/body&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Changes:&lt;br /&gt;
* Added &amp;lt;code&amp;gt;class=&amp;quot;hfeed&amp;quot;&amp;lt;/code&amp;gt; to Feed&lt;br /&gt;
* Added &amp;lt;code&amp;gt;class=&amp;quot;hentry&amp;quot;&amp;lt;/code&amp;gt; to Entry&lt;br /&gt;
* Added &amp;lt;code&amp;gt;class=&amp;quot;entry-title&amp;quot;&amp;lt;/code&amp;gt; to Entry Title&lt;br /&gt;
* Moved &amp;lt;code&amp;gt;id=&amp;quot;###&amp;quot;&amp;lt;/code&amp;gt; from &amp;lt;code&amp;gt;&amp;amp;lt;h3&amp;gt;&amp;lt;/code&amp;gt; to Entry&lt;br /&gt;
* Added &amp;lt;code&amp;gt;&amp;amp;lt;div class=&amp;quot;entry-content&amp;quot;&amp;gt;&amp;lt;/code&amp;gt;...&amp;lt;code&amp;gt;&amp;amp;lt;/div&amp;gt;&amp;lt;/code&amp;gt; around the Entry Content&lt;br /&gt;
* Added &amp;lt;code&amp;gt;&amp;amp;lt;abbr class=&amp;quot;published&amp;quot; title=&amp;quot;YYYY-MM-DDThh:mm:ss+ZZ:ZZ&amp;quot;&amp;gt;&amp;lt;/code&amp;gt;...&amp;lt;code&amp;gt;&amp;amp;lt;/abbr&amp;gt;&amp;lt;/code&amp;gt; around the Entry Datetime&lt;br /&gt;
* Added &amp;lt;code&amp;gt;class=&amp;quot;author&amp;quot;&amp;lt;/code&amp;gt; to &amp;amp;lt;address&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note:&lt;br /&gt;
* We did not need to add a &amp;lt;code&amp;gt;&amp;amp;lt;address&amp;gt;&amp;lt;/code&amp;gt; element&lt;br /&gt;
* We did not need to add a &amp;lt;code&amp;gt;&amp;amp;lt;h#&amp;gt;&amp;lt;/code&amp;gt; element&lt;br /&gt;
* We did not need to add a &amp;lt;code&amp;gt;rel=&amp;quot;bookmark&amp;quot;&amp;lt;/code&amp;gt; to Entry Permalinks&lt;br /&gt;
&lt;br /&gt;
= Transformation 2 =&lt;br /&gt;
&lt;br /&gt;
A not-so well behaved weblog (an older blogspot weblog)&lt;br /&gt;
&lt;br /&gt;
Original:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;body bgcolor=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;div class=&amp;quot;posts&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a name=&amp;quot;112993192128302715&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/a&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;strong&amp;gt;Nelson's final prayer&amp;lt;/strong&amp;gt; &lt;br /&gt;
  written on the night before Trafalgar:&amp;lt;blockquote&amp;gt;May the Great God, ... heart.&lt;br /&gt;
  &amp;lt;div style=&amp;quot;clear:both; padding-bottom: 0.25em;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;br&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;byline&amp;quot;&amp;gt;&lt;br /&gt;
   posted by Natalie at &lt;br /&gt;
   &amp;lt;a href=&amp;quot;2005_10_16_nataliesolent_archive.html#112993192128302715&amp;quot;&amp;gt;9:49 PM&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;div class=&amp;quot;posts&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a name=&amp;quot;112993022840118939&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;br&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;strong&amp;gt;I really, truly &amp;lt;/strong&amp;gt;didn't go ... view.&lt;br /&gt;
  &amp;lt;div style=&amp;quot;clear:both; padding-bottom: 0.25em;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;br&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;byline&amp;quot;&amp;gt;&lt;br /&gt;
   posted by Natalie at &lt;br /&gt;
   &amp;lt;a href=&amp;quot;2005_10_16_nataliesolent_archive.html#112993022840118939&amp;quot;&amp;gt;9:28 PM&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;/div&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Transformed to hAtom compliant:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;body bgcolor=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
  &amp;amp;lt;&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;div class=&amp;quot;hfeed&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;amp;lt;div class=&amp;quot;&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;hentry&amp;lt;/span&amp;gt; posts&amp;quot; &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;id=&amp;quot;112993192128302715&amp;quot;&amp;lt;/span&amp;gt;&amp;gt;&lt;br /&gt;
    &amp;amp;lt;strong &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;entry-title entry-content&amp;quot;&amp;lt;/span&amp;gt;&amp;gt;&lt;br /&gt;
     Nelson's final prayer&lt;br /&gt;
    &amp;amp;lt;/strong&amp;gt; &lt;br /&gt;
    &amp;amp;lt;&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;span class=&amp;quot;entry-content&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     written on the night before Trafalgar:&amp;amp;lt;blockquote&amp;gt;May the Great God, ... heart.&lt;br /&gt;
    &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;amp;lt;div&amp;gt;&lt;br /&gt;
     &amp;amp;lt;span class=&amp;quot;byline&amp;quot;&amp;gt;posted by &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;span class=&amp;quot;author vcard&amp;quot;&amp;gt;&amp;amp;lt;span class=&amp;quot;fn&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Natalie&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt; at &lt;br /&gt;
      &amp;amp;lt;a &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;rel=&amp;quot;bookmark&amp;quot;&amp;lt;/span&amp;gt; href=&amp;quot;2005_10_16_nataliesolent_archive.html#112993192128302715&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;abbr class=&amp;quot;published&amp;quot; title=&amp;quot;2005-10-24t09:49:00-00:00&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;9:49 PM&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;/abbr&amp;gt;&amp;lt;/span&amp;gt;&amp;amp;lt;/a&amp;gt;&lt;br /&gt;
     &amp;amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;amp;lt;div class=&amp;quot;&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;hentry&amp;lt;/span&amp;gt; posts&amp;quot; &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;id=&amp;quot;112993022840118939&amp;quot;&amp;lt;/span&amp;gt;&amp;gt;&lt;br /&gt;
    &amp;amp;lt;strong &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;heading content&amp;lt;/span&amp;gt;&amp;gt;&amp;quot;I really, truly &amp;amp;lt;/strong&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;span class=&amp;quot;entry-content&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     didn't go ... view.&lt;br /&gt;
    &amp;amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;amp;lt;div&amp;gt;&lt;br /&gt;
     &amp;amp;lt;span class=&amp;quot;byline&amp;quot;&amp;gt;&lt;br /&gt;
      posted by &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;span class=&amp;quot;author vcard&amp;quot;&amp;gt;&amp;amp;lt;span class=&amp;quot;fn&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Natalie&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt; at &lt;br /&gt;
      &amp;amp;lt;a &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;rel=&amp;quot;bookmark&amp;quot;&amp;lt;/span&amp;gt; href=&amp;quot;2005_10_16_nataliesolent_archive.html#112993022840118939&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;abbr class=&amp;quot;published&amp;quot; title=&amp;quot;2005-10-24t09:49:00-00:00&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;9:28 pm&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;/abbr&amp;gt;&amp;lt;/span&amp;gt;&amp;amp;lt;/a&amp;gt;&lt;br /&gt;
     &amp;amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
  &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;lt;/body&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Changes:&lt;br /&gt;
* Added &amp;lt;code&amp;gt;class=&amp;quot;hfeed&amp;quot;&amp;lt;/code&amp;gt; to Feed&lt;br /&gt;
* Added &amp;lt;code&amp;gt;class=&amp;quot;hentry&amp;quot;&amp;lt;/code&amp;gt; to each Entry&lt;br /&gt;
* Added &amp;lt;code&amp;gt;class=&amp;quot;entry-title&amp;quot;&amp;lt;/code&amp;gt; to each Entry Title&lt;br /&gt;
* Moved &amp;lt;code&amp;gt;id=&amp;quot;###&amp;quot;&amp;lt;/code&amp;gt; up to the Entry (and deleted the empty anchor block)&lt;br /&gt;
* Added &amp;lt;code&amp;gt;rel=&amp;quot;bookmark&amp;quot;&amp;lt;/code&amp;gt; to the Entry Permalinks&lt;br /&gt;
* Added &amp;lt;code&amp;gt;&amp;amp;lt;span class=&amp;quot;entry-content&amp;quot;&amp;gt;&amp;lt;/code&amp;gt;...&amp;lt;code&amp;gt;&amp;amp;lt;/div&amp;gt;&amp;lt;/code&amp;gt; around the Entry Title (!)&lt;br /&gt;
* Added &amp;lt;code&amp;gt;&amp;amp;lt;span class=&amp;quot;entry content&amp;quot;&amp;gt;&amp;lt;/code&amp;gt;...&amp;lt;code&amp;gt;&amp;amp;lt;/div&amp;gt;&amp;lt;/code&amp;gt; around the Entry Content&lt;br /&gt;
* Added &amp;lt;code&amp;gt;&amp;amp;lt;abbr class=&amp;quot;published&amp;quot; title=&amp;quot;YYYY-MM-DDThh:mm:ss+ZZZZ&amp;quot;&amp;gt;&amp;lt;/code&amp;gt;...&amp;lt;code&amp;gt;&amp;amp;lt;/abbr&amp;gt;&amp;lt;/code&amp;gt; around the Entry Datetime&lt;br /&gt;
* Added &amp;lt;code&amp;gt;&amp;amp;lt;span class=&amp;quot;author vcard&amp;quot;&amp;amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;amp;lt;span class=&amp;quot;fn&amp;quot;&amp;amp;gt;&amp;lt;/code&amp;gt; to the poster's name&lt;br /&gt;
&lt;br /&gt;
Also note:&lt;br /&gt;
* the ID/fragments are not XHTML -- this is a big problem.&lt;br /&gt;
* there are multiple content blocks, because Natalie Solent embeds the title in the content&lt;br /&gt;
* cleaned up lots of crap HTML presentation stuff, with the assumption it would be fixed in the stylesheet&lt;br /&gt;
* this is one of the uglier transformations you're likely to see&lt;br /&gt;
&lt;br /&gt;
= Transformation 3 =&lt;br /&gt;
&lt;br /&gt;
A media page (from [http://www.cbc.ca/story/world/national/2005/11/22/birdlfu051122.html CBC Newsworld]).&lt;br /&gt;
&lt;br /&gt;
Original:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;news&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;div class=&amp;quot;story&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;h1&amp;gt;China confirms new bird flu outbreaks&amp;lt;/h1&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;byline&amp;quot;&amp;gt;Last Updated Tue, 22 Nov 2005 23:26:18 EST&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;text&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;/news/credit.html&amp;quot;&amp;gt;CBC News&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;div class=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;&lt;br /&gt;
   China has confirmed three new outbreaks of bird flu, ...&lt;br /&gt;
   &amp;lt;p&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
     &amp;lt;li&amp;gt;&amp;lt;font size=&amp;quot;1&amp;quot;&amp;gt;INDEPTH: &amp;lt;/font&amp;gt;&amp;lt;font size=&amp;quot;2&amp;quot;&amp;gt; &lt;br /&gt;
     &amp;lt;a href=&amp;quot;http://www.cbc.ca/news/background/avianflu/&amp;quot;&amp;gt;Avian Flu&amp;lt;/a&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
   &amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;table align=&amp;quot;right&amp;quot; cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;4&amp;quot; hspace=&amp;quot;4&amp;quot; width=&amp;quot;220&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;img src=&amp;quot;http://www.cbc.ca/gfx/pix/birdflu_china_cp_7707271.jpg&amp;quot; width=&amp;quot;220&amp;quot; height=&amp;quot;223&amp;quot; hspace=&amp;quot;3&amp;quot; border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;font size=&amp;quot;1&amp;quot; face=&amp;quot;verdana,arial&amp;quot;&amp;gt;&amp;lt;i&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
   &amp;lt;/table&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;State media says the new outbreaks are in...&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;The news comes a day after China announced the ...&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;In China's eastern Anhui province, authorities have ...&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;The province says the measure will prevent domestic ...&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;Vietnamese health officials have confirmed that a  ...&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;Doctors from the health department in the northern  ...&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;Bird flu has killed 42 people in Vietnam since December  ...&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;The World Health Organization fears the H5N1 strain of  ...&amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;p&amp;gt;&amp;lt;font face=&amp;quot;Verdana,Arial&amp;quot; size=&amp;quot;1&amp;quot;&amp;gt;with files from the Australian Broadcasting Corporation&amp;lt;/font&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
 &amp;lt;/div&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Transformed to hAtom compliant:&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;div class=&amp;quot;news&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=&amp;quot;&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;hfeed hentry&amp;lt;/span&amp;gt; story&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;amp;lt;h1 &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;entry-title&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;China confirms new bird flu outbreaks&amp;amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;amp;lt;span class=&amp;quot;byline&amp;quot;&amp;gt;Last Updated&lt;br /&gt;
   &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;abbr class=&amp;quot;published&amp;quot; title=&amp;quot;2005-11-23T04:26:18Z&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Tue, 22 Nov 2005 23:26:18 EST&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;/abbr&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;address class=&amp;quot;vcard author&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;amp;lt;span class=&amp;quot;text&amp;quot;&amp;gt;&amp;amp;lt;a &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;url&amp;quot;&amp;lt;/span&amp;gt; href=&amp;quot;/news/credit.html&amp;quot;&amp;gt;CBC News&amp;amp;lt;/a&amp;gt;&amp;amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;/address&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;amp;lt;div class=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;amp;lt;p &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;entry-content&amp;quot;&amp;lt;/span&amp;gt;&amp;amp;gt;&lt;br /&gt;
    China has confirmed three new outbreaks of bird flu, ...&lt;br /&gt;
    &amp;amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;amp;lt;p&amp;gt;&lt;br /&gt;
     &amp;amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;amp;lt;li&amp;gt;&amp;amp;lt;font size=&amp;quot;1&amp;quot;&amp;gt;INDEPTH: &amp;amp;lt;/font&amp;gt;&amp;amp;lt;font size=&amp;quot;2&amp;quot;&amp;gt; &lt;br /&gt;
      &amp;amp;lt;a href=&amp;quot;&amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;www.cbc.ca/news/background/avianflu/&amp;quot;&amp;gt;Avian Flu&amp;amp;lt;/a&amp;gt;&amp;amp;lt;/font&amp;gt;&lt;br /&gt;
     &amp;amp;lt;/ul&amp;gt;&lt;br /&gt;
    &amp;amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;amp;lt;table align=&amp;quot;right&amp;quot; cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;4&amp;quot; hspace=&amp;quot;4&amp;quot; width=&amp;quot;220&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;amp;lt;tr&amp;gt;&lt;br /&gt;
     &amp;amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;amp;lt;img src=&amp;quot;&amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;www.cbc.ca/gfx/pix/birdflu_china_cp_7707271.jpg&amp;quot; width=&amp;quot;220&amp;quot; height=&amp;quot;223&amp;quot; hspace=&amp;quot;3&amp;quot; border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;amp;lt;/tr&amp;gt;&lt;br /&gt;
     &amp;amp;lt;tr&amp;gt;&lt;br /&gt;
     &amp;amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;amp;lt;div class=&amp;quot;caption&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;amp;lt;font size=&amp;quot;1&amp;quot; face=&amp;quot;verdana,arial&amp;quot;&amp;gt;&amp;amp;lt;i&amp;gt;&amp;amp;lt;/i&amp;gt;&amp;amp;lt;/font&amp;gt;&lt;br /&gt;
     &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
     &amp;amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;amp;lt;/table&amp;gt;&lt;br /&gt;
    &amp;amp;lt;p &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;entry-content&amp;quot;&amp;lt;/span&amp;gt;&amp;gt;State media says the new outbreaks are in...&amp;amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;amp;lt;p &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;entry-content&amp;quot;&amp;lt;/span&amp;gt;&amp;gt;The news comes a day after China announced the ...&amp;amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;amp;lt;p &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;entry-content&amp;quot;&amp;lt;/span&amp;gt;&amp;gt;In China's eastern Anhui province, authorities have ...&amp;amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;amp;lt;p &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;entry-content&amp;quot;&amp;lt;/span&amp;gt;&amp;gt;The province says the measure will prevent domestic ...&amp;amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;amp;lt;p &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;entry-content&amp;quot;&amp;lt;/span&amp;gt;&amp;gt;Vietnamese health officials have confirmed that a  ...&amp;amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;amp;lt;p &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;entry-content&amp;quot;&amp;lt;/span&amp;gt;&amp;gt;Doctors from the health department in the northern  ...&amp;amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;amp;lt;p &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;entry-content&amp;quot;&amp;lt;/span&amp;gt;&amp;gt;Bird flu has killed 42 people in Vietnam since December  ...&amp;amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;amp;lt;p &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;entry-content&amp;quot;&amp;lt;/span&amp;gt;&amp;gt;The World Health Organization fears the H5N1 strain of  ...&amp;amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;amp;lt;p&amp;gt;&amp;amp;lt;font face=&amp;quot;Verdana,Arial&amp;quot; size=&amp;quot;1&amp;quot;&amp;gt;with files from the Australian Broadcasting Corporation&amp;amp;lt;/font&amp;gt;&amp;amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
 &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Changes:&lt;br /&gt;
* Added &amp;lt;code&amp;gt;&amp;amp;lt;div class=&amp;quot;hfeed hentry&amp;quot;&amp;gt;&amp;lt;/code&amp;gt; around the single entry on the page&lt;br /&gt;
* Added &amp;lt;code&amp;gt;&amp;amp;lt;div class=&amp;quot;entry-title&amp;quot;&amp;gt;&amp;lt;/code&amp;gt; to the Entry Title&lt;br /&gt;
* Added the class &amp;lt;code&amp;gt;class=&amp;quot;entry-content&amp;quot;&amp;lt;/code&amp;gt; to every paragraph, eg &amp;lt;code&amp;gt;&amp;amp;lt;p class=&amp;quot;entry-content&amp;quot;&amp;gt;&amp;lt;/code&amp;gt;...&amp;lt;code&amp;gt;&amp;amp;lt;/p&amp;gt;&amp;lt;/code&amp;gt;  -- this looks pathological but it may be the way this would need be produced from a template. The latter part of the document could be enclosed in a single &amp;quot;entry-content&amp;quot; div but note that we did this so the &amp;quot;INDEPTH&amp;quot; part would not be marked as content,&lt;br /&gt;
* Added &amp;lt;code&amp;gt;&amp;amp;lt;abbr class=&amp;quot;published&amp;quot; title=&amp;quot;YYYYMMDDThh:mm:ss+ZZZZ&amp;quot;&amp;gt;&amp;lt;/code&amp;gt;...&amp;lt;code&amp;gt;&amp;amp;lt;/abbr&amp;gt;&amp;lt;/code&amp;gt; around the Entry Datetime&lt;br /&gt;
* Added &amp;lt;code&amp;gt;&amp;amp;lt;address class=&amp;quot;author vcard&amp;quot;&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;amp;lt;span class=&amp;quot;fn org&amp;quot;&amp;gt;&amp;lt;/code&amp;gt; to the CBC Newsroom&lt;br /&gt;
&lt;br /&gt;
Also note:&lt;br /&gt;
* We made the document more XHTML compliant&lt;br /&gt;
* There is no &amp;lt;code&amp;gt;rel=&amp;quot;bookmark&amp;quot;&amp;lt;/code&amp;gt; so it is assumed to be the URI of the page&lt;br /&gt;
&lt;br /&gt;
= Transformation 4 =&lt;br /&gt;
&lt;br /&gt;
A bulletin board ([http://forums.punbb.org/viewtopic.php?id=9135 PunBB])&lt;br /&gt;
&lt;br /&gt;
Original:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
 &amp;lt;div id=&amp;quot;punwrap&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div id=&amp;quot;punviewtopic&amp;quot; class=&amp;quot;pun&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;div id=&amp;quot;brdheader&amp;quot; class=&amp;quot;block&amp;quot;&amp;gt;&lt;br /&gt;
    ... header stuff ...&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;div id=&amp;quot;announce&amp;quot; class=&amp;quot;block&amp;quot;&amp;gt;&lt;br /&gt;
    ... announcement stuff ...&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;div class=&amp;quot;linkst&amp;quot;&amp;gt;&lt;br /&gt;
    ... controls for the blog&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;div id=&amp;quot;p54390&amp;quot; class=&amp;quot;blockpost rowodd firstpost&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;h2&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&amp;lt;span class=&amp;quot;conr&amp;quot;&amp;gt;#1&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;a href=&amp;quot;viewtopic.php?pid=54390#p54390&amp;quot;&amp;gt;2005-10-16 10:36:24&amp;lt;/a&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;/h2&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;div class=&amp;quot;inbox&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;postleft&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;dl&amp;gt;&lt;br /&gt;
        &amp;lt;dt&amp;gt;&amp;lt;strong&amp;gt;&amp;lt;a href=&amp;quot;profile.php?id=2&amp;quot;&amp;gt;Rickard&amp;lt;/a&amp;gt;&amp;lt;/strong&amp;gt;&amp;lt;/dt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;dd class=&amp;quot;usertitle&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;PunBB Developer&amp;lt;/strong&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
        &amp;lt;dd class=&amp;quot;postavatar&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;img/avatars/2.png&amp;quot; width=&amp;quot;60&amp;quot; height=&amp;quot;60&amp;quot; alt=&amp;quot;&amp;quot; /&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
        &amp;lt;dd&amp;gt;From: 127.0.0.1&amp;lt;/dd&amp;gt;&lt;br /&gt;
        &amp;lt;dd&amp;gt;Registered: 2001-11-02&amp;lt;/dd&amp;gt;&lt;br /&gt;
        &amp;lt;dd&amp;gt;Posts: 7806&amp;lt;/dd&amp;gt;&lt;br /&gt;
        &amp;lt;dd class=&amp;quot;usercontacts&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;http://www.punbb.org/&amp;quot;&amp;gt;Website&amp;lt;/a&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;/dl&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;postright&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;h3&amp;gt;PunBB 1.2.9&amp;lt;/h3&amp;gt;&lt;br /&gt;
       &amp;lt;div class=&amp;quot;postmsg&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Just a quick note this time....&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;/div&amp;gt;&lt;br /&gt;
       &amp;lt;div class=&amp;quot;postsignature&amp;quot;&amp;gt;&amp;lt;hr /&amp;gt;&amp;amp;quot;Programming is like sex: ...&amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;postfootleft&amp;quot;&amp;gt;&amp;lt;p&amp;gt;Offline&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;postfootright&amp;quot;&amp;gt;&amp;lt;div&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
     &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;div id=&amp;quot;p54392&amp;quot; class=&amp;quot;blockpost roweven&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;h2&amp;gt;&amp;lt;span&amp;gt;&amp;lt;span class=&amp;quot;conr&amp;quot;&amp;gt;#2&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;lt;a href=&amp;quot;viewtopic.php?pid=54392#p54392&amp;quot;&amp;gt;2005-10-16 10:54:41&amp;lt;/a&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;div class=&amp;quot;inbox&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;postleft&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;dl&amp;gt;&lt;br /&gt;
        &amp;lt;dt&amp;gt;&amp;lt;strong&amp;gt;&amp;lt;a href=&amp;quot;profile.php?id=5298&amp;quot;&amp;gt;IdleFire&amp;lt;/a&amp;gt;&amp;lt;/strong&amp;gt;&amp;lt;/dt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;dd class=&amp;quot;usertitle&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Member&amp;lt;/strong&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
        &amp;lt;dd class=&amp;quot;postavatar&amp;quot;&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
        &amp;lt;dd&amp;gt;Registered: 2005-10-14&amp;lt;/dd&amp;gt;&lt;br /&gt;
        &amp;lt;dd&amp;gt;Posts: 27&amp;lt;/dd&amp;gt;&lt;br /&gt;
       &amp;lt;/dl&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;postright&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;h3&amp;gt; Re: PunBB 1.2.9&amp;lt;/h3&amp;gt;&lt;br /&gt;
       &amp;lt;div class=&amp;quot;postmsg&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;...&amp;lt;/p&amp;gt;&lt;br /&gt;
       &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;postfootleft&amp;quot;&amp;gt;&amp;lt;p&amp;gt;Offline&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;div class=&amp;quot;postfootright&amp;quot;&amp;gt;&amp;lt;div&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
     &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
   ... more entries ...&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;div id=&amp;quot;brdfooter&amp;quot; class=&amp;quot;block&amp;quot;&amp;gt;&lt;br /&gt;
    ... footer stuff ...&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Transformed to hAtom compliant:&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;body&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div id=&amp;quot;punwrap&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;amp;lt;div id=&amp;quot;punviewtopic&amp;quot; class=&amp;quot;pun&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
    &amp;amp;lt;div id=&amp;quot;brdheader&amp;quot; class=&amp;quot;block&amp;quot;&amp;gt;&lt;br /&gt;
     ... header stuff ...&lt;br /&gt;
    &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
    &amp;amp;lt;div id=&amp;quot;announce&amp;quot; class=&amp;quot;block&amp;quot;&amp;gt;&lt;br /&gt;
     ... announcement stuff ...&lt;br /&gt;
    &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
    &amp;amp;lt;div class=&amp;quot;linkst&amp;quot;&amp;gt;&lt;br /&gt;
     ... controls for the blog&lt;br /&gt;
    &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
    &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;div class=&amp;quot;hfeed&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;amp;lt;div id=&amp;quot;p54390&amp;quot; class=&amp;quot;&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;hentry&amp;lt;/span&amp;gt; blockpost rowodd firstpost&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;amp;lt;h2&amp;gt;&lt;br /&gt;
      &amp;amp;lt;span&amp;gt;&amp;amp;lt;span class=&amp;quot;conr&amp;quot;&amp;gt;#1&amp;amp;nbsp;&amp;amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;amp;lt;a &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;rel=&amp;quot;bookmark&amp;quot;&amp;lt;/span&amp;gt; href=&amp;quot;viewtopic.php?pid=54390#p54390&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;abbr class=&amp;quot;published&amp;quot; title=&amp;quot;2005-10-16T10:36:24-0500&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;2005-10-16 10:36:24&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;/abbr&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;amp;lt;/a&amp;gt;&amp;amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;amp;lt;/h2&amp;gt;&lt;br /&gt;
     &amp;amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;amp;lt;div class=&amp;quot;inbox&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;amp;lt;div class=&amp;quot;postleft&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;amp;lt;dl&amp;gt;&lt;br /&gt;
         &amp;amp;lt;dt&amp;gt;&amp;amp;lt;strong&amp;gt;&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;address class=&amp;quot;author vcard&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;amp;lt;a &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;url fn&amp;quot;&amp;lt;/span&amp;gt;href=&amp;quot;profile.php?id=2&amp;quot;&amp;gt;Rickard&amp;amp;lt;/a&amp;gt;&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;/address&amp;gt;&amp;lt;/span&amp;gt;&amp;amp;lt;/strong&amp;gt;&amp;amp;lt;/dt&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
         &amp;amp;lt;dd class=&amp;quot;usertitle&amp;quot;&amp;gt;&amp;amp;lt;strong&amp;gt;PunBB Developer&amp;amp;lt;/strong&amp;gt;&amp;amp;lt;/dd&amp;gt;&lt;br /&gt;
         &amp;amp;lt;dd class=&amp;quot;postavatar&amp;quot;&amp;gt;&amp;amp;lt;img src=&amp;quot;img/avatars/2.png&amp;quot; width=&amp;quot;60&amp;quot; height=&amp;quot;60&amp;quot; alt=&amp;quot;&amp;quot; /&amp;gt;&amp;amp;lt;/dd&amp;gt;&lt;br /&gt;
         &amp;amp;lt;dd&amp;gt;From: 127.0.0.1&amp;amp;lt;/dd&amp;gt;&lt;br /&gt;
         &amp;amp;lt;dd&amp;gt;Registered: 2001-11-02&amp;amp;lt;/dd&amp;gt;&lt;br /&gt;
         &amp;amp;lt;dd&amp;gt;Posts: 7806&amp;amp;lt;/dd&amp;gt;&lt;br /&gt;
         &amp;amp;lt;dd class=&amp;quot;usercontacts&amp;quot;&amp;gt;&amp;amp;lt;a href=&amp;quot;&amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;www.punbb.org/&amp;quot;&amp;gt;Website&amp;amp;lt;/a&amp;gt;&amp;amp;lt;/dd&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
        &amp;amp;lt;/dl&amp;gt;&lt;br /&gt;
       &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
       &amp;amp;lt;div class=&amp;quot;postright&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;amp;lt;h3 class=&amp;quot;entry-title&amp;quot;&amp;gt;PunBB 1.2.9&amp;amp;lt;/h3&amp;gt;&lt;br /&gt;
        &amp;amp;lt;div class=&amp;quot;&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;entry-content&amp;lt;/span&amp;gt; postmsg&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;amp;lt;p&amp;gt;Just a quick note this time....&amp;amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
        &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;amp;lt;div class=&amp;quot;postsignature&amp;quot;&amp;gt;&amp;amp;lt;hr /&amp;gt;&amp;amp;quot;Programming is like sex: ...&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
       &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
       &amp;amp;lt;div class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
       &amp;amp;lt;div class=&amp;quot;postfootleft&amp;quot;&amp;gt;&amp;amp;lt;p&amp;gt;Offline&amp;amp;lt;/p&amp;gt;&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
       &amp;amp;lt;div class=&amp;quot;postfootright&amp;quot;&amp;gt;&amp;amp;lt;div&amp;gt;&amp;amp;nbsp;&amp;amp;lt;/div&amp;gt;&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
     &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
    &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
    &amp;amp;lt;div id=&amp;quot;p54392&amp;quot; class=&amp;quot;&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;hentry&amp;lt;/span&amp;gt; blockpost roweven&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;amp;lt;h2&amp;gt;&lt;br /&gt;
      &amp;amp;lt;span&amp;gt;&amp;amp;lt;span class=&amp;quot;conr&amp;quot;&amp;gt;#2&amp;amp;nbsp;&amp;amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;amp;lt;a &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;rel=&amp;quot;bookmark&amp;quot;&amp;lt;/span&amp;gt; href=&amp;quot;viewtopic.php?pid=54392#p54392&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;abbr class=&amp;quot;published&amp;quot; title=&amp;quot;2005-10-16T10:54:41-0500&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;2005-10-16 10:54:41&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;/abbr&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;amp;lt;/a&amp;gt;&amp;amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;amp;lt;/h2&amp;gt;&lt;br /&gt;
     &amp;amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;amp;lt;div class=&amp;quot;inbox&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;amp;lt;div class=&amp;quot;postleft&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;amp;lt;dl&amp;gt;&lt;br /&gt;
         &amp;amp;lt;dt&amp;gt;&amp;amp;lt;strong&amp;gt;&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;address class=&amp;quot;author vcard&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;amp;lt;a &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;url fn&amp;quot;&amp;lt;/span&amp;gt; href=&amp;quot;profile.php?id=5298&amp;quot;&amp;gt;IdleFire&amp;amp;lt;/a&amp;gt;&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;/address&amp;gt;&amp;lt;/span&amp;gt;&amp;amp;lt;/strong&amp;gt;&amp;amp;lt;/dt&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
         &amp;amp;lt;dd class=&amp;quot;usertitle&amp;quot;&amp;gt;&amp;amp;lt;strong&amp;gt;Member&amp;amp;lt;/strong&amp;gt;&amp;amp;lt;/dd&amp;gt;&lt;br /&gt;
         &amp;amp;lt;dd class=&amp;quot;postavatar&amp;quot;&amp;gt;&amp;amp;lt;/dd&amp;gt;&lt;br /&gt;
         &amp;amp;lt;dd&amp;gt;Registered: 2005-10-14&amp;amp;lt;/dd&amp;gt;&lt;br /&gt;
         &amp;amp;lt;dd&amp;gt;Posts: 27&amp;amp;lt;/dd&amp;gt;&lt;br /&gt;
        &amp;amp;lt;/dl&amp;gt;&lt;br /&gt;
       &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
       &amp;amp;lt;div class=&amp;quot;postright&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
        &amp;amp;lt;h3 class=&amp;quot;entry-title&amp;quot;&amp;gt; Re: PunBB 1.2.9&amp;amp;lt;/h3&amp;gt;&lt;br /&gt;
        &amp;amp;lt;div class=&amp;quot;&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;entry-content&amp;lt;/span&amp;gt; postmsg&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;amp;lt;p&amp;gt;...&amp;amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
       &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
       &amp;amp;lt;div class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
       &amp;amp;lt;div class=&amp;quot;postfootleft&amp;quot;&amp;gt;&amp;amp;lt;p&amp;gt;Offline&amp;amp;lt;/p&amp;gt;&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
       &amp;amp;lt;div class=&amp;quot;postfootright&amp;quot;&amp;gt;&amp;amp;lt;div&amp;gt;&amp;amp;nbsp;&amp;amp;lt;/div&amp;gt;&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
     &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    ... more entries ...&lt;br /&gt;
    &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;/div&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
    &amp;amp;lt;div id=&amp;quot;brdfooter&amp;quot; class=&amp;quot;block&amp;quot;&amp;gt;&lt;br /&gt;
     ... footer stuff ...&lt;br /&gt;
    &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;/body&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Changes:&lt;br /&gt;
* Added &amp;lt;code&amp;gt;&amp;amp;lt;div class=&amp;quot;hfeed&amp;quot;&amp;gt;&amp;lt;/code&amp;gt; around the entries (as opposed to an existing &amp;lt;code&amp;gt;&amp;amp;lt;div&amp;lt;/code&amp;gt; that enclosed more than entries.&lt;br /&gt;
* Added &amp;lt;code&amp;gt;class=&amp;quot;hentry&amp;quot;&amp;lt;/code&amp;gt; to each Entry&lt;br /&gt;
* Added &amp;lt;code&amp;gt;rel=&amp;quot;bookmark&amp;quot;&amp;lt;/code&amp;gt; to the Entry Permalinks&lt;br /&gt;
* Added &amp;lt;code&amp;gt;&amp;amp;lt;span class=&amp;quot;entry-title&amp;quot;&amp;gt;&amp;lt;/code&amp;gt;...&amp;lt;code&amp;gt;&amp;amp;lt;/div&amp;gt;&amp;lt;/code&amp;gt; around the Entry Title&lt;br /&gt;
* Added &amp;lt;code&amp;gt;&amp;amp;lt;span class=&amp;quot;entry-content&amp;quot;&amp;gt;&amp;lt;/code&amp;gt;...&amp;lt;code&amp;gt;&amp;amp;lt;/div&amp;gt;&amp;lt;/code&amp;gt; around the Entry Content&lt;br /&gt;
* Added &amp;lt;code&amp;gt;&amp;amp;lt;abbr class=&amp;quot;published&amp;quot; title=&amp;quot;YYYY-MM-DDThh:mm:ss+ZZZZ&amp;quot;&amp;gt;&amp;lt;/code&amp;gt;...&amp;lt;code&amp;gt;&amp;amp;lt;/abbr&amp;gt;&amp;lt;/code&amp;gt; around the Entry Datetime&lt;br /&gt;
* Added &amp;lt;code&amp;gt;&amp;amp;lt;address class=&amp;quot;author vcard&amp;quot;&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;class=&amp;quot;fn url&amp;quot;&amp;lt;/code&amp;gt; to the poster's name&lt;br /&gt;
&lt;br /&gt;
Also note:&lt;br /&gt;
* We did not need to add &amp;lt;code&amp;gt;id=&amp;quot;###&amp;quot;&amp;lt;/code&amp;gt; to the Entry&lt;br /&gt;
&lt;br /&gt;
= Transformation 5 =&lt;br /&gt;
&lt;br /&gt;
Transforming RSS to hatom using MagpieRSS. [http://factoryjoe.com/projects/sixwords/index.txt PHP source available]. Result:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;&amp;amp;lt;html&amp;amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;amp;lt;body &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;hfeed&amp;quot;&amp;lt;/span&amp;gt; id=&amp;quot;&amp;lt;span class=&amp;quot;nu0&amp;quot;&amp;gt;173333&amp;lt;/span&amp;gt;&amp;quot;&amp;amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;amp;lt;div id=&amp;quot;content&amp;quot; &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;hentry&amp;quot;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;lt;h2 &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;entry-title&amp;quot;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; No. &amp;amp;lt;a href=&amp;quot;http://twitter.com/ssmith/statuses/&amp;lt;span class=&amp;quot;nu0&amp;quot;&amp;gt;173333&amp;lt;/span&amp;gt;&amp;quot; &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;rel=&amp;quot;bookmark&amp;quot;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span class=&amp;quot;nu0&amp;quot;&amp;gt;173333&amp;lt;/span&amp;gt;&amp;amp;lt;/a&amp;amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;lt;/h2&amp;amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;lt;p &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;entry-content&amp;quot;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;Sweet potato pie. Sugar coma. Die.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;lt;/p&amp;amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;lt;p&amp;amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;lt;small&amp;amp;gt;Penned by &amp;amp;lt;span &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;vcard author&amp;quot;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;amp;lt;a href=&amp;quot;http://twitter.com/ssmith&amp;quot; &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;url fn&amp;quot;&amp;lt;/span&amp;gt;&amp;amp;gt;Sean&amp;amp;lt;/a&amp;amp;gt;&amp;amp;lt;/span&amp;amp;gt; at &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;abbr title=&amp;quot;Fri, &amp;lt;span class=&amp;quot;nu0&amp;quot;&amp;gt;24&amp;lt;/span&amp;gt; Nov &amp;lt;span class=&amp;quot;nu0&amp;quot;&amp;gt;2006&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;nu0&amp;quot;&amp;gt;01&amp;lt;/span&amp;gt;:&amp;lt;span class=&amp;quot;nu0&amp;quot;&amp;gt;03&amp;lt;/span&amp;gt;:&amp;lt;span class=&amp;quot;nu0&amp;quot;&amp;gt;11&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;nu0&amp;quot;&amp;gt;+0000&amp;lt;/span&amp;gt;&amp;quot; class=&amp;quot;updated&amp;quot;&amp;amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;nu0&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;:03am&amp;amp;lt;/abbr&amp;amp;gt;&amp;amp;lt;/small&amp;amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;lt;/p&amp;amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;amp;lt;/body&amp;amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;amp;lt;/html&amp;amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= More Examples =&lt;br /&gt;
&lt;br /&gt;
hAtom for search results, from [[http://randomchaos.com/microformats/base/ Microformats Base]]:&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;li &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;hentry&amp;quot;&amp;lt;/span&amp;gt;&amp;gt;&amp;amp;lt;a &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;rel=&amp;quot;bookmark&amp;quot;&amp;lt;/span&amp;gt; href=&amp;quot;http://tantek.com/presentations/2006/03/what-are-microformats/&amp;quot; &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;headline&amp;quot;&amp;lt;/span&amp;gt;&amp;gt;http://tantek.com/presentations/2006/03/what-are-microformats/&amp;amp;lt;/a&amp;gt; &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;updated &amp;amp;lt;abbr class=&amp;quot;published&amp;quot; title=&amp;quot;2006-07-10T14:05:54-04:00&amp;quot;&amp;gt;2006-07-10 14:05:54&amp;amp;lt;/abbr&amp;gt;&amp;lt;/span&amp;gt;&amp;amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Changes:&lt;br /&gt;
* Added &amp;lt;code&amp;gt;class=&amp;quot;hentry&amp;quot;&amp;lt;/code&amp;gt; to each result&lt;br /&gt;
* Added &amp;lt;code&amp;gt;rel=&amp;quot;bookmark&amp;quot;&amp;lt;/code&amp;gt; to each result link&lt;br /&gt;
* Added &amp;lt;code&amp;gt;&amp;amp;lt;abbr class=&amp;quot;updated&amp;quot; title=&amp;quot;YYYY-MM-DDThh:mm:ss+ZZZZ&amp;quot;&amp;gt;&amp;lt;/code&amp;gt;...&amp;lt;code&amp;gt;&amp;amp;lt;/abbr&amp;gt;&amp;lt;/code&amp;gt; for date of index update&lt;/div&gt;</summary>
		<author><name>Elli</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=include-pattern-examples-in-wild&amp;diff=38898</id>
		<title>include-pattern-examples-in-wild</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=include-pattern-examples-in-wild&amp;diff=38898"/>
		<updated>2009-05-30T02:03:37Z</updated>

		<summary type="html">&lt;p&gt;Elli: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Include Pattern Examples in the Wild=&lt;br /&gt;
&lt;br /&gt;
Pages which use the [[include-pattern]]. Please add new examples to the '''top''' of this list, and specify whether '''&amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt;''' or '''&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;''' is used for the included content.&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
* [http://www.sustainlane.com/ SustainLane] uses the include pattern on pages that contain one green local business and many reviews for that business ([http://www.sustainlane.com/reviews/farmerbrown/USD2YZY1YDR98XCST8B8H47O2O3A example]). We use an anchor tag that is hidden using CSS, the anchor contains the business name (redundant information):&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;amp;lt;span class=&amp;quot;item '''invisible'''&amp;quot;&amp;gt;&amp;lt;a class=&amp;quot;include&amp;quot; href=&amp;quot;#review_item&amp;quot;&amp;gt;Hello World Business Name&amp;lt;/a&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* [http://www.niallkennedy.com/blog/2009/01/facebook-vs-power-ventures.html Niall Kennedy's Weblog] uses empty anchor with include pattern to reference the parent company of an hcard org-unit when mentioned. Include hcards currently appear as invalid in Operator.&lt;br /&gt;
* [http://bergantinedesign.us/ Joseph Bergantine] uses &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; include syntax throughout the site to combine information in various places on the page, originally used &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt; syntax but that caused significant issues in Safari&lt;br /&gt;
* [http://www.bo.ingv.it/contents/INGV-Bologna/Staff.html INGV Bologna] uses include-pattern for organization-name and fax in hcards of staff-members. The hcards are marked up as table-rows,  '''&amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#anchorName&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt;''' sintax is used for the included data. &lt;br /&gt;
* [http://3amproductions.net 3AM Productions] uses include-pattern for filling in hcard pieces throughout the page. Originally used &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt; but switched to &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; due to issues styling &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt; in IE as well as accessibility validator issues ([http://www.contentquality.com/ Cynthia])&lt;br /&gt;
* The [http://www.westmidlandbirdclub.com/ West Midland Bird Club] in the English Midlands uses include-pattern, with &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt;, to include the logo from the top of each page, in the page-footer's hCard (e.g on [http://www.westmidlandbirdclub.com/new.htm the What's New page]), and to include the location and page-URL of, for example, its [http://www.westmidlandbirdclub.com/birmingham/indoor.htm indoor meetings in Birmingham] in their hCalendar microforamts.&lt;br /&gt;
*...&lt;br /&gt;
&lt;br /&gt;
==Related Pages==&lt;br /&gt;
{{include-pattern-related-pages}}&lt;/div&gt;</summary>
		<author><name>Elli</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=hreview-examples-in-wild&amp;diff=38896</id>
		<title>hreview-examples-in-wild</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=hreview-examples-in-wild&amp;diff=38896"/>
		<updated>2009-05-30T01:46:12Z</updated>

		<summary type="html">&lt;p&gt;Elli: /* New Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt;hReview Examples in the wild &amp;lt;/h1&amp;gt;&lt;br /&gt;
This page is an '''informative''' section of the [[hreview|hReview]] specification.&lt;br /&gt;
&lt;br /&gt;
The following sites have published [[hreview|hReviews]], and thus are a great place to start for anyone looking for examples &amp;quot;in the wild&amp;quot; to try parsing, indexing, organizing etc.  &lt;br /&gt;
&lt;br /&gt;
If you publish hReviews on your own site, feel free to add it to the '''top''' of this list. Please be sure to include at least one URL to a page on your site that includes actual [[hreview|hReview]] markup. Examples added without a URL to a page with hReview markup may be removed. &lt;br /&gt;
&lt;br /&gt;
Want to get started with writing an [[hreview|hReview]]?  Use the [http://microformats.org/code/hreview/creator hReview creator] to write a review and publish it on your blog or site.&lt;br /&gt;
&lt;br /&gt;
== New Examples ==&lt;br /&gt;
* [http://www.sustainlane.com/ SustainLane] uses hreview for user reviews of local green businesses and green products ([http://www.sustainlane.com/reviews/b-restaurant-bar/YSNIVHY298U2SBV7AWNUJ1VWYWOR example]). Also rel-tag, hcard, vcard, and many more coming.&lt;br /&gt;
* [http://www.momentville.com/ MomentVille] uses hReview markup for wedding vendor reviews. Example: [http://vendors.momentville.com/vendors/elizabeth_morgan_photography/reviews Reviews of Hawaii Wedding Photographer].&lt;br /&gt;
* [http://inkweaver-review.blogspot.com Inkweaver Review] uses a modified Blogger XML template to automatically generate hReview markup for its reviews of young adult books. Example: [http://inkweaver-review.blogspot.com/2009/05/toby-alone-by-timothee-de-fombelle.html Review of Toby Alone by Timothee de Fombelle].&lt;br /&gt;
* [http://www.eduhub.nl Eduhub] uses hReview for it's user reviews of trainings. Example: [http://www.eduhub.nl/tijdwinst/1-daagse-training-cursus-time-management#ervaringen Trainingreviews] .&lt;br /&gt;
* [http://aplawrence.com APLawrence.com] has started using hReview for its [http://aplawrence.com/cgi-bin/indexget.pl?Reviews reviews]&lt;br /&gt;
* [http://www.commonsensemedia.org Common Sense Media] now uses hReview for its parent-focused [http://www.commonsensemedia.org/movie-reviews movie reviews]. hReview for other media types (books, music, websites) is forthcoming.&lt;br /&gt;
* [https://www.brownbook.net Brownbook.net] The global free business directory that anyone can edit uses hReviews for customer submitted reviews on all its business listings. Example [http://www.brownbook.net/business/30991528/celebrity-lipstick Temecula Lipstick], or check out any of the reviews on the home page.&lt;br /&gt;
* [https://www.dutchbulbs.com/store/holidaygifts/16420 DutchBulbs.com] uses hReview for customer submitted reviews of its bulbs and perennials.&lt;br /&gt;
* [http://www.cleanertoday.com/Roof-Shingle-Cleaner-Reviews-s/116.htm CleanerToday] has implemented hReview linked to an hCard for reviews on product pages. (for example see [http://www.cleanertoday.com/Indian-Meal-Moth-Traps-p/trap-birdseed.htm Moth Trap Reviews].&lt;br /&gt;
* [http://www.MaxiMovieBlog.com] uses hReview, rel-nofollow and rel-tag microformats for reviews of movies and home-theater electronics&lt;br /&gt;
* [http://newyork.brokerbeagle.com BrokerBeagle] uses hReview linked to an hCard via the include-pattern to mark up reviews of New York apartment brokers, see [http://newyork.brokerbeagle.com/broker-302-harris_philip.html example].&lt;br /&gt;
* [http://anime.mikomi.org anime.mikomi.org] uses hReview to mark up all of its user reviews of anime series, see [http://anime.mikomi.org/series/292.html example].&lt;br /&gt;
* [http://www.ecovian.com Ecovian] uses hReview to mark up user reviews of environmentally friendly businesses, see [http://www.ecovian.com/l/san-francisco-ca/millennium-restaurant example]&lt;br /&gt;
* Russian site [http://hotelmate.ru/ Hotel Mate] uses hReview for user submitted hotel reviews.&lt;br /&gt;
* Swedish music site [http://dagensskiva.com/ dagensskiva.com] publishes all reviews in hReview format.&lt;br /&gt;
* [http://bergantinedesign.us Joseph Bergantine] periodically reviews things he [http://bergantinedesign.us/blog/my-name-is-rachel-corrie likes] or [http://bergantinedesign.us/blog/my-microwave-has-a-button-that-says-record dislikes] on his blog&lt;br /&gt;
* [http://microrevie.ws MicroReviews] - takes Twitter posts and marks them up with [[hReview]].  The markup is descibed on the [http://microrevie.ws/technical technical page].&lt;br /&gt;
* [http://www.scubafreebies.com ScubaFreebies.com] - reviews websites for SCUBA divers in hReview format. For example [http://www.scubafreebies.com/review/theaquaplanet review of video site theAquaPlanet]&lt;br /&gt;
* [http://www.hypercasinos.com Hypercasinos.com] - offers reviews of online casinos in hReview format. For example [http://www.hypercasinos.com/content/view/27/1/ a Bodog Casino review]&lt;br /&gt;
* [http://www.allogarage.fr/ Allogarage] - compare 13 000 motor mechanics in France- all reviews are in hReview format.&lt;br /&gt;
* [http://www.lopico.com Lopico - social business directory] - local business reviews in hReview&lt;br /&gt;
* [http://www.rolandinsh.lv/blog Rolands Umbrovskis - Blog] marked up with hReview all blog posts, using very basic requirements (hReview -&amp;gt; rating), for readers rating of any post/page. &lt;br /&gt;
* [http://www.concertbuzz.net ConcertBuzz- Concert Reviews] uses hReview for all user submitted concert reviews. See an [http://www.concertbuzz.net/genres/classic-rock/jethro-tull.html individual review page]. &lt;br /&gt;
* All the [http://www.westmidlandbirdclub.com/review/ West Midland Bird Club's reviews], e.g. [http://www.westmidlandbirdclub.com/review/countrymans-bedside-book.htm Countryman's Bedside Book]&lt;br /&gt;
* [http://www.novedge.com/ Novedge], the largest online CAD/CAM/DCC store,  uses hReview for all product reviews (currently about 2000 reviews). See [http://www.novedge.com/review/1978/ single review page] and [http://www.novedge.com/Robert-McNeel/Rhino-4-0/products/2217/tab/3 multiple reviews page]. Each hReview is also visually marked with the hReview button: http://rbach.priv.at/2006/buttons/hreview.png&lt;br /&gt;
* [http://club.coneco.net/ Coneco Club] (in Japanese) uses hReview for all product reviews. See [http://club.coneco.net/user/4/review/4178/index.htm example]&lt;br /&gt;
* [http://11870.com/pro/11870 11870.com] a social network (real life del.icio.us) which implements hReview for user's reviews about places, services and business&lt;br /&gt;
* [http://www.mises.org/periodical.aspx?Id=2 The Mises Review], an academic journal, uses hReview for their book reviews. See [http://www.mises.org/misesreview_detail.aspx?control=317 example]&lt;br /&gt;
* [http://www.golfdigest.com/ Golf Digest] uses hReview on its [http://www.golfdigest.com/courses/places Course Finder] detail pages to publish user comments, ratings and geo. [http://www.golfdigest.com/courses/places/2483 example]&lt;br /&gt;
* [http://www.ramkol.co.il/ Ramkol] (in Hebrew) Advanced social networking based local reviews in Israel&lt;br /&gt;
* [http://www.popsyndicate.com/ PopSyndicate] is a groups review site for comic books, movies, dvds, music, and book using hReview and hCard.&lt;br /&gt;
* [http://www.mitkbh.dk/ MitKBH] (in danish)  uses hReview to publish reviews of shops, clubs, bars, cafées, take-aways and restaurants in Copenhagen, Denmark. Each reviewed place has also a geo incl.[http://www.mitkbh.dk/node.php?node=238 example]&lt;br /&gt;
* [http://www.readandtravel.info Read&amp;amp;Travel] includes meta-information using hReview for travel-book reviews.&lt;br /&gt;
* [http://www.mangospot.dk/ Mangospot] uses hReview to publish reviews of bars, cafées and restaurants [http://mangospot.dk/Steder/245/Klassisk65-BistroVinbar.aspx example]&lt;br /&gt;
* [http://www.sean-johnson.com/ Sean Johnson] has started using hReview for [http://www.sean-johnson.com/2007/05/04/everyman-by-philip-roth/ book] and [http://www.sean-johnson.com/2007/05/01/feist-the-reminder/ music] reviews.&lt;br /&gt;
* [http://www.loudervoice.com/ LouderVoice] publishes and aggregates hReviews to/from blogs. All [http://www.loudervoice.com/search?q=hotel+cork Search/Tag Results] are also marked up with hReview.&lt;br /&gt;
* [http://www.bayofislands.net/ Bay of Islands] uses hReview eg. for reviews of [http://www.bayofislands.net/accommodation/apartments/edgewater-palms-apartments/#reviews Edgewater Palms]&lt;br /&gt;
* [http://spotspotting.com/ SpotSpotting], a site where TV commercials are reviewed and marked up with hReview (in Spanish)&lt;br /&gt;
* [[User:AndrewKuchling]] has added hReview to his book diary and would like to know if the markup is correct; [http://www.amk.ca/books/h/Velocity_of_Honey example 1], [http://www.amk.ca/books/h/Star_Wars_On_Trial example 2])&lt;br /&gt;
* [http://www.revish.com/ Revish], a book review community, uses hReview for all reviews on the site.&lt;br /&gt;
* [[User:EdwardOConnor]] has published several hReviews on his blog ([http://edward.oconnor.cx/2006/08/cask-room 1], [http://edward.oconnor.cx/2006/10/lud-in-the-mist 2], [http://edward.oconnor.cx/2006/11/hoboken 3], [http://edward.oconnor.cx/2006/11/basic 4], [http://edward.oconnor.cx/2006/11/legitimacy 5], [http://edward.oconnor.cx/2006/11/pizza-port 6], [http://edward.oconnor.cx/2006/12/lady-dottie-and-the-diamonds 7]).&lt;br /&gt;
* [http://ficlets.com/stories/12 Ficlets] story page uses hReview for user comments.&lt;br /&gt;
* Birder's Library, e.g. [http://www.birderslibrary.com/reviews/dvd/audubon_video_guide.htm Audubon VideoGuide to 505 Birds of North America]&lt;br /&gt;
* [http://www.raveaboutit.com.au Rave About It] uses hReviews for all local business reviews. In addition it uses the hCard format for a business's contact details. &lt;br /&gt;
**No examples on cited page&lt;br /&gt;
*[[User:RobCrowther]] has a number of hReviews on his blog, for example [http://www.boogdesign.com/b2evo/index.php/a/2007/02/09/webdd07_unobtrusive_javascript_with_rail this is one of a sequence of reviews of talks at WebDD07], and a [http://www.boogdesign.com/b2evo/index.php/a/2007/02/28/wsg_london_accessibility_meetup single post with three reviews]. &lt;br /&gt;
*[http://www.volume.co.uk/main/clients/clients.aspx Volume] publishes client reviews/quotes as hReviews.&lt;br /&gt;
* [http://revyu.com/ Revyu] allows people to review, rate, and tag anything. Individual reviews  ([http://revyu.com/reviews/0b03069358e6c718167e09119f7709dc50fb3f6e/about/html example]) are marked up using hReview.&lt;br /&gt;
*[http://www.globaldm.co.uk/our-clients.html GlobalDM] publishes client reviews/quotes as hReviews.&lt;br /&gt;
* [http://www.dishola.com/dishes/index/Austin,%20TX Dishola] publishes user reviews and ratings of dishes at restaurants, as opposed to entire &amp;quot;restaurant&amp;quot; reviews.&lt;br /&gt;
* [http://musicknows.com/1998/10/22/the-science-lesson MusicKnows] publishes user reviews and memories of gigs using hReview.&lt;br /&gt;
** hReview does not have an item&lt;br /&gt;
* [http://thetenwordreview.com The Ten Word Review] simply contains ten word long reviews. All reviews are marked up as hReviews, and user information is marked up as hCards.&lt;br /&gt;
* [http://www.halogenguides.com Halogen Guides] is an independent network of websites for wealthy consumers.  Member-created reviews for [http://realestate.halogenguides.com/company/exclusive-resorts/reviews destination clubs], private jets and fractional real estate are published with hReview. &lt;br /&gt;
* [http://www.board-crazy.co.uk Board Crazy Skateboarding] uses hReviews for all [http://www.board-crazy.co.uk/skate-reviews.php skateboarding product reviews].&lt;br /&gt;
** hReviews include the rating inside of the description - 12/11/2006&lt;br /&gt;
* [http://local.yahoo.com Yahoo Local] now supports hReviews for all the user feedback and ratings about places in their search results&lt;br /&gt;
*[http://corkd.com/ Cork'd] is a community site for reviewing and sharing wine.  Member-created &amp;quot;Tasting Notes&amp;quot; are published using hReview.&lt;br /&gt;
*[[User:ChrisCasciano]] has started using hReview in his blog postings including these reviews of [http://chunkysoup.net/article/211/TechnoratisNewToys Pingerati and Technorati Microformat Search].&lt;br /&gt;
*[http://www.judysbook.com/ Judy's Book] is a local reviews community.  All reviews are published in hReview format, and all business listings and members (review authors) in the hCard format.&lt;br /&gt;
*[http://www.judysbook.com/ Judy's Book] is a local reviews community.  All reviews are published in hReview format, and all business listings and members (review authors) in the hCard format.&lt;br /&gt;
* [http://tech.yahoo.com/ Yahoo! Tech] has launched with hReview markup on all their reviews! Hat tips: [http://nerddawg.blogspot.com/2006/05/hreview-microformat-on-yahoo-tech.html Ashish Shetty] and [http://jeremy.zawodny.com/blog/archives/006729.html Jeremy Zawodny] both via [http://www.moskalyuk.com/blog/yahoo-tech-tip-of-the-day/1058 Alex Moskalyuk].  [http://jeremy.zawodny.com/blog/archives/006729.html#comment-27779 Alex says]: &amp;quot;when we launched, the press reported on 300,000 tech products in our database. Some popular items, like [http://tech.yahoo.com/pr/apple-ipod-video-30gb-black-mp3-player/1992981873 this Apple iPod], have over 200 reviews.&amp;quot;&lt;br /&gt;
* [http://3spots.blogspot.com/2006/05/social-bookmarking-smarking.html 3spots: Social + bookMARKING = Smarking] has an hReview of &lt;br /&gt;
[http://smarking.com/ Smarking.com] (a social bookmarking service) which marks up their tagged links with [[xfolk|xFolk]].&lt;br /&gt;
** hReviews have invalid item/fn markup (fn not a child of item) - 12/11/2006&lt;br /&gt;
*[http://www.pacificspirit.com Dave Orchard] provides hreview marked [http://www.pacificspirit.com/Restaurants-Vancouver.html Vancouver Restaurant reviews]&lt;br /&gt;
** hReviews have invalid item/fn markup (fn not a child of item) - 12/11/2006&lt;br /&gt;
*[http://3spots.blogspot.com/2006/04/what-is-wikio-definitely-web-20-but.html hReview of Wikio]&lt;br /&gt;
** hReviews have invalid item/fn markup (fn not a child of item) - 12/11/2006&lt;br /&gt;
*[http://jg.typepad.com/ciel/ Joan] has published [http://jg.typepad.com/ciel/2006/02/daniel_bouluds_.html an hReview of Garçon]&lt;br /&gt;
** hReviews include the rating inside of the description - 12/11/2006&lt;br /&gt;
*[http://zipingo.typepad.com/ Zipingo Team Blog], a collaborative blog by the Zipingo Product Development Team at Intuit, used the hReview format to tag [http://zipingo.typepad.com/my_weblog/2005/12/finding_an_elec.html the backstory] of a review on a San Mateo electrician, written by one of the Zipingo team members ZipingoJim. Jim's post also links to his review on [http://www.zipingo.com Zipingo], a consumer opinion site.&lt;br /&gt;
** hReview does not have an item&lt;br /&gt;
** hReviews have invalid item/fn markup (fn not a child of item) - 12/11/2006&lt;br /&gt;
* [http://www.debaser.it/ DeBaser.it] publishes music reviews (in Italian) supporting hReview.&lt;br /&gt;
* [http://blog.ftwr.co.uk/ Peter Westwood] posted an [http://blog.ftwr.co.uk/archives/2006/01/05/the-fox-inn/ hReview of The Fox Inn]&lt;br /&gt;
** hReviews include the rating inside of the description - 12/11/2006&lt;br /&gt;
* [http://www.livejournal.com/users/danieljohn/ Daniel John] provides a [http://www.livejournal.com/users/danieljohn/58674.html scathing hReview of CIBC].&lt;br /&gt;
** hReview does not have an item&lt;br /&gt;
* [http://uk.movies.yahoo.com/movie-reviews/ Yahoo UK Movie Reviews] now supports hReview on all (&amp;gt;2000) reviews, e.g. [http://uk.movies.yahoo.com/h/Harry-Potter-and-the-Goblet-of-Fire/review-41195.html Harry Potter and the Goblet of Fire Review]&lt;br /&gt;
** hReviews have invalid item/fn markup (fn not a child of item) - 12/11/2006&lt;br /&gt;
* [http://adam.typepad.com/impossiblethings/ Adam Hertz] wrote hReviews of [http://adam.typepad.com/impossiblethings/2005/11/soluna.html Soluna] and [http://adam.typepad.com/impossiblethings/2006/05/cafe_gibraltar.html Cafe Gibraltar]&lt;br /&gt;
** hReviews include the rating inside of the description - 12/11/2006&lt;br /&gt;
* [http://www.mattmcalister.com/blog/ Matt McAllister] wrote an [http://www.mattmcalister.com/blog/_archives/2005/11/16/1408893.html hReview of the TV show: &amp;quot;The Office&amp;quot;]&lt;br /&gt;
** hReviews have invalid item/fn markup (fn not a child of item) - 12/11/2006&lt;br /&gt;
** hReviews include the rating inside of the description - 12/11/2006&lt;br /&gt;
* [http://www.bmannconsulting.com/blog/bmann/ Boris Mann] wrote an [http://www.bmannconsulting.com/blog/bmann/doubletake-best-panorama-stitch-tool-for-mac-os-x hReview of DoubleTake, a panorama stitch tool for Mac OS X]&lt;br /&gt;
** hReview does not have an item&lt;br /&gt;
* [http://blog.ftwr.co.uk/ Peter Westwood] has written an [http://blog.ftwr.co.uk/archives/2005/10/03/blubeckers-hampton-court/ hReview of Blubeckers Hampton Court] and an [http://blog.ftwr.co.uk/archives/2006/01/05/the-fox-inn/ hReview of The Fox Inn Bucks Green, West Sussex]&lt;br /&gt;
** hReviews include the rating inside of the description - 12/11/2006&lt;br /&gt;
* [http://dougal.gunters.org/blog/ Dougal] has published an [http://dougal.gunters.org/blog/2005/08/03/french-vanilla-latte hReview of Wolfgang Puck’s Gourmet French Vanilla Latte].&lt;br /&gt;
** hReviews have invalid item/fn markup (fn not a child of item) - 12/11/2006&lt;br /&gt;
** hReviews include the rating inside of the description - 12/11/2006&lt;br /&gt;
* [http://www.dinnerbuzz.com/ Dinnerbuzz] is a great site for posting tagged reviews of restaurants, and they publish and summarize all their reviews in hReview!&lt;br /&gt;
* [http://soldierant.net/ Bryce Glass (Soldier Ant)] posted an [http://soldierant.net/archives/2005/06/product_review.html hReview of the Uniden ELBT 595 Bluetooth Cordless Phone].&lt;br /&gt;
** hReviews have invalid item/fn markup (fn not a child of item) - 12/11/2006&lt;br /&gt;
** hReviews include the rating inside of the description - 12/11/2006&lt;br /&gt;
* dda posted an [http://sungnyemun.org/wordpress/?p=20 hReview of hReview] :) &lt;br /&gt;
** hReviews have invalid item/fn markup (fn not a child of item) - 12/11/2006&lt;br /&gt;
* An [http://tbp.xomerang.com/?p=3 hReview of Caffè Camardo coffee].&lt;br /&gt;
** No hreview on page even though the page claims to be an hreview&lt;br /&gt;
* [http://loadaveragezero.com/hnav/contact.php Douglas Clifton] posted [http://loadaveragezero.com/#May-12-2005 comments] regarding adapting his list of ~800 [http://loadaveragezero.com/app/drx Developer Resources] as a format for evaluating hReview.&lt;br /&gt;
* [http://www.oliverbrown.me.uk/ Oliver Brown] [http://www.oliverbrown.me.uk/2005/05/09/sitereviewsorg-supports-hreview-i-think/ has announced] that his [http://en-us.sitereviews.org/ SiteReviews.org] (which reviews websites) publishes its reviews using hReview, e.g. here is the [http://en-us.sitereviews.org/review-photomatt.net review on SiteReviews.org for photomatt.net].&lt;br /&gt;
* [http://www.myelin.co.nz/post/ Phillip Pearson] is publishing hReviews in the [http://coffee.gen.nz/rss/reviews RSS feed of cafe reviews] on his [http://coffee.gen.nz/ kiwi coffee review site], which of course has the reviews in HTML with embedded hReview markup as well.&lt;br /&gt;
** hReviews have invalid item/fn markup (fn not a child of item) - 12/11/2006&lt;br /&gt;
* [http://station11.net/ticker/ Kjell] is publishing his link blog as a [http://station11.net/ticker/ list of hReviews].&lt;br /&gt;
** hReviews have no fn specified on the item - 12/11/2006&lt;br /&gt;
* [http://epeus.blogspot.com/ Kevin Marks] has [http://epeus.blogspot.com/2005_04_01_epeus_archive.html#111484565269684374 published two hReviews] and used unicode &amp;quot;star&amp;quot; characters for his ratings!&lt;br /&gt;
** hReviews have invalid item/fn markup (fn not a child of item) - 12/11/2006&lt;br /&gt;
* JamesStewart is publishing hReviews in the location pages at his [http://grwifi.net Grand Rapids WiFi site].&lt;br /&gt;
* [http://www.happenchance.co.uk/ Paul Livingstone] uses hreview to voice his opinion on [http://happenchance.co.uk/reading/ books] and [http://happenchance.co.uk/listening/ music].&lt;br /&gt;
** hReviews have invalid item/fn markup (fn not a child of item) - 12/11/2006&lt;br /&gt;
* [http://www.stuffandnonsense.co.uk/ Andy Clarke] uses hReview for his [http://www.stuffandnonsense.co.uk/general/recommended-reading.html recommended reading list].&lt;br /&gt;
** hReviews have no fn specified on the item - 12/11/2006&lt;br /&gt;
* [http://nachlin.com/ Jim Nachlin] has added hReview publishing to the CMS he uses to publish  [http://daysofleisure.com/writing his blog].&lt;br /&gt;
** hReviews have invalid item/fn markup (fn not a child of item) - 12/11/2006&lt;br /&gt;
* [http://whumpdotcom.livejournal.com/236856.html Bill Humphries] has reviewed the book &amp;quot;A Brother's Price&amp;quot; on his LiveJournal.&lt;br /&gt;
** hReviews have invalid item/fn markup (fn not a child of item) - 12/11/2006&lt;br /&gt;
* [http://www.thinkvitamin.com/ Vitamin] uses hReview on it's [http://www.thinkvitamin.com/reviews/ reviews] section (e.g. a [http://www.thinkvitamin.com/reviews/webapps/fluxiom/ review of Fluxiom]).&lt;br /&gt;
* [http://www.openguides.org/ OpenGuides] has support for the hReview microformat, and you can see it in action on [http://cotswolds.openguides.org/wiki/The_Plough,_Finstock this Cotswolds OpenGuide Review].&lt;br /&gt;
** hReview does not have an item&lt;br /&gt;
* [http://paulgoscicki.com Paul Goscicki] is publishing his [http://paulgoscicki.com/#wp_movie_ratings movie ratings] using hReview.&lt;br /&gt;
* [http://www.cellphones.ca/ Cell Phones etc.] is using hReviews for user-contributed [http://www.cellphones.ca/cell-phones/reviews/ cell phone reviews].&lt;br /&gt;
* [http://www.liptrot.org Adam Liptrot] publishes movie reviews using hReview and hCard. See article at [http://www.liptrot.org/journal/entries/movies_and_microformats/ Movies and Microformats].&lt;br /&gt;
* [http://www.webteacher.ws Web Teacher] is using hReview for book reviews in both the hReview creator format and a modified format. See a modified example at [http://www.webteacher.ws/2006/11/review-web-design-complete.html Web Design: A Complete Introduction].&lt;br /&gt;
** hReviews include the rating inside of the description - 12/11/2006&lt;br /&gt;
* [http://niftylist.co.uk/ The nifty list UK.] is using hReviews for user-contributed [http://niftylist.co.uk/mobiles/ mobile phone reviews].&lt;br /&gt;
** hReview does not have an item&lt;br /&gt;
* [http://sergiosantos.info/2007/3/books SergioSantos.info] uses hReviews for the reviewed book collection.&lt;br /&gt;
* [http://www.dcs-media.com/ DCS Media] converted all of their Firefox extension Reviews into hReview format. See the [http://www.dcs-media.com/fireday/default.aspx Fireday] page for extension listings.&lt;br /&gt;
* [http://bit.ly/iiag Is It Any Good . biz]has added hReview to all of their product reviews. See this example review of [http://bit.ly/2A3nVk Leapster2 Learning System ].&lt;br /&gt;
&lt;br /&gt;
== Examples with some problems ==&lt;br /&gt;
If you find a problem with any example in any other section, please move it here, and note the precise problem and cite the section of the [[hreview|hReview spec]] that appears to be violated. If the example that was moved here is yours, and you want to improve it, see the [[hreview-faq|hReview FAQ]], or raise any queries on [[hreview-issues|hReview issues]] or [[mailing-lists#microformats-discuss|the mailing list]], where people will be happy to help you. &lt;br /&gt;
&lt;br /&gt;
* [http://apple.com/store Apple Store] customer reviews are marked up in hReview, as in [http://store.apple.com/1-800-MY-APPLE/WebObjects/AppleStore.woa/wa/RSLID?mco=E1BD7358&amp;amp;fnode=home/shop_mac/mac_accessories/airport_wireless&amp;amp;nplm=MB053LL/A#review-RTD4T4KYJYYF9UC44 this review] of the Airport Extreme Base Station.&lt;br /&gt;
**'''sub-optimal''': Model numbers (?) marked up as URLs, e.g. &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;SPAN class=&amp;quot;url&amp;quot;&amp;gt;MB053LL/A&amp;lt;/SPAN&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*loadaveragezero.com e.g. [http://loadaveragezero.com/app/drx/Data_Formats/Metadata/XMDP]&lt;br /&gt;
**'''invalid''': no fn (site owner informed)&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
== Reviewed Examples ==&lt;br /&gt;
If you have reviewed a New Example (and you are not the author of the example) and believe it to be valid, go ahead and move it here.&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
==Related pages==&lt;br /&gt;
{{hreview-related-pages}}&lt;/div&gt;</summary>
		<author><name>Elli</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=hreview-examples-in-wild&amp;diff=38895</id>
		<title>hreview-examples-in-wild</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=hreview-examples-in-wild&amp;diff=38895"/>
		<updated>2009-05-30T01:44:27Z</updated>

		<summary type="html">&lt;p&gt;Elli: /* New Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt;hReview Examples in the wild &amp;lt;/h1&amp;gt;&lt;br /&gt;
This page is an '''informative''' section of the [[hreview|hReview]] specification.&lt;br /&gt;
&lt;br /&gt;
The following sites have published [[hreview|hReviews]], and thus are a great place to start for anyone looking for examples &amp;quot;in the wild&amp;quot; to try parsing, indexing, organizing etc.  &lt;br /&gt;
&lt;br /&gt;
If you publish hReviews on your own site, feel free to add it to the '''top''' of this list. Please be sure to include at least one URL to a page on your site that includes actual [[hreview|hReview]] markup. Examples added without a URL to a page with hReview markup may be removed. &lt;br /&gt;
&lt;br /&gt;
Want to get started with writing an [[hreview|hReview]]?  Use the [http://microformats.org/code/hreview/creator hReview creator] to write a review and publish it on your blog or site.&lt;br /&gt;
&lt;br /&gt;
== New Examples ==&lt;br /&gt;
* [http://www.sustainlane.com/ SustainLane] uses hreview for user reviews of local green businesses and green products. [http://www.sustainlane.com/reviews/b-restaurant-bar/YSNIVHY298U2SBV7AWNUJ1VWYWOR example]&lt;br /&gt;
* [http://www.momentville.com/ MomentVille] uses hReview markup for wedding vendor reviews. Example: [http://vendors.momentville.com/vendors/elizabeth_morgan_photography/reviews Reviews of Hawaii Wedding Photographer].&lt;br /&gt;
* [http://inkweaver-review.blogspot.com Inkweaver Review] uses a modified Blogger XML template to automatically generate hReview markup for its reviews of young adult books. Example: [http://inkweaver-review.blogspot.com/2009/05/toby-alone-by-timothee-de-fombelle.html Review of Toby Alone by Timothee de Fombelle].&lt;br /&gt;
* [http://www.eduhub.nl Eduhub] uses hReview for it's user reviews of trainings. Example: [http://www.eduhub.nl/tijdwinst/1-daagse-training-cursus-time-management#ervaringen Trainingreviews] .&lt;br /&gt;
* [http://aplawrence.com APLawrence.com] has started using hReview for its [http://aplawrence.com/cgi-bin/indexget.pl?Reviews reviews]&lt;br /&gt;
* [http://www.commonsensemedia.org Common Sense Media] now uses hReview for its parent-focused [http://www.commonsensemedia.org/movie-reviews movie reviews]. hReview for other media types (books, music, websites) is forthcoming.&lt;br /&gt;
* [https://www.brownbook.net Brownbook.net] The global free business directory that anyone can edit uses hReviews for customer submitted reviews on all its business listings. Example [http://www.brownbook.net/business/30991528/celebrity-lipstick Temecula Lipstick], or check out any of the reviews on the home page.&lt;br /&gt;
* [https://www.dutchbulbs.com/store/holidaygifts/16420 DutchBulbs.com] uses hReview for customer submitted reviews of its bulbs and perennials.&lt;br /&gt;
* [http://www.cleanertoday.com/Roof-Shingle-Cleaner-Reviews-s/116.htm CleanerToday] has implemented hReview linked to an hCard for reviews on product pages. (for example see [http://www.cleanertoday.com/Indian-Meal-Moth-Traps-p/trap-birdseed.htm Moth Trap Reviews].&lt;br /&gt;
* [http://www.MaxiMovieBlog.com] uses hReview, rel-nofollow and rel-tag microformats for reviews of movies and home-theater electronics&lt;br /&gt;
* [http://newyork.brokerbeagle.com BrokerBeagle] uses hReview linked to an hCard via the include-pattern to mark up reviews of New York apartment brokers, see [http://newyork.brokerbeagle.com/broker-302-harris_philip.html example].&lt;br /&gt;
* [http://anime.mikomi.org anime.mikomi.org] uses hReview to mark up all of its user reviews of anime series, see [http://anime.mikomi.org/series/292.html example].&lt;br /&gt;
* [http://www.ecovian.com Ecovian] uses hReview to mark up user reviews of environmentally friendly businesses, see [http://www.ecovian.com/l/san-francisco-ca/millennium-restaurant example]&lt;br /&gt;
* Russian site [http://hotelmate.ru/ Hotel Mate] uses hReview for user submitted hotel reviews.&lt;br /&gt;
* Swedish music site [http://dagensskiva.com/ dagensskiva.com] publishes all reviews in hReview format.&lt;br /&gt;
* [http://bergantinedesign.us Joseph Bergantine] periodically reviews things he [http://bergantinedesign.us/blog/my-name-is-rachel-corrie likes] or [http://bergantinedesign.us/blog/my-microwave-has-a-button-that-says-record dislikes] on his blog&lt;br /&gt;
* [http://microrevie.ws MicroReviews] - takes Twitter posts and marks them up with [[hReview]].  The markup is descibed on the [http://microrevie.ws/technical technical page].&lt;br /&gt;
* [http://www.scubafreebies.com ScubaFreebies.com] - reviews websites for SCUBA divers in hReview format. For example [http://www.scubafreebies.com/review/theaquaplanet review of video site theAquaPlanet]&lt;br /&gt;
* [http://www.hypercasinos.com Hypercasinos.com] - offers reviews of online casinos in hReview format. For example [http://www.hypercasinos.com/content/view/27/1/ a Bodog Casino review]&lt;br /&gt;
* [http://www.allogarage.fr/ Allogarage] - compare 13 000 motor mechanics in France- all reviews are in hReview format.&lt;br /&gt;
* [http://www.lopico.com Lopico - social business directory] - local business reviews in hReview&lt;br /&gt;
* [http://www.rolandinsh.lv/blog Rolands Umbrovskis - Blog] marked up with hReview all blog posts, using very basic requirements (hReview -&amp;gt; rating), for readers rating of any post/page. &lt;br /&gt;
* [http://www.concertbuzz.net ConcertBuzz- Concert Reviews] uses hReview for all user submitted concert reviews. See an [http://www.concertbuzz.net/genres/classic-rock/jethro-tull.html individual review page]. &lt;br /&gt;
* All the [http://www.westmidlandbirdclub.com/review/ West Midland Bird Club's reviews], e.g. [http://www.westmidlandbirdclub.com/review/countrymans-bedside-book.htm Countryman's Bedside Book]&lt;br /&gt;
* [http://www.novedge.com/ Novedge], the largest online CAD/CAM/DCC store,  uses hReview for all product reviews (currently about 2000 reviews). See [http://www.novedge.com/review/1978/ single review page] and [http://www.novedge.com/Robert-McNeel/Rhino-4-0/products/2217/tab/3 multiple reviews page]. Each hReview is also visually marked with the hReview button: http://rbach.priv.at/2006/buttons/hreview.png&lt;br /&gt;
* [http://club.coneco.net/ Coneco Club] (in Japanese) uses hReview for all product reviews. See [http://club.coneco.net/user/4/review/4178/index.htm example]&lt;br /&gt;
* [http://11870.com/pro/11870 11870.com] a social network (real life del.icio.us) which implements hReview for user's reviews about places, services and business&lt;br /&gt;
* [http://www.mises.org/periodical.aspx?Id=2 The Mises Review], an academic journal, uses hReview for their book reviews. See [http://www.mises.org/misesreview_detail.aspx?control=317 example]&lt;br /&gt;
* [http://www.golfdigest.com/ Golf Digest] uses hReview on its [http://www.golfdigest.com/courses/places Course Finder] detail pages to publish user comments, ratings and geo. [http://www.golfdigest.com/courses/places/2483 example]&lt;br /&gt;
* [http://www.ramkol.co.il/ Ramkol] (in Hebrew) Advanced social networking based local reviews in Israel&lt;br /&gt;
* [http://www.popsyndicate.com/ PopSyndicate] is a groups review site for comic books, movies, dvds, music, and book using hReview and hCard.&lt;br /&gt;
* [http://www.mitkbh.dk/ MitKBH] (in danish)  uses hReview to publish reviews of shops, clubs, bars, cafées, take-aways and restaurants in Copenhagen, Denmark. Each reviewed place has also a geo incl.[http://www.mitkbh.dk/node.php?node=238 example]&lt;br /&gt;
* [http://www.readandtravel.info Read&amp;amp;Travel] includes meta-information using hReview for travel-book reviews.&lt;br /&gt;
* [http://www.mangospot.dk/ Mangospot] uses hReview to publish reviews of bars, cafées and restaurants [http://mangospot.dk/Steder/245/Klassisk65-BistroVinbar.aspx example]&lt;br /&gt;
* [http://www.sean-johnson.com/ Sean Johnson] has started using hReview for [http://www.sean-johnson.com/2007/05/04/everyman-by-philip-roth/ book] and [http://www.sean-johnson.com/2007/05/01/feist-the-reminder/ music] reviews.&lt;br /&gt;
* [http://www.loudervoice.com/ LouderVoice] publishes and aggregates hReviews to/from blogs. All [http://www.loudervoice.com/search?q=hotel+cork Search/Tag Results] are also marked up with hReview.&lt;br /&gt;
* [http://www.bayofislands.net/ Bay of Islands] uses hReview eg. for reviews of [http://www.bayofislands.net/accommodation/apartments/edgewater-palms-apartments/#reviews Edgewater Palms]&lt;br /&gt;
* [http://spotspotting.com/ SpotSpotting], a site where TV commercials are reviewed and marked up with hReview (in Spanish)&lt;br /&gt;
* [[User:AndrewKuchling]] has added hReview to his book diary and would like to know if the markup is correct; [http://www.amk.ca/books/h/Velocity_of_Honey example 1], [http://www.amk.ca/books/h/Star_Wars_On_Trial example 2])&lt;br /&gt;
* [http://www.revish.com/ Revish], a book review community, uses hReview for all reviews on the site.&lt;br /&gt;
* [[User:EdwardOConnor]] has published several hReviews on his blog ([http://edward.oconnor.cx/2006/08/cask-room 1], [http://edward.oconnor.cx/2006/10/lud-in-the-mist 2], [http://edward.oconnor.cx/2006/11/hoboken 3], [http://edward.oconnor.cx/2006/11/basic 4], [http://edward.oconnor.cx/2006/11/legitimacy 5], [http://edward.oconnor.cx/2006/11/pizza-port 6], [http://edward.oconnor.cx/2006/12/lady-dottie-and-the-diamonds 7]).&lt;br /&gt;
* [http://ficlets.com/stories/12 Ficlets] story page uses hReview for user comments.&lt;br /&gt;
* Birder's Library, e.g. [http://www.birderslibrary.com/reviews/dvd/audubon_video_guide.htm Audubon VideoGuide to 505 Birds of North America]&lt;br /&gt;
* [http://www.raveaboutit.com.au Rave About It] uses hReviews for all local business reviews. In addition it uses the hCard format for a business's contact details. &lt;br /&gt;
**No examples on cited page&lt;br /&gt;
*[[User:RobCrowther]] has a number of hReviews on his blog, for example [http://www.boogdesign.com/b2evo/index.php/a/2007/02/09/webdd07_unobtrusive_javascript_with_rail this is one of a sequence of reviews of talks at WebDD07], and a [http://www.boogdesign.com/b2evo/index.php/a/2007/02/28/wsg_london_accessibility_meetup single post with three reviews]. &lt;br /&gt;
*[http://www.volume.co.uk/main/clients/clients.aspx Volume] publishes client reviews/quotes as hReviews.&lt;br /&gt;
* [http://revyu.com/ Revyu] allows people to review, rate, and tag anything. Individual reviews  ([http://revyu.com/reviews/0b03069358e6c718167e09119f7709dc50fb3f6e/about/html example]) are marked up using hReview.&lt;br /&gt;
*[http://www.globaldm.co.uk/our-clients.html GlobalDM] publishes client reviews/quotes as hReviews.&lt;br /&gt;
* [http://www.dishola.com/dishes/index/Austin,%20TX Dishola] publishes user reviews and ratings of dishes at restaurants, as opposed to entire &amp;quot;restaurant&amp;quot; reviews.&lt;br /&gt;
* [http://musicknows.com/1998/10/22/the-science-lesson MusicKnows] publishes user reviews and memories of gigs using hReview.&lt;br /&gt;
** hReview does not have an item&lt;br /&gt;
* [http://thetenwordreview.com The Ten Word Review] simply contains ten word long reviews. All reviews are marked up as hReviews, and user information is marked up as hCards.&lt;br /&gt;
* [http://www.halogenguides.com Halogen Guides] is an independent network of websites for wealthy consumers.  Member-created reviews for [http://realestate.halogenguides.com/company/exclusive-resorts/reviews destination clubs], private jets and fractional real estate are published with hReview. &lt;br /&gt;
* [http://www.board-crazy.co.uk Board Crazy Skateboarding] uses hReviews for all [http://www.board-crazy.co.uk/skate-reviews.php skateboarding product reviews].&lt;br /&gt;
** hReviews include the rating inside of the description - 12/11/2006&lt;br /&gt;
* [http://local.yahoo.com Yahoo Local] now supports hReviews for all the user feedback and ratings about places in their search results&lt;br /&gt;
*[http://corkd.com/ Cork'd] is a community site for reviewing and sharing wine.  Member-created &amp;quot;Tasting Notes&amp;quot; are published using hReview.&lt;br /&gt;
*[[User:ChrisCasciano]] has started using hReview in his blog postings including these reviews of [http://chunkysoup.net/article/211/TechnoratisNewToys Pingerati and Technorati Microformat Search].&lt;br /&gt;
*[http://www.judysbook.com/ Judy's Book] is a local reviews community.  All reviews are published in hReview format, and all business listings and members (review authors) in the hCard format.&lt;br /&gt;
*[http://www.judysbook.com/ Judy's Book] is a local reviews community.  All reviews are published in hReview format, and all business listings and members (review authors) in the hCard format.&lt;br /&gt;
* [http://tech.yahoo.com/ Yahoo! Tech] has launched with hReview markup on all their reviews! Hat tips: [http://nerddawg.blogspot.com/2006/05/hreview-microformat-on-yahoo-tech.html Ashish Shetty] and [http://jeremy.zawodny.com/blog/archives/006729.html Jeremy Zawodny] both via [http://www.moskalyuk.com/blog/yahoo-tech-tip-of-the-day/1058 Alex Moskalyuk].  [http://jeremy.zawodny.com/blog/archives/006729.html#comment-27779 Alex says]: &amp;quot;when we launched, the press reported on 300,000 tech products in our database. Some popular items, like [http://tech.yahoo.com/pr/apple-ipod-video-30gb-black-mp3-player/1992981873 this Apple iPod], have over 200 reviews.&amp;quot;&lt;br /&gt;
* [http://3spots.blogspot.com/2006/05/social-bookmarking-smarking.html 3spots: Social + bookMARKING = Smarking] has an hReview of &lt;br /&gt;
[http://smarking.com/ Smarking.com] (a social bookmarking service) which marks up their tagged links with [[xfolk|xFolk]].&lt;br /&gt;
** hReviews have invalid item/fn markup (fn not a child of item) - 12/11/2006&lt;br /&gt;
*[http://www.pacificspirit.com Dave Orchard] provides hreview marked [http://www.pacificspirit.com/Restaurants-Vancouver.html Vancouver Restaurant reviews]&lt;br /&gt;
** hReviews have invalid item/fn markup (fn not a child of item) - 12/11/2006&lt;br /&gt;
*[http://3spots.blogspot.com/2006/04/what-is-wikio-definitely-web-20-but.html hReview of Wikio]&lt;br /&gt;
** hReviews have invalid item/fn markup (fn not a child of item) - 12/11/2006&lt;br /&gt;
*[http://jg.typepad.com/ciel/ Joan] has published [http://jg.typepad.com/ciel/2006/02/daniel_bouluds_.html an hReview of Garçon]&lt;br /&gt;
** hReviews include the rating inside of the description - 12/11/2006&lt;br /&gt;
*[http://zipingo.typepad.com/ Zipingo Team Blog], a collaborative blog by the Zipingo Product Development Team at Intuit, used the hReview format to tag [http://zipingo.typepad.com/my_weblog/2005/12/finding_an_elec.html the backstory] of a review on a San Mateo electrician, written by one of the Zipingo team members ZipingoJim. Jim's post also links to his review on [http://www.zipingo.com Zipingo], a consumer opinion site.&lt;br /&gt;
** hReview does not have an item&lt;br /&gt;
** hReviews have invalid item/fn markup (fn not a child of item) - 12/11/2006&lt;br /&gt;
* [http://www.debaser.it/ DeBaser.it] publishes music reviews (in Italian) supporting hReview.&lt;br /&gt;
* [http://blog.ftwr.co.uk/ Peter Westwood] posted an [http://blog.ftwr.co.uk/archives/2006/01/05/the-fox-inn/ hReview of The Fox Inn]&lt;br /&gt;
** hReviews include the rating inside of the description - 12/11/2006&lt;br /&gt;
* [http://www.livejournal.com/users/danieljohn/ Daniel John] provides a [http://www.livejournal.com/users/danieljohn/58674.html scathing hReview of CIBC].&lt;br /&gt;
** hReview does not have an item&lt;br /&gt;
* [http://uk.movies.yahoo.com/movie-reviews/ Yahoo UK Movie Reviews] now supports hReview on all (&amp;gt;2000) reviews, e.g. [http://uk.movies.yahoo.com/h/Harry-Potter-and-the-Goblet-of-Fire/review-41195.html Harry Potter and the Goblet of Fire Review]&lt;br /&gt;
** hReviews have invalid item/fn markup (fn not a child of item) - 12/11/2006&lt;br /&gt;
* [http://adam.typepad.com/impossiblethings/ Adam Hertz] wrote hReviews of [http://adam.typepad.com/impossiblethings/2005/11/soluna.html Soluna] and [http://adam.typepad.com/impossiblethings/2006/05/cafe_gibraltar.html Cafe Gibraltar]&lt;br /&gt;
** hReviews include the rating inside of the description - 12/11/2006&lt;br /&gt;
* [http://www.mattmcalister.com/blog/ Matt McAllister] wrote an [http://www.mattmcalister.com/blog/_archives/2005/11/16/1408893.html hReview of the TV show: &amp;quot;The Office&amp;quot;]&lt;br /&gt;
** hReviews have invalid item/fn markup (fn not a child of item) - 12/11/2006&lt;br /&gt;
** hReviews include the rating inside of the description - 12/11/2006&lt;br /&gt;
* [http://www.bmannconsulting.com/blog/bmann/ Boris Mann] wrote an [http://www.bmannconsulting.com/blog/bmann/doubletake-best-panorama-stitch-tool-for-mac-os-x hReview of DoubleTake, a panorama stitch tool for Mac OS X]&lt;br /&gt;
** hReview does not have an item&lt;br /&gt;
* [http://blog.ftwr.co.uk/ Peter Westwood] has written an [http://blog.ftwr.co.uk/archives/2005/10/03/blubeckers-hampton-court/ hReview of Blubeckers Hampton Court] and an [http://blog.ftwr.co.uk/archives/2006/01/05/the-fox-inn/ hReview of The Fox Inn Bucks Green, West Sussex]&lt;br /&gt;
** hReviews include the rating inside of the description - 12/11/2006&lt;br /&gt;
* [http://dougal.gunters.org/blog/ Dougal] has published an [http://dougal.gunters.org/blog/2005/08/03/french-vanilla-latte hReview of Wolfgang Puck’s Gourmet French Vanilla Latte].&lt;br /&gt;
** hReviews have invalid item/fn markup (fn not a child of item) - 12/11/2006&lt;br /&gt;
** hReviews include the rating inside of the description - 12/11/2006&lt;br /&gt;
* [http://www.dinnerbuzz.com/ Dinnerbuzz] is a great site for posting tagged reviews of restaurants, and they publish and summarize all their reviews in hReview!&lt;br /&gt;
* [http://soldierant.net/ Bryce Glass (Soldier Ant)] posted an [http://soldierant.net/archives/2005/06/product_review.html hReview of the Uniden ELBT 595 Bluetooth Cordless Phone].&lt;br /&gt;
** hReviews have invalid item/fn markup (fn not a child of item) - 12/11/2006&lt;br /&gt;
** hReviews include the rating inside of the description - 12/11/2006&lt;br /&gt;
* dda posted an [http://sungnyemun.org/wordpress/?p=20 hReview of hReview] :) &lt;br /&gt;
** hReviews have invalid item/fn markup (fn not a child of item) - 12/11/2006&lt;br /&gt;
* An [http://tbp.xomerang.com/?p=3 hReview of Caffè Camardo coffee].&lt;br /&gt;
** No hreview on page even though the page claims to be an hreview&lt;br /&gt;
* [http://loadaveragezero.com/hnav/contact.php Douglas Clifton] posted [http://loadaveragezero.com/#May-12-2005 comments] regarding adapting his list of ~800 [http://loadaveragezero.com/app/drx Developer Resources] as a format for evaluating hReview.&lt;br /&gt;
* [http://www.oliverbrown.me.uk/ Oliver Brown] [http://www.oliverbrown.me.uk/2005/05/09/sitereviewsorg-supports-hreview-i-think/ has announced] that his [http://en-us.sitereviews.org/ SiteReviews.org] (which reviews websites) publishes its reviews using hReview, e.g. here is the [http://en-us.sitereviews.org/review-photomatt.net review on SiteReviews.org for photomatt.net].&lt;br /&gt;
* [http://www.myelin.co.nz/post/ Phillip Pearson] is publishing hReviews in the [http://coffee.gen.nz/rss/reviews RSS feed of cafe reviews] on his [http://coffee.gen.nz/ kiwi coffee review site], which of course has the reviews in HTML with embedded hReview markup as well.&lt;br /&gt;
** hReviews have invalid item/fn markup (fn not a child of item) - 12/11/2006&lt;br /&gt;
* [http://station11.net/ticker/ Kjell] is publishing his link blog as a [http://station11.net/ticker/ list of hReviews].&lt;br /&gt;
** hReviews have no fn specified on the item - 12/11/2006&lt;br /&gt;
* [http://epeus.blogspot.com/ Kevin Marks] has [http://epeus.blogspot.com/2005_04_01_epeus_archive.html#111484565269684374 published two hReviews] and used unicode &amp;quot;star&amp;quot; characters for his ratings!&lt;br /&gt;
** hReviews have invalid item/fn markup (fn not a child of item) - 12/11/2006&lt;br /&gt;
* JamesStewart is publishing hReviews in the location pages at his [http://grwifi.net Grand Rapids WiFi site].&lt;br /&gt;
* [http://www.happenchance.co.uk/ Paul Livingstone] uses hreview to voice his opinion on [http://happenchance.co.uk/reading/ books] and [http://happenchance.co.uk/listening/ music].&lt;br /&gt;
** hReviews have invalid item/fn markup (fn not a child of item) - 12/11/2006&lt;br /&gt;
* [http://www.stuffandnonsense.co.uk/ Andy Clarke] uses hReview for his [http://www.stuffandnonsense.co.uk/general/recommended-reading.html recommended reading list].&lt;br /&gt;
** hReviews have no fn specified on the item - 12/11/2006&lt;br /&gt;
* [http://nachlin.com/ Jim Nachlin] has added hReview publishing to the CMS he uses to publish  [http://daysofleisure.com/writing his blog].&lt;br /&gt;
** hReviews have invalid item/fn markup (fn not a child of item) - 12/11/2006&lt;br /&gt;
* [http://whumpdotcom.livejournal.com/236856.html Bill Humphries] has reviewed the book &amp;quot;A Brother's Price&amp;quot; on his LiveJournal.&lt;br /&gt;
** hReviews have invalid item/fn markup (fn not a child of item) - 12/11/2006&lt;br /&gt;
* [http://www.thinkvitamin.com/ Vitamin] uses hReview on it's [http://www.thinkvitamin.com/reviews/ reviews] section (e.g. a [http://www.thinkvitamin.com/reviews/webapps/fluxiom/ review of Fluxiom]).&lt;br /&gt;
* [http://www.openguides.org/ OpenGuides] has support for the hReview microformat, and you can see it in action on [http://cotswolds.openguides.org/wiki/The_Plough,_Finstock this Cotswolds OpenGuide Review].&lt;br /&gt;
** hReview does not have an item&lt;br /&gt;
* [http://paulgoscicki.com Paul Goscicki] is publishing his [http://paulgoscicki.com/#wp_movie_ratings movie ratings] using hReview.&lt;br /&gt;
* [http://www.cellphones.ca/ Cell Phones etc.] is using hReviews for user-contributed [http://www.cellphones.ca/cell-phones/reviews/ cell phone reviews].&lt;br /&gt;
* [http://www.liptrot.org Adam Liptrot] publishes movie reviews using hReview and hCard. See article at [http://www.liptrot.org/journal/entries/movies_and_microformats/ Movies and Microformats].&lt;br /&gt;
* [http://www.webteacher.ws Web Teacher] is using hReview for book reviews in both the hReview creator format and a modified format. See a modified example at [http://www.webteacher.ws/2006/11/review-web-design-complete.html Web Design: A Complete Introduction].&lt;br /&gt;
** hReviews include the rating inside of the description - 12/11/2006&lt;br /&gt;
* [http://niftylist.co.uk/ The nifty list UK.] is using hReviews for user-contributed [http://niftylist.co.uk/mobiles/ mobile phone reviews].&lt;br /&gt;
** hReview does not have an item&lt;br /&gt;
* [http://sergiosantos.info/2007/3/books SergioSantos.info] uses hReviews for the reviewed book collection.&lt;br /&gt;
* [http://www.dcs-media.com/ DCS Media] converted all of their Firefox extension Reviews into hReview format. See the [http://www.dcs-media.com/fireday/default.aspx Fireday] page for extension listings.&lt;br /&gt;
* [http://bit.ly/iiag Is It Any Good . biz]has added hReview to all of their product reviews. See this example review of [http://bit.ly/2A3nVk Leapster2 Learning System ].&lt;br /&gt;
&lt;br /&gt;
== Examples with some problems ==&lt;br /&gt;
If you find a problem with any example in any other section, please move it here, and note the precise problem and cite the section of the [[hreview|hReview spec]] that appears to be violated. If the example that was moved here is yours, and you want to improve it, see the [[hreview-faq|hReview FAQ]], or raise any queries on [[hreview-issues|hReview issues]] or [[mailing-lists#microformats-discuss|the mailing list]], where people will be happy to help you. &lt;br /&gt;
&lt;br /&gt;
* [http://apple.com/store Apple Store] customer reviews are marked up in hReview, as in [http://store.apple.com/1-800-MY-APPLE/WebObjects/AppleStore.woa/wa/RSLID?mco=E1BD7358&amp;amp;fnode=home/shop_mac/mac_accessories/airport_wireless&amp;amp;nplm=MB053LL/A#review-RTD4T4KYJYYF9UC44 this review] of the Airport Extreme Base Station.&lt;br /&gt;
**'''sub-optimal''': Model numbers (?) marked up as URLs, e.g. &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;SPAN class=&amp;quot;url&amp;quot;&amp;gt;MB053LL/A&amp;lt;/SPAN&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*loadaveragezero.com e.g. [http://loadaveragezero.com/app/drx/Data_Formats/Metadata/XMDP]&lt;br /&gt;
**'''invalid''': no fn (site owner informed)&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
== Reviewed Examples ==&lt;br /&gt;
If you have reviewed a New Example (and you are not the author of the example) and believe it to be valid, go ahead and move it here.&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
==Related pages==&lt;br /&gt;
{{hreview-related-pages}}&lt;/div&gt;</summary>
		<author><name>Elli</name></author>
	</entry>
</feed>