<?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=Myfreeweb</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=Myfreeweb"/>
	<link rel="alternate" type="text/html" href="https://microformats.org/wiki/Special:Contributions/Myfreeweb"/>
	<updated>2026-04-26T21:31:52Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=microformats2&amp;diff=66404</id>
		<title>microformats2</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=microformats2&amp;diff=66404"/>
		<updated>2017-05-28T11:55:15Z</updated>

		<summary type="html">&lt;p&gt;Myfreeweb: /* Parsers */ Move Haskell parser to the production section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;microformats2&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
Welcome to the microformats2 home page.&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
Microformats2 is the simplest way to markup structured information in HTML. Microformats2 improves ease of use and implementation for &amp;lt;em&amp;gt;both&amp;lt;/em&amp;gt; authors (publishers) and developers ([[microformats2-parsing|parser]] implementers).&lt;br /&gt;
&lt;br /&gt;
Microformats2 replaces and supersedes both classic microformats, as well as incorporates lessons learned from [[microdata]] and [[RDFa]].&lt;br /&gt;
&lt;br /&gt;
=== simple microformats 2 examples ===&lt;br /&gt;
Here are a few simple microformats2 examples along with canonical [[JSON]].&lt;br /&gt;
&lt;br /&gt;
==== person example ====&lt;br /&gt;
* Simple person reference:&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;h-card&amp;quot;&amp;gt;Frances Berriman&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Frances Berriman&amp;quot;] &lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== hyperlinked person ====&lt;br /&gt;
* Simple hyperlinked person reference&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;a class=&amp;quot;h-card&amp;quot; href=&amp;quot;http://benward.me&amp;quot;&amp;gt;Ben Ward&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Ben Ward&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://benward.me&amp;quot;]&lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== hyperlinked person image ====&lt;br /&gt;
* Simple hyperlinked person image&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;a class=&amp;quot;h-card&amp;quot; href=&amp;quot;http://rohit.khare.org/&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;img alt=&amp;quot;Rohit Khare&amp;quot;&lt;br /&gt;
      src=&amp;quot;https://s3.amazonaws.com/twitter_production/profile_images/53307499/180px-Rohit-sq_bigger.jpg&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Rohit Khare&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://rohit.khare.org/&amp;quot;],&lt;br /&gt;
      &amp;quot;photo&amp;quot;: [&amp;quot;https://s3.amazonaws.com/twitter_production/profile_images/53307499/180px-Rohit-sq_bigger.jpg&amp;quot;]&lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Additional simple cases details in [[microformats-2-implied-properties]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== detailed person example ====&lt;br /&gt;
* More detailed person&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;img class=&amp;quot;u-photo&amp;quot; alt=&amp;quot;photo of Mitchell&amp;quot;&lt;br /&gt;
       src=&amp;quot;https://webfwd.org/content/about-experts/300.mitchellbaker/mentor_mbaker.jpg&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name u-url&amp;quot;&lt;br /&gt;
     href=&amp;quot;http://blog.lizardwrangler.com/&amp;quot; &lt;br /&gt;
    &amp;gt;Mitchell Baker&amp;lt;/a&amp;gt;&lt;br /&gt;
 (&amp;lt;a class=&amp;quot;u-url&amp;quot; &lt;br /&gt;
     href=&amp;quot;https://twitter.com/MitchellBaker&amp;quot;&lt;br /&gt;
    &amp;gt;@MitchellBaker&amp;lt;/a&amp;gt;)&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-org&amp;quot;&amp;gt;Mozilla Foundation&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;p class=&amp;quot;p-note&amp;quot;&amp;gt;&lt;br /&gt;
    Mitchell is responsible for setting the direction and scope of the Mozilla Foundation and its activities.&lt;br /&gt;
  &amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-category&amp;quot;&amp;gt;Strategy&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-category&amp;quot;&amp;gt;Leadership&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;photo&amp;quot;: [&amp;quot;https://webfwd.org/content/about-experts/300.mitchellbaker/mentor_mbaker.jpg&amp;quot;],&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Mitchell Baker&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&lt;br /&gt;
        &amp;quot;http://blog.lizardwrangler.com/&amp;quot;,&lt;br /&gt;
        &amp;quot;https://twitter.com/MitchellBaker&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;org&amp;quot;: [&amp;quot;Mozilla Foundation&amp;quot;],&lt;br /&gt;
      &amp;quot;note&amp;quot;: [&amp;quot;Mitchell is responsible for setting the direction and scope of the Mozilla Foundation and its activities.&amp;quot;],&lt;br /&gt;
      &amp;quot;category&amp;quot;: [&lt;br /&gt;
        &amp;quot;Strategy&amp;quot;,&lt;br /&gt;
        &amp;quot;Leadership&amp;quot;&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Notes: &lt;br /&gt;
# The JSON &amp;lt;code&amp;gt;&amp;quot;type&amp;quot;&amp;lt;/code&amp;gt; uses the full microformat root class name (e.g. &amp;lt;code&amp;gt;&amp;quot;h-card&amp;quot;&amp;lt;/code&amp;gt;) for consistent identification.&lt;br /&gt;
# all properties are optional and syntactically plural with parsed values provided in document order; particular microformats (and applications there-of) may apply specific/singular semantics to first value of a property.&lt;br /&gt;
&lt;br /&gt;
=== microformats2 design ===&lt;br /&gt;
&lt;br /&gt;
microformats2 has the following key design aspects:&lt;br /&gt;
&lt;br /&gt;
; Prefixes for class names&lt;br /&gt;
: All microformats class names use prefixes. Prefixes are '''syntax independent from vocabularies''', which are developed separately.&lt;br /&gt;
* &amp;lt;code&amp;gt;h-*&amp;lt;/code&amp;gt; for root class names (e.g. &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &amp;lt;code&amp;gt;p-*&amp;lt;/code&amp;gt; for plain text properties (e.g. &amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &amp;lt;code&amp;gt;u-*&amp;lt;/code&amp;gt; for URL properties (e.g. &amp;lt;code&amp;gt;u-photo&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &amp;lt;code&amp;gt;dt-*&amp;lt;/code&amp;gt; for date/time properties (e.g. &amp;lt;code&amp;gt;dt-bday&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &amp;lt;code&amp;gt;e-*&amp;lt;/code&amp;gt; for embedded markup properties (e.g. &amp;lt;code&amp;gt;e-note&amp;lt;/code&amp;gt;)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[microformats2#naming_conventions_for_generic_parsing|prefix naming conventions]] for more details.&lt;br /&gt;
&lt;br /&gt;
; Flat sets of optional properties&lt;br /&gt;
: All microformats consist of a root, and a collection of properties. Hierarchical data is represented with nested microformats, typically as property values themselves. Properties are all optional and potentially multivalued (applications needing a singular semantic may use first instance).&lt;br /&gt;
&lt;br /&gt;
; Single class markup for common uses&lt;br /&gt;
: Common simple markup patterns require only a single microformat root class name, which parsers use to find a few generic properties: &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;photo&amp;lt;/code&amp;gt;. The simple microformats2 examples above demonstrate these.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parsing each prefix (including generating canonical JSON) is detailed step-by-step in:&lt;br /&gt;
* The '''[[microformats2-parsing|microformats2 parsing specification]]'''&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Most properties are specified and used with a single specific prefix (or occasionally two or three) that is self-evident from context. However, any parsing prefix can be used with any property, especially if you find a good reason to do so!&lt;br /&gt;
&lt;br /&gt;
== v2 vocabularies ==&lt;br /&gt;
Status: '''&amp;lt;span id=&amp;quot;draft_v2_vocabularies&amp;quot;&amp;gt;draft&amp;lt;/span&amp;gt;'''. Please review and provide feedback in [[IRC]].&lt;br /&gt;
* [[h-adr]]&lt;br /&gt;
* [[h-card]]&lt;br /&gt;
* [[h-entry]]&lt;br /&gt;
* [[h-event]]&lt;br /&gt;
* [[h-feed]]&lt;br /&gt;
* [[h-geo]]&lt;br /&gt;
* [[h-item]]&lt;br /&gt;
* [[h-listing]]&lt;br /&gt;
* [[h-product]]&lt;br /&gt;
* [[h-recipe]]&lt;br /&gt;
* [[h-resume]]&lt;br /&gt;
* [[h-review]]&lt;br /&gt;
* [[h-review-aggregate]]&lt;br /&gt;
&lt;br /&gt;
See below for vocabulary summaries.&lt;br /&gt;
&lt;br /&gt;
=== h-adr ===&lt;br /&gt;
{{main|h-adr}}&lt;br /&gt;
&lt;br /&gt;
The '''h-adr''' microformat is for marking up structured locations such as addresses, physical and/or postal. This is an update to [[adr]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-adr&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-adr&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-post-office-box&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-extended-address&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-street-address&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-locality&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-region&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-postal-code&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-country-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-label&amp;lt;/code&amp;gt;''' - new in [[vCard4]] ([[RFC6350]])&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-geo&amp;lt;/code&amp;gt;''' (or '''&amp;lt;code&amp;gt;u-geo&amp;lt;/code&amp;gt;''' with a RFC 5870 geo: URL) - new in [[vCard4]] ([[RFC6350]])&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-latitude&amp;lt;/code&amp;gt;''' - new in [[vCard4]] ([[RFC6350]] from RFC 5870)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-longitude&amp;lt;/code&amp;gt;''' - new in [[vCard4]] ([[RFC6350]] from RFC 5870)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-altitude&amp;lt;/code&amp;gt;''' - new in [[vCard4]] ([[RFC6350]] from RFC 5870)&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-adr&amp;quot; is found, don't look for an &amp;quot;adr&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;adr&amp;quot;&amp;gt;adr&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;post-office-box&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;extended-address&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;street-address&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;locality&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;region&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;postal-code&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;country-name&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== h-card ===&lt;br /&gt;
{{main|h-card}}&lt;br /&gt;
&lt;br /&gt;
The '''h-card''' microformat is for marking up people and organizations. This is an update to [[hCard]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-card&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-honorific-prefix&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-given-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-additional-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-family-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-sort-string&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-honorific-suffix&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-nickname&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-email&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-logo&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-photo&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-uid&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-category&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-adr&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-post-office-box&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-extended-address&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-street-address&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-locality&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-region&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-postal-code&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-country-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-label&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-geo&amp;lt;/code&amp;gt;''' or '''&amp;lt;code&amp;gt;u-geo&amp;lt;/code&amp;gt;''' with a RFC 5870 geo: URL, new in [[vCard4]] ([[RFC6350]])&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-latitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-longitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-altitude&amp;lt;/code&amp;gt;''' - new in [[vCard4]] ([[RFC6350]] from RFC 5870)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-tel&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-note&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-bday&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-key&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-org&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-job-title&amp;lt;/code&amp;gt;''' - previously 'title' in hCard, disambiguated.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-role&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-impp&amp;lt;/code&amp;gt;''' per RFC 4770, new in [[vCard4]] ([[RFC6350]])&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-sex&amp;lt;/code&amp;gt;''' new in [[vCard4]] ([[RFC6350]])&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-gender-identity&amp;lt;/code&amp;gt;''' new in [[vCard4]] ([[RFC6350]])&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-anniversary&amp;lt;/code&amp;gt;''' new in [[vCard4]] ([[RFC6350]])&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
Reserved properties: (properties not used much (if at all) in practice)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-organization-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-organization-unit&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-tz&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-rev&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-card&amp;quot; is found, don't look for a &amp;quot;vcard&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;vcard&amp;quot;&amp;gt;vcard&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;fn&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;honorific-prefix&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;given-name&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;additional-name&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;family-name&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;honorific-suffix&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;nickname&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;email&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;logo&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;photo&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;category&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;adr&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-adr h-adr&amp;lt;/code&amp;gt;''' including compat root class &amp;lt;code&amp;gt;adr&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;extended-address&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;street-address&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;locality&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;region&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;postal-code&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;country-name&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;geo&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-geo h-geo&amp;lt;/code&amp;gt;''' including compat root class &amp;lt;code&amp;gt;geo&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;latitude&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;longitude&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;tel&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;note&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;bday&amp;lt;/code&amp;gt; - parse as '''dt-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;key&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;org&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;organization-name&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;organization-unit&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; - parse as '''p-job-title'''&lt;br /&gt;
* &amp;lt;code&amp;gt;role&amp;lt;/code&amp;gt;&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
Reserved: (backward compat properties that parsers {{may}} implement, if they do, they {{must}} implement in this way:&lt;br /&gt;
* &amp;lt;code&amp;gt;tz&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;rev&amp;lt;/code&amp;gt; - parse as '''dt-'''&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
Note: use of 'value' within 'tel' should be automatically handled by the support of the [[value-class-pattern]]. And for now, the 'type' subproperty of 'tel' is dropped/ignored. If there is demonstrable documented need for additional tel types (e.g. fax), we can introduce new flat properties as needed (e.g. p-tel-fax).&lt;br /&gt;
&lt;br /&gt;
=== h-entry ===&lt;br /&gt;
{{main|h-entry}}&lt;br /&gt;
&lt;br /&gt;
The '''h-entry''' microformat is for marking up syndicatable content such as blog posts, notes, articles, comments, photos and similar. This is an update to [[hAtom]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-entry&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;''' (was p-entry-title, see issues)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt;''' (was p-entry-summary, see issues)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;e-content&amp;lt;/code&amp;gt;''' (was e-entry-content, see issues)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-published&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-updated&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-author&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-category&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-uid&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-geo&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-latitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-longitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
This is an update to [[hAtom]]. &lt;br /&gt;
&lt;br /&gt;
Brainstorming:&lt;br /&gt;
&lt;br /&gt;
The following properties are proposed additions to h-entry above and beyond what hAtom (or Atom) provides, based on various existing link preview markup conventions:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-photo&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-audio&amp;lt;/code&amp;gt;''' - consider special u- parsing rules for &amp;lt;code&amp;gt;&amp;amp;lt;audio&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-video&amp;lt;/code&amp;gt;''' - consider special u- parsing rules for &amp;lt;code&amp;gt;&amp;amp;lt;video&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-in-reply-to&amp;lt;/code&amp;gt;''' - for links to other posts that this post is a reply to (comment regarding, etc.)&lt;br /&gt;
&lt;br /&gt;
Backward compatibility: &lt;br /&gt;
&lt;br /&gt;
(*)hAtom-specific implementations that perform custom display or translation (e.g. to Atom XML) {{should}} prefer &amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt; over &amp;lt;code&amp;gt;p-entry-title&amp;lt;/code&amp;gt;, and use &amp;lt;code&amp;gt;p-entry-title&amp;lt;/code&amp;gt; value(s) as a fallback if there is no &amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For hAtom backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-entry&amp;quot; is found, don't look for a &amp;quot;hentry&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;hentry&amp;quot;&amp;gt;hentry&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;entry-title&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;entry-summary&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;entry-content&amp;lt;/code&amp;gt; - parse as '''e-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;published&amp;lt;/code&amp;gt; - parse as '''dt-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;updated&amp;lt;/code&amp;gt; - parse as '''dt-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; - including compat root &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;category&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;geo&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-geo h-geo&amp;lt;/code&amp;gt;''' including compat root &amp;lt;code&amp;gt;geo&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;latitude&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;longitude&amp;lt;/code&amp;gt;&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;h-entry-faq&amp;quot;&amp;gt;FAQ:&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;discussion&amp;quot;&amp;gt;&lt;br /&gt;
* '''What is the &amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt; of a [http://indiewebcamp.com/note note]?'''&lt;br /&gt;
** A few options, from simplest to most detailed.&lt;br /&gt;
*** '''same as the p-content/e-content''' property.&lt;br /&gt;
*** '''same as the &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; element''' on the note permalink post page. When publishing a note on its own permalink post page, the contents of the note are likely abbreviated for the title of the page. The same abbreviation can be used for the p-name.&lt;br /&gt;
*** '''first sentence of the p-content/e-content''' property. It may be better for [http://indiewebcamp.com/syndication syndication] and [[link-preview]] purposes to provide just the first sentence of the note as the &amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;. Similarly if only a portion of the content is syndicated to other sites, that portion can be marked up as the &amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt;.&lt;br /&gt;
* ...&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolved Issues:&lt;br /&gt;
* 2012-245 Resolved. See [http://krijnhoetmer.nl/irc-logs/microformats/20120830#l-120 2012-243 IRC discussion/consensus] for:&lt;br /&gt;
** Use '''&amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;p-entry-summary&amp;lt;/code&amp;gt;'''. The historical semantic of &amp;quot;entry-summary&amp;quot; is not different from &amp;quot;summary&amp;quot; in any significant (or discernible way). Collapsing the two will simplify the overall microformats2 vocabularies further. In microformats2, entry-summary is no more.&lt;br /&gt;
** Use '''&amp;lt;code&amp;gt;e-content&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;e-entry-content&amp;lt;/code&amp;gt;'''. Same point and advantage. In microformats2, entry-content is no more.&lt;br /&gt;
** '''drop &amp;lt;code&amp;gt;p-entry-title&amp;lt;/code&amp;gt;'''. Unnecessary and subsumed by &amp;quot;p-name&amp;quot;. Would consider move to backward compat only if cases are presented - known publishing uses are expected to be updated shortly.&lt;br /&gt;
&lt;br /&gt;
=== h-event ===&lt;br /&gt;
{{main|h-event}}&lt;br /&gt;
&lt;br /&gt;
The '''h-event''' microformat is for marking up events. This is an update to [[hCalendar]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-event&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-event&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt;'''(*)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-start&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-end&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-duration&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-description&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-category&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-location&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-geo&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-latitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-longitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
This is an update to [[hCalendar]]. &lt;br /&gt;
&lt;br /&gt;
(*)hCalendar-specific implementations that perform custom display or translation (e.g. to iCalendar .ics) {{should}} prefer &amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt; over &amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt;, and use &amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt; value(s) as a fallback if there is no &amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-event&amp;quot; is found, don't look for a &amp;quot;vevent&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;vevent&amp;quot;&amp;gt;vevent&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;dtstart&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;dt-start&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;dtend&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;dt-end&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;duration&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;dt-duration&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;category&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; - including compat root &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;, and compat root &amp;lt;code&amp;gt;adr&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-adr&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;geo&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-geo h-geo&amp;lt;/code&amp;gt;''' including compat root &amp;lt;code&amp;gt;geo&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;latitude&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;longitude&amp;lt;/code&amp;gt;&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=== h-geo ===&lt;br /&gt;
{{main|h-geo}}&lt;br /&gt;
&lt;br /&gt;
The '''h-geo''' microformat is for marking up WGS84 geophysical coordinates. This is an update to [[geo]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-geo&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-geo&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-latitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-longitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-altitude&amp;lt;/code&amp;gt;''' - new in [[vCard4]] ([[RFC6350]] from RFC 5870)&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-geo&amp;quot; is found, don't look for an &amp;quot;geo&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;geo&amp;quot;&amp;gt;geo&amp;lt;/code&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;latitude&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;longitude&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== h-item ===&lt;br /&gt;
{{main|h-item}}&lt;br /&gt;
&lt;br /&gt;
The '''h-item''' microformat is for marking up the item of an [[h-review]] or [[h-product]]. This is an update to part of [[hReview]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-item&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-item&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-photo&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Note: in practice, due to the microformats2 implied property rules, it is expected that most uses of &amp;quot;h-item&amp;quot; won't require any explicit properties at all (since microformats2 parsers will infer name, photo, and url properties from the structure of the element with &amp;quot;h-item&amp;quot; and its contained content/elements if any).&lt;br /&gt;
&lt;br /&gt;
=== h-product ===&lt;br /&gt;
{{main|h-product}}&lt;br /&gt;
&lt;br /&gt;
The '''h-product''' microformat is for marking up products. This is an update to [[hProduct]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-product&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-product&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;''' - name of the product&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-photo&amp;lt;/code&amp;gt;''' - photo of the product&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-brand&amp;lt;/code&amp;gt;''' - manufacturer, can also be a nested &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-category&amp;lt;/code&amp;gt;''' - freeform categories or tags applied to the item by the reviewer &lt;br /&gt;
* '''&amp;lt;code&amp;gt;e-description&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;''' - URL of the product&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-identifier&amp;lt;/code&amp;gt;''' - includes type (e.g. mpn, upc, isbn, issn, sn, vin, sku etc.) and value.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-review&amp;lt;/code&amp;gt;''' - a review of the product, can also be a nested &amp;lt;code&amp;gt;h-review&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-price&amp;lt;/code&amp;gt;''' - retail price of the product&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-product&amp;quot; is found, don't look for an &amp;quot;hproduct&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;hproduct&amp;quot;&amp;gt;hproduct&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;fn&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;photo&amp;lt;/code&amp;gt;  - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;brand&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;category&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;identifier&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;review&amp;lt;/code&amp;gt; - including compat root class &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-review&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;price&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: [[hProduct]] has at least one experimental property which has real world adoption due to [[Google]] and [[Bing]] search support of hProduct. Currently this is: '''price'''&lt;br /&gt;
&lt;br /&gt;
=== h-recipe ===&lt;br /&gt;
{{main|h-recipe}}&lt;br /&gt;
&lt;br /&gt;
The '''h-recipe''' microformat is for marking up food recipes. This is an update to [[hRecipe]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-recipe&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-recipe&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;''' - the name of the recipe&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-ingredient&amp;lt;/code&amp;gt;''' - describes one or more ingredients used in the recipe.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-yield&amp;lt;/code&amp;gt;''' - Specifies the quantity produced by the recipe, like how many persons it satisfyies &lt;br /&gt;
* '''&amp;lt;code&amp;gt;e-instructions&amp;lt;/code&amp;gt;''' - the method of the recipe.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-duration&amp;lt;/code&amp;gt;''' - the time it takes to prepare the meal described by the recipe.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-photo&amp;lt;/code&amp;gt;''' - an accompanying image&lt;br /&gt;
&lt;br /&gt;
Experimental properties with wide adoption&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt;'''  - provides a short summary or introduction &lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-author&amp;lt;/code&amp;gt;''' - the person who wrote the recipe with &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-published&amp;lt;/code&amp;gt;''' - the date the recipe was published&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-nutrition&amp;lt;/code&amp;gt;''' - nutritional information like calories, fat, dietary fiber etc.&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-recipe&amp;quot; is found, don't look for an &amp;quot;hrecipe&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;hrecipe&amp;quot;&amp;gt;hrecipe&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;fn&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;ingredient&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;yield&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;instructions&amp;lt;/code&amp;gt; - parse as '''e-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;duration&amp;lt;/code&amp;gt; - parse as '''dt-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;photo&amp;lt;/code&amp;gt;  - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; - including compat root &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;nutrition&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: [[hRecipe]] has a number of experimental properties which have real world adoption due to [[Google]] recipe search support of hRecipe. These are: summary, author, published and nutrition&lt;br /&gt;
&lt;br /&gt;
=== h-resume ===&lt;br /&gt;
{{main|h-resume}}&lt;br /&gt;
&lt;br /&gt;
The '''h-resume''' microformat is for marking up resumes. This is an update to [[hResume]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-resume&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-resume&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt;''' - overview of qualifications and objectives&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-contact&amp;lt;/code&amp;gt;''' - current contact info in an &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-education&amp;lt;/code&amp;gt;''' - an education &amp;lt;code&amp;gt;h-calendar&amp;lt;/code&amp;gt; event, years, nested &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt; of the school, location.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-experience&amp;lt;/code&amp;gt;''' - a job or other professional experience &amp;lt;code&amp;gt;h-calendar&amp;lt;/code&amp;gt; event, years, nested &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt; of the organization, location, job-title.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-skill&amp;lt;/code&amp;gt;''' - a skill or ability, optionally including level and/or duration of experience&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-affiliation&amp;lt;/code&amp;gt;''' - an affiliation with an &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt; organization&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-resume&amp;quot; is found, don't look for an &amp;quot;hresume&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;hresume&amp;quot;&amp;gt;hresume&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;contact&amp;lt;/code&amp;gt; - including compat root &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;education&amp;lt;/code&amp;gt; - including compat root &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-event&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;experience&amp;lt;/code&amp;gt; - including compat root &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-event&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;skill&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;affiliation&amp;lt;/code&amp;gt; - including compat root &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: skill has a [[hresume-skill-brainstorm|proposed expansion into competency]] with explicit summary, rating and/or duration components. Based on existing real world adoption, we should consider an h-competency vocabulary with p-summary, p-rating, and dt-duration properties.&lt;br /&gt;
&lt;br /&gt;
=== h-review ===&lt;br /&gt;
{{main|h-review}}&lt;br /&gt;
&lt;br /&gt;
The '''h-review''' microformat is for marking up reviews. This is an update to [[hReview]]. See also [[h-item]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-review&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-review&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;''' - name of the review&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-item&amp;lt;/code&amp;gt;''' - thing been reviewed i.e. business or person (h-card), event (h-event), place (h-adr or h-geo), product (h-product), website, url, or other item ([[h-item]]).&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-reviewer&amp;lt;/code&amp;gt;''' - person who authored the review &lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-reviewed&amp;lt;/code&amp;gt;''' - date time of when the review was written&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-rating&amp;lt;/code&amp;gt;''' - value from 1-5 indicating a rating for the item (5 best).&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-best&amp;lt;/code&amp;gt;'''  - define best rating value. can be numerically lower than worst.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-worst&amp;lt;/code&amp;gt;'''  - define worst rating value. can be numerically higher than best. &lt;br /&gt;
* '''&amp;lt;code&amp;gt;e-description&amp;lt;/code&amp;gt;''' - the full text written evaluation and opinion of the reviewer&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-category&amp;lt;/code&amp;gt;''' - freeform categories or tags applied to the item by the reviewer &lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;''' - URL of the review&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-review&amp;quot; is found, don't look for an &amp;quot;hreview&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;hreview&amp;quot;&amp;gt;hreview&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; parse as '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;fn&amp;lt;/code&amp;gt; - parse as '''p-name''' of the item being reviewed (p-item h-item p-name)&lt;br /&gt;
* &amp;lt;code&amp;gt;photo&amp;lt;/code&amp;gt; - parse as '''u-photo''' of the item being reviewed (p-item h-item u-photo)&lt;br /&gt;
* &amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt; - parse as '''u-url''' of the item being reviewed (p-item h-item u-url)&lt;br /&gt;
* &amp;lt;code&amp;gt;reviewer&amp;lt;/code&amp;gt;  - including compat root vcard in the absence of h-card&lt;br /&gt;
* &amp;lt;code&amp;gt;dtreviewed&amp;lt;/code&amp;gt; - parse as '''dt-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;best&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;worst&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; - parse as '''e-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;rel=&amp;quot;tag&amp;quot;&amp;lt;/code&amp;gt; - parse as '''p-category'''&lt;br /&gt;
* &amp;lt;code&amp;gt;rel=&amp;quot;self bookmark&amp;quot;&amp;lt;/code&amp;gt; - parse as '''u-url'''. note that &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt; attribute value is treated as a space separated set, thus any presence of &amp;quot;self&amp;quot; and &amp;quot;bookmark&amp;quot; within such a set in a rel value is accepted.&lt;br /&gt;
&lt;br /&gt;
Note: The [[hReview]] format has three properties which make use of &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt; attribute, these are &amp;lt;code&amp;gt;tag&amp;lt;/code&amp;gt;, permalink (via the &amp;lt;code&amp;gt;self&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bookmark&amp;lt;/code&amp;gt; values) and &amp;lt;code&amp;gt;license&amp;lt;/code&amp;gt;. Microformats 2 parsers {{should}} map these URLs into the page scoped rel collection.&lt;br /&gt;
&lt;br /&gt;
=== h-review-aggregate ===&lt;br /&gt;
{{main|h-review-aggregate}}&lt;br /&gt;
&lt;br /&gt;
The '''h-review-aggregate''' microformat is for marking up aggregate reviews of a single item. This is an update to [[hreview-aggregate]]. See also [[h-item]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-review-aggregate&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-review-aggregate&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;''' - name of the review&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-item&amp;lt;/code&amp;gt;''' - thing been reviewed i.e. business or person (h-card), event (h-event), place (h-adr or h-geo), product (h-product), website, url, or other item (h-item).&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-rating&amp;lt;/code&amp;gt;''' - value from 1-5 indicating average rating for the item (5 best).&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-best&amp;lt;/code&amp;gt;'''  - define best rating value. can be numerically lower than worst.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-worst&amp;lt;/code&amp;gt;'''  - define worst rating value. can be numerically higher than best. &lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-count&amp;lt;/code&amp;gt;'''  - number of reviews aggregated.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-votes&amp;lt;/code&amp;gt;'''  - number of reviewers who have rated the product, thus contributing to the average rating.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-category&amp;lt;/code&amp;gt;''' - freeform categories or tags applied to the item by the reviewer&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;''' - URL of the review&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-review-aggregate&amp;quot; is found, don't look for an &amp;quot;hreview-aggregate&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;hreview-aggregate&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; parse as '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;fn&amp;lt;/code&amp;gt; - parse as '''p-name''' of the item being reviewed (p-item h-item p-name)&lt;br /&gt;
* &amp;lt;code&amp;gt;photo&amp;lt;/code&amp;gt; - parse as '''u-photo''' of the item being reviewed (p-item h-item u-photo)&lt;br /&gt;
* &amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt; - parse as '''u-url''' of the item being reviewed (p-item h-item u-url)&lt;br /&gt;
* &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;best&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;worst&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;count&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;votes&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;rel=&amp;quot;tag&amp;quot;&amp;lt;/code&amp;gt; - parse as '''p-category'''&lt;br /&gt;
* &amp;lt;code&amp;gt;rel=&amp;quot;self bookmark&amp;quot;&amp;lt;/code&amp;gt; - parse as '''u-url'''. note that &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt; attribute value is treated as a space separated set, thus any presence of &amp;quot;self&amp;quot; and &amp;quot;bookmark&amp;quot; within such a set in a rel value is accepted.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== v2 vocab notes ===&lt;br /&gt;
Notes: &lt;br /&gt;
* All v2 vocabularies are defined as flat lists of properties of an object/item, and thus can be used in microformats-2 syntax as shown, or in microdata items, or RDFa. The microformats-2 property parsing prefixes &amp;quot;p-&amp;quot;, &amp;quot;u-&amp;quot;, &amp;quot;dt-&amp;quot;, &amp;quot;e-&amp;quot; are omitted when using defined properties in microdata itemprop and RDFa property as those syntaxes have their own element-specific parsing rules.&lt;br /&gt;
* Profile URLs are provided for use with the HTML4 &amp;lt;code&amp;gt;profile&amp;lt;/code&amp;gt; attribute, microdata &amp;lt;code&amp;gt;itemtype&amp;lt;/code&amp;gt; attribute, and RDFa &amp;lt;code&amp;gt;vocab&amp;lt;/code&amp;gt; &amp;amp;amp; &amp;lt;code&amp;gt;typeof&amp;lt;/code&amp;gt; attributes (though the latter requires slicing off the trailing segment of the profile for the typeof attribute, and leaving the rest in vocab). &lt;br /&gt;
* microformats 2 properties may also be explicitly bound as URIs using [[rel-profile]], the [[html5-profile]] attribute proposal, or an HTML5 'vocab' attribute instead. If URI bound terms are important to you, please express interest on [[rel-profile]], [[html5-profile]], or contribute to an [[html5-vocab]] draft.&lt;br /&gt;
&lt;br /&gt;
=== v2 vocab to-do ===&lt;br /&gt;
To do: &lt;br /&gt;
* write a simple tutorial for creating/getting started with microformats-2 markup for new content&lt;br /&gt;
* examples in each h-* spec listed above of how to embed other microformats in them&lt;br /&gt;
* actual profile documents at &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-*&amp;lt;/nowiki&amp;gt; URLs mentioned above.&lt;br /&gt;
* Provide any necessary microdata-specific language as needed (e.g. to be comparably understandable to the [http://www.whatwg.org/specs/web-apps/current-work/#vcard sample vCard4/hCard1 microdata vocabulary]. Also provide any necessary RDFa-specific language as needed. Both preferably in a generic vocabulary-independent way.&lt;br /&gt;
* write a porting guide mapping v1 property -&amp;gt; v2 property&lt;br /&gt;
** use-case: simple search/replace in templates (e.g. in case web author doesn't remember existing microformats vocabs and where they used them).&lt;br /&gt;
** advise using *both* in existing templates (e.g. in case some CSS depends on the existing microformats)&lt;br /&gt;
* analyzie/document how well the microformats2 model and vocabularies satisfy the [http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-May/019681.html use-cases used to design/create microdata].&lt;br /&gt;
&lt;br /&gt;
== combining microformats ==&lt;br /&gt;
Since microformats 2 uses simple flat sets of properties for each microformat, multiple microformats are combined to indicate additional structure.&lt;br /&gt;
&lt;br /&gt;
=== h-event location h-card ===&lt;br /&gt;
Events commonly have venue information with additional structure, like address information. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-event&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name u-url&amp;quot; href=&amp;quot;http://indiewebcamp.com/2012&amp;quot;&amp;gt;&lt;br /&gt;
    IndieWebCamp 2012&lt;br /&gt;
  &amp;lt;/a&amp;gt;&lt;br /&gt;
  from &amp;lt;time class=&amp;quot;dt-start&amp;quot;&amp;gt;2012-06-30&amp;lt;/time&amp;gt; &lt;br /&gt;
  to &amp;lt;time class=&amp;quot;dt-end&amp;quot;&amp;gt;2012-07-01&amp;lt;/time&amp;gt; at &lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-location h-card&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;a class=&amp;quot;p-name p-org u-url&amp;quot; href=&amp;quot;http://geoloqi.com/&amp;quot;&amp;gt;&lt;br /&gt;
      Geoloqi&lt;br /&gt;
    &amp;lt;/a&amp;gt;, &lt;br /&gt;
    &amp;lt;span class=&amp;quot;p-street-address&amp;quot;&amp;gt;920 SW 3rd Ave. Suite 400&amp;lt;/span&amp;gt;, &lt;br /&gt;
    &amp;lt;span class=&amp;quot;p-locality&amp;quot;&amp;gt;Portland&amp;lt;/span&amp;gt;, &lt;br /&gt;
    &amp;lt;abbr class=&amp;quot;p-region&amp;quot; title=&amp;quot;Oregon&amp;quot;&amp;gt;OR&amp;lt;/abbr&amp;gt;&lt;br /&gt;
  &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The nested h-card used to structure the p-location of the h-event is represented as a structured value for &amp;quot;location&amp;quot; in the JSON, which has an additional key, &amp;quot;value&amp;quot; that represents the plain text version parsed from the p-location.&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-event&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;IndieWebCamp 2012&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://indiewebcamp.com/2012&amp;quot;],&lt;br /&gt;
      &amp;quot;start&amp;quot;: [&amp;quot;2012-06-30&amp;quot;],&lt;br /&gt;
      &amp;quot;end&amp;quot;: [&amp;quot;2012-07-01&amp;quot;],&lt;br /&gt;
      &amp;quot;location&amp;quot;: [{&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Geoloqi&amp;quot;,&lt;br /&gt;
        &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
        &amp;quot;properties&amp;quot;: {&lt;br /&gt;
          &amp;quot;name&amp;quot;: [&amp;quot;Geoloqi&amp;quot;],&lt;br /&gt;
          &amp;quot;org&amp;quot;: [&amp;quot;Geoloqi&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;http://geoloqi.com/&amp;quot;],&lt;br /&gt;
          &amp;quot;street-address&amp;quot;: [&amp;quot;920 SW 3rd Ave. Suite 400&amp;quot;],&lt;br /&gt;
          &amp;quot;locality&amp;quot;: [&amp;quot;Portland&amp;quot;],&lt;br /&gt;
          &amp;quot;region&amp;quot;: [&amp;quot;Oregon&amp;quot;]&lt;br /&gt;
        }&lt;br /&gt;
      }]&lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Questions:&lt;br /&gt;
&amp;lt;div class=&amp;quot;discussion&amp;quot;&amp;gt;&lt;br /&gt;
* Should the nested hCard be present also as a top-level item in the JSON? - [[User:Tantek|Tantek]] 02:02, 19 June 2012 (UTC)&lt;br /&gt;
** My current (2012-243) leaning is no. - [[User:Tantek|Tantek]] 18:53, 30 August 2012 (UTC)&lt;br /&gt;
** If so, how do we avoid expansion of the JSON geometrically proportional to the depth of microformat nesting? (Or do we not worry about it?)&lt;br /&gt;
* Should there be a canonical hierarchical JSON and a canonical flattened JSON? - [[User:Tantek|Tantek]] 02:02, 19 June 2012 (UTC)&lt;br /&gt;
** My current (2012-243) leaning is no, we stick with one canonical JSON for uf2 which is hierarchical. - [[User:Tantek|Tantek]] 18:53, 30 August 2012 (UTC)&lt;br /&gt;
** If so, should the flattened JSON have references from properties to nested microformats that have been pushed to the top level per flattening? - [[User:Tantek|Tantek]] 02:02, 19 June 2012 (UTC)&lt;br /&gt;
*** If so, what convention does/do JSON follow for such synthetic local reference identifiers? - [[User:Tantek|Tantek]] 02:02, 19 June 2012 (UTC)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The 'location' value reflects the visible text of its element, including spaces and punctuation, as well as the state abbreviation 'OR'. The 'h-card' property values are only what is marked up, and thus include structure values without extra punctuation, and the state takes the expanded form from the &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute of its &amp;lt;code&amp;gt;&amp;amp;lt;abbr&amp;amp;gt;&amp;lt;/code&amp;gt; element.&lt;br /&gt;
&lt;br /&gt;
=== h-card org h-card ===&lt;br /&gt;
People often publish information general to their company rather than specific to them, in which case, they may wish to encapsulate that in separately nested microformat. E.g. here is a simple h-card example with org property:&lt;br /&gt;
&lt;br /&gt;
[http://blog.lizardwrangler.com Mitchell Baker] (Mozilla Foundation)&lt;br /&gt;
&lt;br /&gt;
with source:&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name u-url&amp;quot;&lt;br /&gt;
     href=&amp;quot;http://blog.lizardwrangler.com/&amp;quot; &lt;br /&gt;
    &amp;gt;Mitchell Baker&amp;lt;/a&amp;gt; &lt;br /&gt;
  (&amp;lt;span class=&amp;quot;p-org&amp;quot;&amp;gt;Mozilla Foundation&amp;lt;/span&amp;gt;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Mitchell Baker&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://blog.lizardwrangler.com/&amp;quot;],&lt;br /&gt;
      &amp;quot;org&amp;quot;: [&amp;quot;Mozilla Foundation&amp;quot;]&lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sometimes such organization affiliations are hyperlinked to the website of the organization:&lt;br /&gt;
&lt;br /&gt;
[http://blog.lizardwrangler.com Mitchell Baker] ([http://mozilla.org/ Mozilla Foundation])&lt;br /&gt;
&lt;br /&gt;
You can mark that up with a nested h-card:&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name u-url&amp;quot;&lt;br /&gt;
     href=&amp;quot;http://blog.lizardwrangler.com/&amp;quot; &lt;br /&gt;
    &amp;gt;Mitchell Baker&amp;lt;/a&amp;gt; &lt;br /&gt;
  (&amp;lt;a class=&amp;quot;p-org h-card&amp;quot; &lt;br /&gt;
      href=&amp;quot;http://mozilla.org/&amp;quot;&lt;br /&gt;
     &amp;gt;Mozilla Foundation&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;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Mitchell Baker&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://blog.lizardwrangler.com/&amp;quot;],&lt;br /&gt;
      &amp;quot;org&amp;quot;: [{&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Mozilla Foundation&amp;quot;,&lt;br /&gt;
        &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
        &amp;quot;properties&amp;quot;: {&lt;br /&gt;
          &amp;quot;name&amp;quot;: [&amp;quot;Mozilla Foundation&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;http://mozilla.org/&amp;quot;]&lt;br /&gt;
        }&lt;br /&gt;
      }]&lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: the nested h-card has implied 'name' and 'url' properties, just like any other root-class-name-only h-card on an &amp;lt;code&amp;gt;&amp;amp;lt;a href&amp;amp;gt;&amp;lt;/code&amp;gt; would.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''FOR PARSERS ONLY:'''&lt;br /&gt;
&lt;br /&gt;
The nested 'h-card' could be marked up as an 'h-org' as well, which adds it to the nested microformat's type array, all as part of the property specified by the 'p-org'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name u-url&amp;quot;&lt;br /&gt;
     href=&amp;quot;http://blog.lizardwrangler.com/&amp;quot; &lt;br /&gt;
    &amp;gt;Mitchell Baker&amp;lt;/a&amp;gt; &lt;br /&gt;
  (&amp;lt;a class=&amp;quot;p-org h-card h-org&amp;quot; &lt;br /&gt;
      href=&amp;quot;http://mozilla.org/&amp;quot;&lt;br /&gt;
     &amp;gt;Mozilla Foundation&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;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Mitchell Baker&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://blog.lizardwrangler.com/&amp;quot;],&lt;br /&gt;
      &amp;quot;org&amp;quot;: [{&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Mozilla Foundation&amp;quot;,&lt;br /&gt;
        &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;, &amp;quot;h-org&amp;quot;],&lt;br /&gt;
        &amp;quot;properties&amp;quot;: {&lt;br /&gt;
          &amp;quot;name&amp;quot;: [&amp;quot;Mozilla Foundation&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;http://mozilla.org/&amp;quot;]&lt;br /&gt;
        }&lt;br /&gt;
      }]&lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''FOR PARSERS ONLY:'''&lt;br /&gt;
&lt;br /&gt;
Without a property class name like 'p-org' holding all the nested objects together, we need to introduce another array for nested children (similar to the existing DOM element notion of children) of a microformat that are not attached to a specific property:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name u-url&amp;quot;&lt;br /&gt;
     href=&amp;quot;http://blog.lizardwrangler.com/&amp;quot; &lt;br /&gt;
    &amp;gt;Mitchell Baker&amp;lt;/a&amp;gt; &lt;br /&gt;
  (&amp;lt;a class=&amp;quot;h-org h-card&amp;quot; &lt;br /&gt;
      href=&amp;quot;http://mozilla.org/&amp;quot;&lt;br /&gt;
     &amp;gt;Mozilla Foundation&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;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Mitchell Baker&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://blog.lizardwrangler.com/&amp;quot;]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;children&amp;quot;: [{&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;,&amp;quot;h-org&amp;quot;],&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;name&amp;quot;: [&amp;quot;Mozilla Foundation&amp;quot;],&lt;br /&gt;
        &amp;quot;url&amp;quot;: [&amp;quot;http://mozilla.org/&amp;quot;]&lt;br /&gt;
      }  &lt;br /&gt;
    }]&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Since there's no property class name on the element with classes 'h-card' and 'h-org', the microformat representing that element is collected into the children array.&lt;br /&gt;
&lt;br /&gt;
Such a nested microformat implies some relationship (containment, being related), but is not as useful as if the nested microformat was a specific property of its parent.&lt;br /&gt;
&lt;br /&gt;
For this reason it's recommended that authors should not publish nested microformats without a  property class name, and instead, when nesting microformats, authors should always specify a property class name (like 'p-org') on the same element as the root class name(s) of the nested microformat(s) (like 'h-card' and/or 'h-org').&lt;br /&gt;
&lt;br /&gt;
'''FOR PARSERS ONLY:'''&lt;br /&gt;
&lt;br /&gt;
Or the nested object could be only marked up with 'h-card'. Source:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name u-url&amp;quot;&lt;br /&gt;
     href=&amp;quot;http://blog.lizardwrangler.com/&amp;quot; &lt;br /&gt;
    &amp;gt;Mitchell Baker&amp;lt;/a&amp;gt; &lt;br /&gt;
  (&amp;lt;a class=&amp;quot;h-card&amp;quot; &lt;br /&gt;
      href=&amp;quot;http://mozilla.org/&amp;quot;&lt;br /&gt;
     &amp;gt;Mozilla Foundation&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;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Mitchell Baker&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://blog.lizardwrangler.com/&amp;quot;]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;children&amp;quot;: [{&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;name&amp;quot;: [&amp;quot;Mozilla Foundation&amp;quot;],&lt;br /&gt;
        &amp;quot;url&amp;quot;: [&amp;quot;http://mozilla.org/&amp;quot;]&lt;br /&gt;
      }  &lt;br /&gt;
    }]&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''TO DO: Add h-event h-card example and JSON, per real world publishing examples like [http://www.swingtime.co.uk/List/ClSouth.html Swing Time: Classes in Southern England].'''&lt;br /&gt;
&lt;br /&gt;
== authoring ==&lt;br /&gt;
=== minimal markup ===&lt;br /&gt;
The best way to use microformats-2 is with as little additional markup as possible. This keeps your code cleaner, improves its maintainability, and thus the quality and longevity of your microformats.&lt;br /&gt;
&lt;br /&gt;
One big advantage of microformats-2 over previous microformats (and others) is the ability to add one class name to an existing element to create a structured item.&lt;br /&gt;
&lt;br /&gt;
See the [[microformats-2#simple_microformats_2_examples|simple examples at the top]] for a start, e.g.&lt;br /&gt;
&lt;br /&gt;
Simple hCards work just by adding &amp;lt;code&amp;gt;class=&amp;quot;h-card&amp;quot;&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;h-card&amp;quot;&amp;gt;Frances Berriman&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a class=&amp;quot;h-card&amp;quot; href=&amp;quot;http://benward.me&amp;quot;&amp;gt;Ben Ward&amp;lt;/a&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;img class=&amp;quot;h-card&amp;quot; alt=&amp;quot;Sally Ride&amp;quot; &lt;br /&gt;
     src=&amp;quot;http://upload.wikimedia.org/wikipedia/commons/a/a4/Ride-s.jpg&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a class=&amp;quot;h-card&amp;quot; href=&amp;quot;http://tantek.com&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;img alt=&amp;quot;Tantek Çelik&amp;quot; src=&amp;quot;http://ttk.me/logo.jpg&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Tip: Inside an open tag, put the &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt; attribute &amp;lt;em&amp;gt;first&amp;lt;/em&amp;gt;, then any human text content attributes (e.g. &amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt;), then URL attributes (e.g. &amp;lt;code&amp;gt;href&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt;), and lastly other attributes (e.g. &amp;lt;code&amp;gt;style&amp;lt;/code&amp;gt;). Putting the class attribute first ties it closely to the element name/tag itself, makes it more obvious, and thus more likely to be kept up to date.&lt;br /&gt;
&lt;br /&gt;
=== backward compatible ===&lt;br /&gt;
If you depend on current microformats [[implementations]], while they're being updated to support [[microformats-2]], you can include both existing microformats and microformats-2 markup.&lt;br /&gt;
&lt;br /&gt;
In short: use both sets of class names simultaneously. &lt;br /&gt;
&lt;br /&gt;
When doing so, use them on the same element, with the microformats-2 class name first, followed immediately by the existing microformats class name.&lt;br /&gt;
&lt;br /&gt;
Here are the microformats-2 hCards from above with current [[hCard]] markup as well, which may require adding a wrapping element (e.g. a &amp;lt;code&amp;gt;&amp;amp;lt;span&amp;amp;gt;&amp;lt;/code&amp;gt;) to separate the root class name element from explicit property class name elements:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;h-card vcard&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-name fn&amp;quot;&amp;gt;Frances Berriman&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;h-card vcard&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name fn u-url url&amp;quot; href=&amp;quot;http://benward.me&amp;quot;&amp;gt;Ben Ward&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;h-card vcard&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;img class=&amp;quot;p-name fn u-photo photo&amp;quot; alt=&amp;quot;Sally Ride&amp;quot; &lt;br /&gt;
       src=&amp;quot;http://upload.wikimedia.org/wikipedia/commons/a/a4/Ride-s.jpg&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;h-card vcard&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;u-url url&amp;quot; href=&amp;quot;http://tantek.com&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;img class=&amp;quot;p-name fn u-photo photo&amp;quot; alt=&amp;quot;Tantek Çelik&amp;quot; &lt;br /&gt;
         src=&amp;quot;http://ttk.me/logo.jpg&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tips:&lt;br /&gt;
* use the microformats-2 class name first, e.g.&lt;br /&gt;
** &amp;lt;code&amp;gt;class=&amp;quot;h-card vcard&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;class=&amp;quot;u-url url&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* and pair them when using an element for multiple properties, e.g.:&lt;br /&gt;
** &amp;lt;code&amp;gt;class=&amp;quot;p-name fn u-url url&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;class=&amp;quot;p-name fn u-photo photo&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* put microformats classes after classes for CSS (since page authors will likely interact more with their own classes for design than with microformats classes), e.g. as used on individual microformats [[events]] pages:&lt;br /&gt;
** &amp;lt;code&amp;gt;class=&amp;quot;event-page h-event vevent&amp;quot;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The prefixes (h-, p-, etc.) of microformats2 class names provide easier recognition, and when followed by the similarly named existing class name, they're more easily recognized as related and thus kept together when the markup is maintained over time.&lt;br /&gt;
&lt;br /&gt;
Related FAQ: [[microformats2-faq#when_using_both_h-card_and_vcard_which_should_be_first_and_why|When using both h-card and vcard which should be first and why?]]&lt;br /&gt;
&lt;br /&gt;
== validators ==&lt;br /&gt;
microformats2 validators:&lt;br /&gt;
&lt;br /&gt;
{{new}} Test your microformatted web page with: &lt;br /&gt;
* https://pin13.net/mf2/&lt;br /&gt;
&lt;br /&gt;
Barnaby Walters has a hosted version of the open source php-mf2 [[parser]] where you can enter your markup into a textarea and see how it's parsed:&lt;br /&gt;
* http://waterpigs.co.uk/php-mf2/&lt;br /&gt;
&lt;br /&gt;
See the [[validators]] page for a longer list of validators.&lt;br /&gt;
&lt;br /&gt;
== Examples in the wild ==&lt;br /&gt;
Please add new examples in the wild of microformats-2 to the top of this list. When it gets too big we can move it to a separate page like [[microformats-2-examples-in-wild]].&lt;br /&gt;
&lt;br /&gt;
* ...&lt;br /&gt;
* David John Mead marks up his profile, blog posts and comments with h-card, h-entry and h-cite on [http://davidjohnmead.com davidjohnmead.com]&lt;br /&gt;
* [[User:Brian|Brian Suda]] marks up his blog posts up with h-entry and h-card on [http://optional.is/required/ optional.is]&lt;br /&gt;
* Ashton McAllan marks up her blog posts, reposts, comments and likes with h-entry, h-card and h-cite on [https://acegiak.net/ acegiak.net]&lt;br /&gt;
* Emma Kuo marks up her blog posts and notes with h-entry and h-card on [http://notenoughneon.com/ notenoughneon.com]&lt;br /&gt;
* Scott Jenson marks up his blog posts with h-entry and h-card on [http://jenson.org/ jenson.org]&lt;br /&gt;
* Emily McAllen marks up her blog posts with h-entry and h-card on [http://blackwoolholiday.com/ blackwoolholiday.com]&lt;br /&gt;
* Ryan Barrett marks up his blog posts, notes, replies and likes with h-entry and h-card on [https://snarfed.org/ snarfed.org]&lt;br /&gt;
* Barry Frost marks up his notes with h-entry, h-card and h-cite on [http://barryfrost.com/ barryfrost.com]&lt;br /&gt;
* Amber Case marks up her profile, blog posts, replies and notes with h-entry and h-card on [http://caseorganic.com/ caseorganic.com]&lt;br /&gt;
* Johannes Ernst marks up his blog posts with h-entry on [http://upon2020.com/blog/ upon2020.com]&lt;br /&gt;
* Michiel de Jong marks up his profile and notes with h-entry and h-card on [https://michielbdejong.com/ michielbdejong.com]&lt;br /&gt;
* Mike Taylor marks up his profile and blog posts with h-card and h-entry on [https://bear.im/bearlog/ bear.im]&lt;br /&gt;
* Erin Jo Ritchey marks up her profile, posts and comments using h-card, h-entry and h-cite with idno on [http://erinjo.is/ erinjo.is]&lt;br /&gt;
* Jeena Paradies marks up his profile, blog posts, notes and comments using h-card, h-entry and h-cite on [https://jeena.net/ jeena.net]&lt;br /&gt;
* Andy Sylvester marks up his profile, blog posts and comments using h-card and h-entry on [http://andysylvester.com/2014/03/01/howto-setting-up-the-selfoss-feed-reader-with-microformats-support/ andysylvester.com] (note: as of 2014-03-13 using h-entry for comments instead of correct h-cite --[[User:Barnabywalters|bw]] 14:44, 13 March 2014 (UTC))&lt;br /&gt;
* Hakan Demir marks up his Coupon and Voucher blog posts with h-entry and h-card on [http://www.gutscheinflagge.de/ gutscheinflagge.de]&lt;br /&gt;
* Chloe Weil marks up her blog posts with h-entry on [http://chloeweil.com/blog chloeweil.com]&lt;br /&gt;
* Christophe Ducamp marks up his blog posts and profile with h-entry and h-card on [http://christopheducamp.com/ christopheducamp.com]&lt;br /&gt;
* Glenn Jones marks up his blog posts, notes, replies, profile and comments with h-entry, h-card and h-cite on [http://glennjones.net/ glennjones.net]&lt;br /&gt;
* Marcus Povey marks up his blog posts and profile with h-entry and h-card on [http://www.marcus-povey.co.uk/ marcus-povey.co.uk]&lt;br /&gt;
* Eugen Busoiu marks up his web profile with h-card on [http://eugenbusoiu.com/#utm_source=microformats2&amp;amp;utm_medium=h-card&amp;amp;utm_campaign=Microformats eugenbusoiu.com]]&lt;br /&gt;
* Matthias Pfefferle marks up his blog posts, comments and profile with h-card, h-cite and h-entry on [http://notizblog.org/ notizblog.org]&lt;br /&gt;
* Kyle Mahan marks up his profile and notes with h-card and h-entry on [http://kylewm.com/ kylewm.com]&lt;br /&gt;
* Okinawan-lyrics marks up his blog posts with h-entry and h-card ([http://www.okinawan-lyrics.com/ example])&lt;br /&gt;
* Emil Björklund marks up his blog posts with h-entry and h-card ([http://thatemil.com/blog/2013/09/16/webmentioning-adactio/ example])&lt;br /&gt;
* App.net rolled out support for h-card and h-entry on all profile pages and permalink pages as of 2013-08-06 ([https://alpha.app.net/voidfiles example])&lt;br /&gt;
* Brett Comnes marks up his posts with h-entry and h-card ([http://bret.io/2013/06/29/getting-started-with-bower/ example])&lt;br /&gt;
* Ben Werdmuller marks up his posts with h-card and h-entry, u-in-reply-to and u-like ([http://werd.io/view/51d5097fbed7ded0633a5956 example])&lt;br /&gt;
* Sandeep Shetty marks his posts up with h-card and h-entry, as well as draft u-in-reply-to and experimental u-like properties ([http://sandeep.io/101 example])&lt;br /&gt;
* Laurent Eschenauer marks up his posts with h-entry ([http://eschnou.com/entry/first-autonomous-flight-of-my-nodecopter-62-24992.html example])&lt;br /&gt;
* Tom Morris marks up his posts using h-entry ([http://tommorris.org/posts/8417 example])&lt;br /&gt;
* Sinolandquality marks up some of their content using h-feed and h-entry on [http://www.sinolandquality.com/Blog/?page_id=3516&amp;amp;utm_content=buffere4d40&amp;amp;utm_medium=social&amp;amp;utm_source=twitter.com&amp;amp;utm_campaign=buffer sinolandquality.com]&lt;br /&gt;
* [http://www.w3.org/conf/ W3Conf 2013] uses h-event for the main event, and h-card for all the speakers and notable attendees. The h-cards make particularly good use of implied name, url, and photo properties.&lt;br /&gt;
* [http://wordpress.org/extend/themes/sempress SemPress] is a WordPress theme that supports h-card, h-feed/h-entry and h-as-*&lt;br /&gt;
* [http://the-pastry-box-project.net/ The Pastry Box Project] use h-card and h-entry markup on their homepage and individual thoughts pages&lt;br /&gt;
* Tom Morris uses h-card and [[XFN]] to markup [http://tommorris.org/pages/blogroll his blogroll].&lt;br /&gt;
* Aaron Parecki uses h-card to markup both authorship and references to people in his notes permalinks, e.g. [http://aaronparecki.com/2012/230/reply/1 2012/230/reply/1].&lt;br /&gt;
* [http://tantek.com/ Tantek Çelik] uses h-card, h-event, and h-entry on his home page, as well as h-entry on all post permalinks, e.g. [http://tantek.com/2012/243/t1/name-beats-title-modern-use-dubline-core-wrong-uf2 2012-243 post], with [[rel-prev]]/[[rel-next]] (if applicable) to indicate prev/next posts, and with [[rel-author]] to his home page with canonical hCard to indicate authorship.&lt;br /&gt;
* [http://waterpigs.co.uk/ Barnaby Walters] uses h-card on his home page, h-card, h-entry and XFN markup on his [http://waterpigs.co.uk/notes notes page].&lt;br /&gt;
** 2013-01-25 Barnaby Walters: &amp;lt;cite&amp;gt;[http://waterpigs.co.uk/articles/experimental-markup Experimental Markup]&amp;lt;/cite&amp;gt; - describes how he's using microformats2 vocabularies: &amp;lt;code&amp;gt;h-adr&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-event&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-geo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-review&amp;lt;/code&amp;gt;, and experimental vocabularies: &amp;lt;code&amp;gt;h-feed&amp;lt;/code&amp;gt; (embedded for update histories), [[activity-streams]] objects &amp;lt;code&amp;gt;h-as-article&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-as-collection&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-as-note&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-as-update&amp;lt;/code&amp;gt;, as well as experimental properties: &amp;lt;code&amp;gt;u-alternate&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;u-as-downstream-duplicate&amp;lt;/code&amp;gt; (links to POSSE copies), and &amp;lt;code&amp;gt;u-in-reply-to&amp;lt;/code&amp;gt; (links to content that the posts are in reply to). &lt;br /&gt;
* [http://tantek.com/presentations/2012/06/microformats microformats.org at 7 years] presentation with h-event and h-card markup for people and organizations.&lt;br /&gt;
* [http://tantek.com/presentations/2012/06/pdf2012-indieweb.html Rise of the Indie Web hCards] (from Personal Democracy Forum 2012 #pdf12 #pdf2012) has [[microformats-2]] h-calendar and h-card markup&lt;br /&gt;
* WebMaker by Mozilla has [[microformats-2]] h-calendar and h-card on event search (e.g. [https://webmaker.org/en-US/events/near/?lat=45.5234515&amp;amp;lng=-122.6762071 search near Portland Oregon]) and event pages (e.g. [https://webmaker.org/en-US/events/192f56eb9/ IndieWebCamp 2012]).[https://twitter.com/microformats/status/212207925643587585]&lt;br /&gt;
* WebFWD by Mozilla has [[microformats-2]] h-card markup on [https://webfwd.org/about/experts/ experts] and [https://webfwd.org/about/team/ team] pages&lt;br /&gt;
* [http://indiewebcamp.com IndieWebCamp] has [[microformats-2]] h-event markup with nested h-cards for the organizers and the location.&lt;br /&gt;
* [https://wiki.mozilla.org/Events Mozilla Events] page has [[microformats-2]] h-event markup with attendees marked up with h-card.&lt;br /&gt;
* The [http://pdx.esri.com/blog/2013/10/17/introducing-mapattack/ Esri PDX Blog] has h-entry markup on all blog posts (as of 2013-10-19), and h-product markup on [http://pdx.esri.com/projects/terraformer/ project pages]&lt;br /&gt;
&lt;br /&gt;
=== offline ===&lt;br /&gt;
* spreadly marks up share permalink pages with h-entry, as well as minimal h-cards and experimental p-like properties&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
{{new}} Test your microformatted web page with: &lt;br /&gt;
=== Live Textarea Input ===&lt;br /&gt;
Use any of these to enter HTML+microformats2 markup and see the parsed result!&lt;br /&gt;
* http://glennjones.net/tools/microformats/&lt;br /&gt;
* https://pin13.net/mf2/ (where it says &amp;quot;Microformats Parser&amp;quot;)&lt;br /&gt;
* https://kylewm.com/services/mf2&lt;br /&gt;
&lt;br /&gt;
=== Blogging tools ===&lt;br /&gt;
* '''Storytlr''' parses the 'target' from [http://indiewebcamp.com/pingback pingbacks] for [https://github.com/storytlr/storytlr/blob/master/protected/application/public/controllers/PingbackController.php#L63 h-entry with properties and nested h-card] for information to automatically display in the [http://eschnou.com/entry/testing-indieweb-federation-with-waterpigscouk-aaronpareckicom-and--62-24908.html comments section on a post].&lt;br /&gt;
&lt;br /&gt;
=== Converters ===&lt;br /&gt;
* '''[https://github.com/snarfed/granary granary]''' is a library and REST API that converts between silo APIs, [[ActivityStreams]], [[microformats2]], and Atom (all directions). Supported silos include Facebook, Twitter, Instagram, Google+, and Flickr. Users include [http://brid.gy/ Bridgy], [http://reader.kylewm.com/ Woodwind], and [https://facebook-atom.appspot.com/ facebook-atom] and [https://twitter-atom.appspot.com/ twitter-atom], among others.&lt;br /&gt;
&lt;br /&gt;
* '''[http://pipes.yahoo.com/pipes/pipe.info?_id=afc5568b4e8643bfb05436b1caaf91bc microformats to RSS]''' - a Yahoo! pipe that converts a URL containing an [[h-feed]] containing h-entries, into an [[RSS]] feed ([http://waterpigs.co.uk/notes/4SeNi5/ 2013-10-21 blog post announcing])&lt;br /&gt;
&lt;br /&gt;
* '''[https://xray.p3k.io XRay]''' ([https://github.com/aaronpk/XRay source code]) - Returns a normalized representation of the microformats data at a URL&lt;br /&gt;
&lt;br /&gt;
=== Parsers ===&lt;br /&gt;
Parsers, open source libraries, in alphabetical order by programming language:&lt;br /&gt;
&lt;br /&gt;
==== Parsers in production ====&lt;br /&gt;
The following parsers are of very high quality, in active development, and use on live sites on the web in production.&lt;br /&gt;
&lt;br /&gt;
===== Java =====&lt;br /&gt;
* [[any23]] Apache Any23 (Anything to Triples)] a library, a web service and a command line tool that extracts structured data in RDF format from a variety of Web documents: http://any23.apache.org&lt;br /&gt;
&lt;br /&gt;
===== Javascript =====&lt;br /&gt;
* '''microformat-node''' Node.js microformats2 parser&lt;br /&gt;
** github open source: https://github.com/glennjones/microformat-node&lt;br /&gt;
** test suite: https://github.com/microformats/tests&lt;br /&gt;
** blog post: http://glennjones.net/2013/01/brand-new-microformats-2-parser/&lt;br /&gt;
** live: http://glennjones.net/tools/microformats/&lt;br /&gt;
** command line: https://github.com/JerrySievert/mf2&lt;br /&gt;
* '''microformat-shiv'''  - cross browser javascript microformats 2 parser which can also be used in browser extensions.&lt;br /&gt;
** http://microformatshiv.com/&lt;br /&gt;
** github open source: https://github.com/glennjones/microformat-shiv&lt;br /&gt;
&lt;br /&gt;
===== PHP =====&lt;br /&gt;
* '''&amp;lt;span id=&amp;quot;php-mf2&amp;quot;&amp;gt;php-mf2&amp;lt;/span&amp;gt;''' - PHP microformats2 parser&lt;br /&gt;
** github open source: https://github.com/indieweb/php-mf2&lt;br /&gt;
** Packagist: https://packagist.org/packages/mf2/mf2&lt;br /&gt;
** live: &lt;br /&gt;
*** textarea entry: http://waterpigs.co.uk/php-mf2/&lt;br /&gt;
*** URL and textarea entry: https://pin13.net/mf2/&lt;br /&gt;
** [https://github.com/barnabywalters/php-mf-cleaner mf-cleaner]: functions for working with the raw mf2 data structure&lt;br /&gt;
&lt;br /&gt;
===== Python =====&lt;br /&gt;
* '''mf2py''' Python microformats2 parser&lt;br /&gt;
** main entry: [[mf2py]]&lt;br /&gt;
** github open source: https://github.com/tommorris/mf2py&lt;br /&gt;
** live: &lt;br /&gt;
*** URL entry: [https://mf2py.herokuapp.com/ mf2py.herokuapp.com]&lt;br /&gt;
*** textarea entry: https://kartikprabhu.com/connection/mfparser&lt;br /&gt;
*** another textarea: http://www.unmung.com/?html=&lt;br /&gt;
*** URL and/or textarea: https://kylewm.com/services/mf2&lt;br /&gt;
&lt;br /&gt;
===== Ruby =====&lt;br /&gt;
* '''indieweb/microformats-ruby''' Ruby microformats parser&lt;br /&gt;
** github open source: https://github.com/indieweb/microformats-ruby&lt;br /&gt;
** live text entry: https://microformats-parser-ruby.herokuapp.com&lt;br /&gt;
&lt;br /&gt;
===== Haskell =====&lt;br /&gt;
* '''myfreeweb/microformats2-parser''' Haskell microformats2 parser&lt;br /&gt;
** github open source: https://github.com/myfreeweb/microformats2-parser&lt;br /&gt;
** live textarea entry: https://unrelenting.technology/mf2/&lt;br /&gt;
&lt;br /&gt;
==== Development parsers ====&lt;br /&gt;
The following parsers are in-development and have key microformats2 functionality yet are incomplete, not fully tested, or have other limitations. Contributions welcome!&lt;br /&gt;
&lt;br /&gt;
===== Erlang =====&lt;br /&gt;
* '''hazybluedot/mf2erl''' Erlang microformats2 parser&lt;br /&gt;
** github open source: https://github.com/hazybluedot/mf2erl&lt;br /&gt;
&lt;br /&gt;
===== Elixir =====&lt;br /&gt;
* '''ckruse/microformats-elixir''' Elixir microformats2 parser&lt;br /&gt;
** github open source: https://github.com/ckruse/microformats2-elixir&lt;br /&gt;
&lt;br /&gt;
===== Go =====&lt;br /&gt;
* '''andyleap/microformats''' Golang microformats2 parser&lt;br /&gt;
** github open source: https://github.com/andyleap/microformats&lt;br /&gt;
** live textarea entry: http://mf2.vendaria.net&lt;br /&gt;
&lt;br /&gt;
===== Java =====&lt;br /&gt;
* '''Apache Any23''' a library, a web service and a command line tool that extracts structured data in RDF format from a variety of Web documents. Supports Microformats1 and 2.&lt;br /&gt;
** Download recent release: http://any23.apache.org/download.html&lt;br /&gt;
** live: http://any23-vm.apache.org/&lt;br /&gt;
** source: http://any23.apache.org/build-src.html&lt;br /&gt;
* '''mf2j''' An early-stage Java microformats2 parser&lt;br /&gt;
** github open source: https://github.com/kylewm/mf2j&lt;br /&gt;
** live: https://mf2j.herokuapp.com/?url={http://example.com}&lt;br /&gt;
&lt;br /&gt;
==== Experiments ====&lt;br /&gt;
Experiments and other proof of concept microformat2 parsing support.&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=== Outreach ===&lt;br /&gt;
* [https://github.com/mozilla/fathom/issues/42 Mozilla Fathom:  examples with nested classes, e.g. microformats2]&lt;br /&gt;
&lt;br /&gt;
== Presentations ==&lt;br /&gt;
Presentations about microformats2:&lt;br /&gt;
* 2013-01-24 &amp;lt;cite&amp;gt;[http://waterpigs.co.uk/presentations/microformats-2/ Microformats 2]&amp;lt;/cite&amp;gt; presentation by [[User:Barnabywalters|Barnaby Walters]] at the [[events/2013-01-24-exeter-web-meetup|Exeter Web Meetup]] in Devon, UK.&lt;br /&gt;
* 2012-09-21 &amp;lt;cite&amp;gt;[http://tantek.com/presentations/2012/09/microformats2/ microformats2 &amp;amp;amp; bits of HTML5: The Evolution Of Web Data]&amp;lt;/cite&amp;gt; presentation by [[User:Tantek|Tantek Çelik]] ([http://twitter.com/t @t]) at [[events/2012-09-21-refreshlx|RefreshLX]] in Lisbon, Portugal.&lt;br /&gt;
* 2012-07-21 &amp;lt;cite&amp;gt;[http://tantek.com/presentations/2012/07/html5-uf2/ HTML5 and microformats2: The Evolution Of Web Data]&amp;lt;/cite&amp;gt; presentation by [[User:Tantek|Tantek Çelik]] ([http://twitter.com/t @t]) at [[events/2012-07-21-cascadesf|Innovators of the Web conference]] in San Francisco, CA.&lt;br /&gt;
* 2012-07-14 &amp;lt;cite&amp;gt;[http://tantek.com/presentations/2012/07/html5-microformats2/ HTML5 and microformats2: The Evolution Of Web Data]&amp;lt;/cite&amp;gt; presentation by [[User:Tantek|Tantek Çelik]] ([http://twitter.com/t @t]) at [[events/2012-07-14-open-web-camp-4|Open Web Camp IV]] in San Jose, CA.&lt;br /&gt;
&lt;br /&gt;
== Testimonials ==&lt;br /&gt;
* &amp;lt;blockquote class=&amp;quot;twitter-tweet&amp;quot;&amp;gt;To prove the web standards community can come up with better standards than the SE’s, compare this: http://microformats.org/wiki/microformats-2 with schema . org &amp;amp;mdash; Joost de Valk (@yoast) [https://twitter.com/yoast/status/298907685452124160 2013-02-05 13:35]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
* &amp;lt;blockquote class=&amp;quot;twitter-tweet&amp;quot;&amp;gt;... I’m hoping SE’s will pick up microformats2. It’s SO much cleaner. &amp;amp;mdash; Joost de Valk (@yoast) [https://twitter.com/yoast/status/298911287117758464 2013-02-05 13:49]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
* &amp;lt;blockquote class=&amp;quot;twitter-tweet&amp;quot;&amp;gt;... But damn Microformats2 are sexy. &amp;amp;mdash; Joost de Valk (@yoast) [https://twitter.com/yoast/status/298912179292344320 2013-02-05 13:53]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== About This Brainstorm ==&lt;br /&gt;
The rest of this page is a brainstorm currently written in narrative / exploratory format, that is, acknowledging the success that microformats have had, why so, and then a walk through of known issues with microformats in general along with iteration of ways to address said issues, ending up with the current microformats 2 design as a conclusion.&lt;br /&gt;
&lt;br /&gt;
The proposals build on each other resulting in a solution that addresses the vast majority of general issues. The proposed changes merit a major version number increment, hence microformats 2.&lt;br /&gt;
&lt;br /&gt;
This mathematical proof/derivation style is used to explicitly encourage understanding (and double-checking) of the rational steps taken in the development of microformats 2. Reasons are documented, sometimes along with alternatives considered (and reasons for rejection of those alternatives).&lt;br /&gt;
&lt;br /&gt;
When the microformats 2 brainstorm has evolved sufficiently to demonstrate some degree of stability, usability, and implementability, it will be rewritten in a more declarative specification style, and this narrative/derivation will be archived to a background development page for historical purposes.&lt;br /&gt;
&lt;br /&gt;
— [[User:Tantek|Tantek]]&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
2004: In early February microformats were introduced as a concept at eTech, and in September [[hCard]] and [[hCalendar]] were proposed at FOO Camp.&lt;br /&gt;
&lt;br /&gt;
2010:&lt;br /&gt;
* 34% of webdevs use microformats ([http://www.webdirections.org/sotw10/markup/#semantics 2010 State of Web Development survey])&lt;br /&gt;
* 1.88 billion hCards (per [[Yahoo]] SearchMonkey)&lt;br /&gt;
* 36 million hCalendar events (ibid)&lt;br /&gt;
&lt;br /&gt;
* XFN -&amp;gt; Social Graph API -&amp;gt; Web as Social Network / Address Book&lt;br /&gt;
&lt;br /&gt;
== Addressing Issues ==&lt;br /&gt;
=== AUTHORS and PUBLISHING ===&lt;br /&gt;
Authors and publishers are perhaps the most important constituency in the microformats community. There are more of them than there are developers, programmers, parsers, etc. and they're the ones that solved the chicken-egg problem by publishing microformats even before tools were available for consuming them.&lt;br /&gt;
&lt;br /&gt;
Therefore we must first address author/publisher general issues with microformats.&lt;br /&gt;
&lt;br /&gt;
==== can we make the simplest case simpler ====&lt;br /&gt;
Issue: '''How can we make it easier for authors to publish microformats?'''&lt;br /&gt;
&lt;br /&gt;
Currently the simplest hCard:&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;vcard&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;fn&amp;quot;&amp;gt;&lt;br /&gt;
    Chris Messina&lt;br /&gt;
  &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
requires 2 elements (nested, with perhaps at least one being pre-existing), and 2 class names.&lt;br /&gt;
&lt;br /&gt;
Web authors/designers are used to the simplicity of most HTML tags, e.g. to mark up a heading:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;Chris Messina&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
requires just 1 element.&lt;br /&gt;
&lt;br /&gt;
[http://zeldman.com/ Jeffrey Zeldman] pointed out this apparent perceived incremental complexity (2 elements vs 1) during a microformats workshop in 2009 in New York City.&lt;br /&gt;
&lt;br /&gt;
'''How can we make microformats just as easy?'''&lt;br /&gt;
&lt;br /&gt;
'''Proposal: allow root class name only.'''&lt;br /&gt;
&lt;br /&gt;
This would enable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;vcard&amp;quot;&amp;gt;Chris Messina&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
requiring only 1 class name for the simplest case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== renaming for usability ====&lt;br /&gt;
Otherwise known as, choosing one form of consistency over another.&lt;br /&gt;
&lt;br /&gt;
'''Can we do even better?'''&lt;br /&gt;
&lt;br /&gt;
One of the most common questions asked about hCard is:&lt;br /&gt;
&lt;br /&gt;
[[hcard-faq#Why_does_hCard_use_vcard_as_the_root_class_name|Why does hCard use vcard as the root class name?]]&lt;br /&gt;
&lt;br /&gt;
This slight inconsistency between the name of the format and the name of the root class name consistently causes confusion in a large percentage of newcomers to microformats.&lt;br /&gt;
* See [[issues#hcard-vs-vcard-name]] for details/links.&lt;br /&gt;
&lt;br /&gt;
Though in microformats we believe very strongly in the [[principle]] of [[reuse]], we have to admit that in this case experience/evidence has shown that this may be a case where we re-used something too far beyond it's original meaning. Thus:&lt;br /&gt;
&lt;br /&gt;
'''Proposal: use root class name &amp;quot;hcard&amp;quot; instead of &amp;quot;vcard&amp;quot; for future hCards.'''&lt;br /&gt;
&lt;br /&gt;
This would result in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;hcard&amp;quot;&amp;gt;Chris Messina&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
making the simple case even simpler:&lt;br /&gt;
&lt;br /&gt;
Just 1 additional class name, named the same as the format you're adding.  Think hCard, markup class=&amp;quot;hcard&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
At a minimum for compatibility we should document that parsers should accept &amp;quot;hcard&amp;quot; as an alternative to &amp;quot;vcard&amp;quot; as the root class name for hCard 1.0, and similarly for hCalendar 1.0: &amp;quot;hcalendar&amp;quot; in addition to &amp;quot;vcalendar&amp;quot;, &amp;quot;hevent&amp;quot; in addition to &amp;quot;vevent&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
However, for [[microformats-2]] we are going to distinguish root class names further by using an &amp;quot;h-&amp;quot; prefix (e.g. &amp;quot;h-card&amp;quot;). Read on to understand why.&lt;br /&gt;
&lt;br /&gt;
==== simplifying to only needing one element ====&lt;br /&gt;
It's very important for the simple case to be as simple as possible, to enable the maximum number of people to get started with minimum effort. (The idea of using a single class name for a microformat was proposed by Ryan Cannon in 2006 specifically [[hcard-implied|for hCard]], and rediscovered by [[User:Tantek|Tantek]] in 2010 and subsequently generalized to all microformats.)&lt;br /&gt;
&lt;br /&gt;
From there on, it's ok to require incremental effort for incremental return.&lt;br /&gt;
&lt;br /&gt;
E.g. to add any additional information about a person, add explicit property names.&lt;br /&gt;
&lt;br /&gt;
'''How does this simple root-only case work?'''&lt;br /&gt;
&lt;br /&gt;
* root class name reflects name of the microformat&lt;br /&gt;
* every microformat must require at most 1 property (preferably 0)&lt;br /&gt;
** admit that requiring a field in an application just results in noise (the 90210 problem - apps which require zip code get lots of false 90210 entries), and specify that any application use cases which appear to &amp;quot;require&amp;quot; specific properties must instead define how to imply sensible defaults for them.&lt;br /&gt;
* when only a root class name is specified, imply the entire text contents of the element as the value of the primary property of the microformat. e.g.&lt;br /&gt;
** &amp;quot;hcard&amp;quot; implies &amp;quot;fn&amp;quot;&lt;br /&gt;
** hcalendar event - &amp;quot;hevent&amp;quot; - implies &amp;quot;summary&amp;quot;&lt;br /&gt;
** &amp;quot;hreview&amp;quot; implies &amp;quot;summary&amp;quot;&lt;br /&gt;
** &amp;quot;hentry&amp;quot; implies &amp;quot;entry-summary&amp;quot; (perhaps collapse into &amp;quot;summary&amp;quot; - in practice they're not sufficiently semantically distinct to require separate property names)&lt;br /&gt;
** '''OR''' instead of making the one implied property be vocabulary specific, introduce a new generic (applicable to all vocabularies) 'p-name' property (subsuming hCard's 'fn'). See [[microformats-2-brainstorming#further_simplifications|microformats 2 brainstorming: further simplifications]] for latest thoughts along these lines, including the following specific mark-up implied generic properties across all microformats (based on existing published markup use-cases)&lt;br /&gt;
*** 'p-name'&lt;br /&gt;
*** 'u-url'&lt;br /&gt;
*** 'u-photo'&lt;br /&gt;
&lt;br /&gt;
==== flat sets of properties ====&lt;br /&gt;
'''What more can we simplify about microformats?'''&lt;br /&gt;
&lt;br /&gt;
Numerous individuals have provided the feedback that whenever there is more than one level of hierarchy in a microformat, many (most?) developers get confused - in particular Kavi Goel of Google / Rich Snippets provided this feedback at a microformats dinner.  Thus depending on multiple levels of hierarchy is likely resulting in a loss of authorability, perhaps even accuracy as confusion undoubtedly leads to more errors. Thus:&lt;br /&gt;
&lt;br /&gt;
'''Proposal: simplify all microformats to flat sets of properties. '''&lt;br /&gt;
&lt;br /&gt;
What this means:&lt;br /&gt;
* all microformats are simply an object with a set of properties with values.&lt;br /&gt;
* no more subproperties- drop the notion of subproperties.&lt;br /&gt;
* use composition of multiple microformats for any further hierarchy, e.g. the &amp;quot;location&amp;quot; of an hCalendar event can be an hCard, or the &amp;quot;agent&amp;quot; of one hCard can be another hCard.&lt;br /&gt;
&lt;br /&gt;
For example for hCard this would mean the following specific changes to keep relevant functionality:&lt;br /&gt;
* drop &amp;quot;n&amp;quot;, promote all &amp;quot;n&amp;quot; subproperties to full properties&lt;br /&gt;
** given-name, family-name, additional-name, honorific-prefix, honorific-suffix&lt;br /&gt;
* treat &amp;quot;geo&amp;quot; as a nested microformat&lt;br /&gt;
* treat &amp;quot;adr&amp;quot; as a nested microformat (what to do about adr's &amp;quot;type&amp;quot;?)&lt;br /&gt;
* treat &amp;quot;org&amp;quot; as a flat string and drop &amp;quot;organization-name&amp;quot; and &amp;quot;organization-unit&amp;quot; (in practice rarely used, also not revealed or ignored in contact management user interfaces - e.g. Address Book)&lt;br /&gt;
&lt;br /&gt;
Example: add a middle initial to the previous example Chris Messina's name, and markup each name component:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;hcard&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;fn&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;given-name&amp;quot;&amp;gt;Chris&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;abbr class=&amp;quot;additional-name&amp;quot;&amp;gt;R.&amp;lt;/abbr&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;family-name&amp;quot;&amp;gt;Messina&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
# use of an explicit span with &amp;quot;fn&amp;quot; to markup his entire formatted name&lt;br /&gt;
# use of the abbr element to explicitly indicate the semantic that &amp;quot;R.&amp;quot; is merely an abbreviation for his additional-name.&lt;br /&gt;
&lt;br /&gt;
==== distinguishing properties from other classes ====&lt;br /&gt;
Current microformats properties re-use generic terms like &amp;quot;summary&amp;quot;, &amp;quot;photo&amp;quot;, &amp;quot;updated&amp;quot; both for ease of use and understanding.&lt;br /&gt;
&lt;br /&gt;
However, through longer term experience, we've seen sites that accidentally drop (or break) their microformats support (e.g. Upcoming.org, Facebook) because web authors sometimes rewrite all their class names, and either are unaware that microformats were in the page, or couldn't easily distinguish microformats property class names from other site-specific class names.&lt;br /&gt;
&lt;br /&gt;
This issue has been reported by a number of web authors.&lt;br /&gt;
* See: [[issues#class-collisions]]&lt;br /&gt;
&lt;br /&gt;
Thus microformats 2 uses ''prefixes'' for property class names, e.g.:&lt;br /&gt;
* '''p-summary''' instead of ''summary''&lt;br /&gt;
* '''u-photo''' instead of ''photo'' &lt;br /&gt;
* '''dt-updated''' instead of ''updated''&lt;br /&gt;
&lt;br /&gt;
Such prefixing of all microformats class names was first suggested by Scott Isaacs of Microsoft to Tantek on a visit to Microsoft sometime in 2006/2007, but specifically aimed at making microformats easier to parse. At the time the suggestion was rejected since microformats were focused on web authors rather than parsers.&lt;br /&gt;
&lt;br /&gt;
However, since experience has shown that distinguishing property class names is an issue for '''both web authors and parser developers''', this is a key change that microformats 2 is adopting. See the next section for details.&lt;br /&gt;
&lt;br /&gt;
=== COMMUNITY and TOOLS ===&lt;br /&gt;
The second most important constituency in the microformats community are the developers, programmers, tool-makers.&lt;br /&gt;
&lt;br /&gt;
A non-trivial number of them have been sufficiently frustrated with some general issues with microformats that they've done the significant extra work to support very different and less friendly alternatives (microdata, RDFa). Based on this real-world data (market behavior), it behooves us to address these general issues with microformats for this constituency.&lt;br /&gt;
&lt;br /&gt;
==== existing microformats parsing requirements ====&lt;br /&gt;
COMMUNITY and TOOLS (that) USE MICROFORMATS &lt;br /&gt;
* parser / parsing&lt;br /&gt;
* structured&lt;br /&gt;
* getting the data out&lt;br /&gt;
* json - 1:1 mapping&lt;br /&gt;
&lt;br /&gt;
[[parsing]] microformats currently requires&lt;br /&gt;
# a list of root class names of each microformat to be parsed&lt;br /&gt;
# a list of properties for each specific microformats, along with knowledge of the type of each property in order to parse their data from potentially different portions of the HTML markup&lt;br /&gt;
# some number of format-specific specific rules (markup/content optimizations)&lt;br /&gt;
&lt;br /&gt;
This has meant that whenever a new microformat is drafted/specificied/adopted, parsers need to updated to handle it correctly, at a minimum to parse them when inside other microformats and avoid errantly implying properties from one to the other (containment, [[mfo]] problem).&lt;br /&gt;
&lt;br /&gt;
==== naming conventions for generic parsing ====&lt;br /&gt;
I think there is a fairly simple solution to #1 and #2 from the above list, and we can make progress towards minimizing #3.  In short:&lt;br /&gt;
&lt;br /&gt;
'''Proposal: a set of naming conventions for microformat root class names and properties that make it obvious when:'''&lt;br /&gt;
* a class name represents a microformat root class name&lt;br /&gt;
* a class name represents a microformat property name&lt;br /&gt;
* a class name represents a microformat property that needs special parsing (specific type of property).&lt;br /&gt;
&lt;br /&gt;
In particular - derived from the real world examples of existing proven microformats (rather than any abstraction of what a schema should have)&lt;br /&gt;
* '''&amp;quot;h-*&amp;quot; for root class names''', e.g. &amp;quot;h-card&amp;quot;, &amp;quot;h-event&amp;quot;, &amp;quot;h-entry&amp;quot;&lt;br /&gt;
** The 'h-' prefix is based on the existing microformats naming pattern of starting with 'h'.&lt;br /&gt;
* '''&amp;quot;p-*&amp;quot; for simple (text) properties''', e.g. &amp;quot;p-fn&amp;quot;, &amp;quot;p-summary&amp;quot;&lt;br /&gt;
** vocabulary generic parsing, element text in general, treat certain HTML element/attribute combination as special and use those first, e.g. img/alt, abbr/title.&lt;br /&gt;
** The 'p-' prefix is based on the word &amp;quot;property&amp;quot; starting with 'p'.&lt;br /&gt;
* '''&amp;quot;u-*&amp;quot; for URL properties''', e.g. &amp;quot;u-url&amp;quot;, &amp;quot;u-photo&amp;quot;, &amp;quot;u-logo&amp;quot;&lt;br /&gt;
** special parsing required: prefer a/href, img/src, object/data etc. attributes to element contents.&lt;br /&gt;
** The 'u-' prefix is based on URL/URI starting with the letter 'u', which is the type of most of these related properties.&lt;br /&gt;
* '''&amp;quot;dt-*&amp;quot; for datetime properties''', e.g. &amp;quot;dt-start&amp;quot;, &amp;quot;dt-end&amp;quot;, &amp;quot;dt-bday&amp;quot;&lt;br /&gt;
** special parsing required: [[value-class-pattern]], in particular separate date time value parsing for better human readabillity / DRY balance.&lt;br /&gt;
** The 'dt-' prefix is based on &amp;quot;date time&amp;quot; having the initials &amp;quot;dt&amp;quot; and the preponderance of existing date time properties starting with &amp;quot;dt&amp;quot;, e.g. dtstart, dtend, dtstamp, dtreviewed.&lt;br /&gt;
* '''&amp;quot;e-*&amp;quot; for element tree properties''' where the entire contained element hierarchy is the value, e.g. &amp;quot;e-content&amp;quot; (formerly &amp;quot;entry-content&amp;quot;) for [[hAtom]]. The 'e-' prefix can also be mnemonically remembered as &amp;quot;element tree&amp;quot;, &amp;quot;embedded markup&amp;quot;, or &amp;quot;encapsulated markup&amp;quot;.&lt;br /&gt;
** special parsing required: follow the [http://www.whatwg.org/specs/web-apps/current-work/multipage/the-end.html#serializing-html-fragments HTML spec: Serializing HTML Fragments algorithm] to create a serialization.&lt;br /&gt;
&lt;br /&gt;
This provides a simpler transition/education story for existing microformats authors/publishers: &lt;br /&gt;
* &amp;quot;h*&amp;quot; to &amp;quot;h-*&amp;quot;, &amp;quot;dt*&amp;quot; to &amp;quot;dt-*&amp;quot;, url-like properties to &amp;quot;u-*&amp;quot;, entire embedded markup to &amp;quot;e-*&amp;quot;, and &amp;quot;p-*&amp;quot; for all &amp;quot;plain text&amp;quot; properties.&lt;br /&gt;
&lt;br /&gt;
See [[microformats-2-prefixes]] for further thoughts and discussions on these and other class prefixes.&lt;br /&gt;
&lt;br /&gt;
Example: taking that simple heading hCard example forward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;h-card&amp;quot;&amp;gt;Chris Messina&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As part of microformats 2 we would immediately define root class names and property names for all existing microformats and drafts consistent with this naming convention, and require support thereof from all new implementations, as well as strongly encouraging existing implementations to adopt the simplified microformats 2 syntax and mechanism. Question: which microformats deserve explicit backward compatibility?&lt;br /&gt;
&lt;br /&gt;
As a community we would continue to use the microformats [[process]] both for researching and determining the need for new microformats, and for naming new microformat property names for maximum re-use and interoperability of a shared vocabulary.&lt;br /&gt;
&lt;br /&gt;
If it turns out we need a new property type in the future, we can use one of the remaining single-letter-prefixes to add it to microformats 2. This would require updating of parsers of course, but in practice the number of different types of properties has grown very slowly, and we know from other schema/programming languages that there's always some small limited number of scalar/atomic property types that you need, and using those you can create compound types/objects that represent richer / more complicated types of data. See [[microformats-2-prefixes]] for documentation of existing single-letter class name prefixes in practice.&lt;br /&gt;
&lt;br /&gt;
=== ADVANTAGES ===&lt;br /&gt;
This has numerous advantages:&lt;br /&gt;
* '''better maintainability''' - much more obvious to web authors/designers/publishers which class names are for/from microformats.&lt;br /&gt;
* '''no chance of collision''' - for all practical purposes with existing class names and thus avoiding any need to add more complex CSS style rules to prevent unintended styling effects.&lt;br /&gt;
* '''simpler parsing''' - parsers can now do a simple stream-parse (or in-order DOM tree walk) and parse out '''all''' microformat objects, properties, and values, without having to know anything about any specific microformats.&lt;br /&gt;
* '''separation of syntax and vocabulary''' - by abstracting microformats 2 syntax independent of any vocabulary, it allows and encourages development of shared vocabularies  that can work in alternative syntaxes.&lt;br /&gt;
&lt;br /&gt;
More examples: here is that same heading example with name components:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;p-fn&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-given-name&amp;quot;&amp;gt;Chris&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;abbr class=&amp;quot;p-additional-name&amp;quot;&amp;gt;R.&amp;lt;/abbr&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-family-name&amp;quot;&amp;gt;Messina&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with a hyperlink to Chris's URL:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;a class=&amp;quot;p-fn u-url&amp;quot; href=&amp;quot;http://factoryjoe.com/&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-given-name&amp;quot;&amp;gt;Chris&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;abbr class=&amp;quot;p-additional-name&amp;quot;&amp;gt;R.&amp;lt;/abbr&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-family-name&amp;quot;&amp;gt;Messina&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== COMPATIBILITY ===&lt;br /&gt;
&lt;br /&gt;
microformats 2 is backwards compatible in that in permits content authors to markup with both old and new class names for compatibility with old tools.&lt;br /&gt;
&lt;br /&gt;
Here is a simple example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;h-card vcard&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;fn&amp;quot;&amp;gt;Chris Messina&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a microformats 2 parser would see the class name &amp;quot;h-card&amp;quot; and imply the one required property from the contents, while a microformats 1.0 parser would find the class name &amp;quot;vcard&amp;quot; and then look for the class name &amp;quot;fn&amp;quot;. no data duplication is required. this is a very important continuing application of the &amp;lt;abbr title=&amp;quot;don't repeat yourself&amp;quot;&amp;gt;DRY&amp;lt;/abbr&amp;gt; [[principle]].&lt;br /&gt;
&lt;br /&gt;
And the above hyperlinked example with both sets of class names:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;h-card vcard&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;a class=&amp;quot;p-fn u-url n fn url&amp;quot; href=&amp;quot;http://factoryjoe.com/&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-given-name given-name&amp;quot;&amp;gt;Chris&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;abbr class=&amp;quot;p-additional-name additional-name&amp;quot;&amp;gt;R.&amp;lt;/abbr&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-family-name family-name&amp;quot;&amp;gt;Messina&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== VENDOR EXTENSIONS ===&lt;br /&gt;
&lt;br /&gt;
(this section was only discussed verbally and not written up during discussions - capturing here as it is topical)&lt;br /&gt;
&lt;br /&gt;
Proprietary extensions to formats have typically been shortlived experimental failures with one big recent exception.&lt;br /&gt;
&lt;br /&gt;
Proprietary or experimental CSS3 property implementations have been very successful.&lt;br /&gt;
&lt;br /&gt;
There has been much use of border radius properties and animations/transitions which use CSS properties with vendor-specific prefixes like:&lt;br /&gt;
&lt;br /&gt;
* -moz-border-radius&lt;br /&gt;
* -webkit-border-radius&lt;br /&gt;
&lt;br /&gt;
etc.&lt;br /&gt;
&lt;br /&gt;
Note that these are merely string '''prefixes''', not bound to any URL, and thus not namespaces in any practical sense of the word.  This is quite an important distinction, as avoiding the need to bind to a URL has made them easier to support and use.&lt;br /&gt;
&lt;br /&gt;
This use of vendor specific CSS properties has in recent years allowed the larger web design/development/implementor communities to experiment and iterate on new CSS features while the features were being developed and standardized.&lt;br /&gt;
&lt;br /&gt;
The benefits have been two-fold:&lt;br /&gt;
* designers have been able to make more attractive sites sooner (at least in some browsers)&lt;br /&gt;
* features have been market / real-world tested before being fully standardized, thus resulting in better features&lt;br /&gt;
&lt;br /&gt;
Implementers have used/introduced &amp;quot;x-&amp;quot; prefixes for IETF MIME/content-types for experimental content-types, MIME parameter extensions, and HTTP header extensions, per RFC 2045 Section 6.3, RFC 3798 section 3.3, and [https://secure.wikimedia.org/wikipedia/en/wiki/List_of_HTTP_header_fields#Common_non-standard_headers Wikipedia: HTTP header fields - non-standard headers] (could use RFC reference instead) respectively, like:&lt;br /&gt;
&lt;br /&gt;
* application/x-latex (per [https://secure.wikimedia.org/wikipedia/en/wiki/Internet_media_type#Type_x Wikipedia Internet media type: Type x])&lt;br /&gt;
* x-spam-score (in email headers)&lt;br /&gt;
* X-Pingback (per [http://en.wikipedia.org/wiki/Pingback Wikipedia:Pingback])&lt;br /&gt;
&lt;br /&gt;
Some standard types started as experimental &amp;quot;x-&amp;quot; types, thus demonstrating this experiment first, standardize later approach has worked for at least some cases:&lt;br /&gt;
&lt;br /&gt;
* image/x-png (standardized as image/png, both per [http://tools.ietf.org/html/rfc2083 RFC2083])&lt;br /&gt;
&lt;br /&gt;
There have been times when specific sites have wanted to extend microformats beyond what the set of properties in the microformat, and currently lack any '''experimental''' way to do so - to try and see if a feature (or even a whole format) is interesting in the real world before bothering to pursue researching and walking it through the microformats process.  Thus:&lt;br /&gt;
&lt;br /&gt;
'''Proposal:'''&lt;br /&gt;
* '*-x-' + '-' + meaningful name for root and property class names&lt;br /&gt;
** where &amp;quot;*&amp;quot; indicates the single-character-prefix as defined above&lt;br /&gt;
** where &amp;quot;x&amp;quot; indicates a literal 'x' for an experimental extension OR&lt;br /&gt;
** OR &amp;quot;x&amp;quot; indicates a vendor prefix (more than one character, e.g. like CSS vendor extension abbreviations, or some stock symbols, avoiding first words/phrases/abbreviations of microformats properties like dt-)&lt;br /&gt;
** e.g.&lt;br /&gt;
** &amp;quot;h-bigco-one-ring&amp;quot; - a hypothetical &amp;quot;bigco&amp;quot; vendor-specific &amp;quot;one-ring&amp;quot; microformat root class name.&lt;br /&gt;
** &amp;quot;p-goog-preptime&amp;quot; - to represent [http://www.google.com/support/webmasters/bin/answer.py?answer=173379 Google's &amp;quot;preptime&amp;quot; property extension] to [[hRecipe]] (aside: &amp;quot;duration&amp;quot; may be another property type to consider separate from &amp;quot;datetime&amp;quot; as it may be subject to different parsing rules.)&lt;br /&gt;
** &amp;quot;p-x-prep-time&amp;quot; - a possible experimental property name to be added to hRecipe upon consideration/documentation of real-world usage/uptake.&lt;br /&gt;
&lt;br /&gt;
Background - this proposal is a composition of the following (at least somewhat) successful vendor extension syntaxes&lt;br /&gt;
* [http://www.w3.org/TR/CSS21/syndata.html#vendor-keywords CSS 2.1 4.1.2.1 Vendor-specific extensions]&lt;br /&gt;
* IETF MIME/content-type &amp;quot;x-*&amp;quot; extensions per RFC 2045 Section 6.3. [http://en.wikipedia.org/wiki/Internet_media_type]&lt;br /&gt;
* IETF MIME experimental fields (e.g. x-spam-score)&lt;br /&gt;
* HTTP header extensions (e.g. x-pingback)&lt;br /&gt;
* note also [http://www.mnot.net/blog/2009/02/18/x- some critical thoughts from mnot]&lt;br /&gt;
&lt;br /&gt;
=== USERS ===&lt;br /&gt;
Need more tools and interfaces that:&lt;br /&gt;
* publish&lt;br /&gt;
* copy/paste&lt;br /&gt;
* right-click on a microformat&lt;br /&gt;
* share&lt;br /&gt;
* search results&lt;br /&gt;
&lt;br /&gt;
discussed some existing like: [[H2VX]] converts hCard to vCard, hCalendar to iCalendar&lt;br /&gt;
&lt;br /&gt;
how would we re-implement Live Clipboard today, making it easier for publishers and developers?&lt;br /&gt;
&lt;br /&gt;
=== SEE ALSO ===&lt;br /&gt;
* [[microformats2]]&lt;br /&gt;
* [[microformats2-brainstorming]] - moving more experimental / undeveloped / and rejected thoughts ideas here to simplify/progress *this* page further.&lt;br /&gt;
* [[microformats2-experimental-properties]] - listing experimental (-x- prefixed) properties and their use&lt;br /&gt;
* [[microformats2-prefixes]]&lt;br /&gt;
* [[microformats2-faq]]&lt;br /&gt;
* [[microformats2-parsing]]&lt;br /&gt;
* 2010-05-02 [[events/2010-05-02-microformats-2-0|microformats 2.0 discussion session at FOO East]]&lt;/div&gt;</summary>
		<author><name>Myfreeweb</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=microformats2&amp;diff=65426</id>
		<title>microformats2</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=microformats2&amp;diff=65426"/>
		<updated>2016-03-01T12:56:50Z</updated>

		<summary type="html">&lt;p&gt;Myfreeweb: fix acegiak's name and pronouns&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;microformats 2&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
Welcome to the microformats2 home page.&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
Microformats2 is the simplest way to markup structured information in HTML. Microformats2 improves ease of use and implementation for &amp;lt;em&amp;gt;both&amp;lt;/em&amp;gt; authors (publishers) and developers ([[microformats2-parsing|parser]] implementers).&lt;br /&gt;
&lt;br /&gt;
Microformats2 replaces and supersedes both classic microformats, as well as incorporates lessons learned from [[microdata]] and [[RDFa]].&lt;br /&gt;
&lt;br /&gt;
=== simple microformats 2 examples ===&lt;br /&gt;
Here are a few simple microformats2 examples along with canonical [[JSON]].&lt;br /&gt;
&lt;br /&gt;
==== person example ====&lt;br /&gt;
* Simple person reference:&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;h-card&amp;quot;&amp;gt;Frances Berriman&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Frances Berriman&amp;quot;] &lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== hyperlinked person ====&lt;br /&gt;
* Simple hyperlinked person reference&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;a class=&amp;quot;h-card&amp;quot; href=&amp;quot;http://benward.me&amp;quot;&amp;gt;Ben Ward&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Ben Ward&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://benward.me&amp;quot;]&lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== hyperlinked person image ====&lt;br /&gt;
* Simple hyperlinked person image&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;a class=&amp;quot;h-card&amp;quot; href=&amp;quot;http://rohit.khare.org/&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;img alt=&amp;quot;Rohit Khare&amp;quot;&lt;br /&gt;
      src=&amp;quot;https://s3.amazonaws.com/twitter_production/profile_images/53307499/180px-Rohit-sq_bigger.jpg&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Rohit Khare&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://rohit.khare.org/&amp;quot;],&lt;br /&gt;
      &amp;quot;photo&amp;quot;: [&amp;quot;https://s3.amazonaws.com/twitter_production/profile_images/53307499/180px-Rohit-sq_bigger.jpg&amp;quot;]&lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Additional simple cases details in [[microformats-2-implied-properties]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== detailed person example ====&lt;br /&gt;
* More detailed person&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;img class=&amp;quot;u-photo&amp;quot; alt=&amp;quot;photo of Mitchell&amp;quot;&lt;br /&gt;
       src=&amp;quot;https://webfwd.org/content/about-experts/300.mitchellbaker/mentor_mbaker.jpg&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name u-url&amp;quot;&lt;br /&gt;
     href=&amp;quot;http://blog.lizardwrangler.com/&amp;quot; &lt;br /&gt;
    &amp;gt;Mitchell Baker&amp;lt;/a&amp;gt;&lt;br /&gt;
 (&amp;lt;a class=&amp;quot;u-url&amp;quot; &lt;br /&gt;
     href=&amp;quot;https://twitter.com/MitchellBaker&amp;quot;&lt;br /&gt;
    &amp;gt;@MitchellBaker&amp;lt;/a&amp;gt;)&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-org&amp;quot;&amp;gt;Mozilla Foundation&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;p class=&amp;quot;p-note&amp;quot;&amp;gt;&lt;br /&gt;
    Mitchell is responsible for setting the direction and scope of the Mozilla Foundation and its activities.&lt;br /&gt;
  &amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-category&amp;quot;&amp;gt;Strategy&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-category&amp;quot;&amp;gt;Leadership&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;photo&amp;quot;: [&amp;quot;https://webfwd.org/content/about-experts/300.mitchellbaker/mentor_mbaker.jpg&amp;quot;],&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Mitchell Baker&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&lt;br /&gt;
        &amp;quot;http://blog.lizardwrangler.com/&amp;quot;,&lt;br /&gt;
        &amp;quot;https://twitter.com/MitchellBaker&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;org&amp;quot;: [&amp;quot;Mozilla Foundation&amp;quot;],&lt;br /&gt;
      &amp;quot;note&amp;quot;: [&amp;quot;Mitchell is responsible for setting the direction and scope of the Mozilla Foundation and its activities.&amp;quot;],&lt;br /&gt;
      &amp;quot;category&amp;quot;: [&lt;br /&gt;
        &amp;quot;Strategy&amp;quot;,&lt;br /&gt;
        &amp;quot;Leadership&amp;quot;&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Notes: &lt;br /&gt;
# The JSON &amp;lt;code&amp;gt;&amp;quot;type&amp;quot;&amp;lt;/code&amp;gt; uses the full microformat root class name (e.g. &amp;lt;code&amp;gt;&amp;quot;h-card&amp;quot;&amp;lt;/code&amp;gt;) for consistent identification.&lt;br /&gt;
# all properties are optional and syntactically plural with parsed values provided in document order; particular microformats (and applications there-of) may apply specific/singular semantics to first value of a property.&lt;br /&gt;
&lt;br /&gt;
=== microformats2 design ===&lt;br /&gt;
microformats2 has the following key design aspects:&lt;br /&gt;
# '''Prefixes for class names.'''  Class names used for microformats use prefixes that start with with &amp;lt;code&amp;gt;'h-' 'p-' 'u-' 'dt-', 'e-'&amp;lt;/code&amp;gt;. These are '''syntax independent from vocabularies''', which can then be developed separately.&lt;br /&gt;
#* 'h-*' for root class names, e.g. 'h-card'&lt;br /&gt;
#* 'p-*' for simple (text) properties, e.g. 'p-name'&lt;br /&gt;
#* 'u-*' for URL properties, e.g. 'u-photo'&lt;br /&gt;
#* 'dt-*' for date/time properties, e.g. 'dt-bday'&lt;br /&gt;
#* 'e-*' for embedded markup properties, e.g. 'e-note'.&amp;lt;br/&amp;gt;See [[microformats2#naming_conventions_for_generic_parsing|prefix naming conventions]] for more details.&lt;br /&gt;
# '''Flat sets of optional properties.''' All microformats consist of a root, and a collection of properties. Hierarchical data is represented with nested microformats, typically as property values themselves. Properties are all optional and potentially multivalued (applications needing a singular semantic may use first instance).&lt;br /&gt;
# '''Single class markup for common uses.''' Common simple markup patterns require only a single microformat root class name, which parsers use to find a few generic properties: &amp;lt;code&amp;gt;name, url, photo&amp;lt;/code&amp;gt;. The simple microformats2 examples above demonstrate these.&lt;br /&gt;
&lt;br /&gt;
Parsing details for each of these prefixes (including how to generate canonical JSON) are specified step-by-step in the:&lt;br /&gt;
* '''[[microformats2-parsing|microformats2 parsing specification]]'''&lt;br /&gt;
&lt;br /&gt;
Note: most properties are specified and used with a single specific prefix (or occasionally two or three) that is self-evident from context. However any parsing prefix can be used with any property, especially if you find a good reason to do so!&lt;br /&gt;
&lt;br /&gt;
== v2 vocabularies ==&lt;br /&gt;
Status: '''&amp;lt;span id=&amp;quot;draft_v2_vocabularies&amp;quot;&amp;gt;draft&amp;lt;/span&amp;gt;'''. Please review and provide feedback in [[IRC]].&lt;br /&gt;
* [[h-adr]]&lt;br /&gt;
* [[h-card]]&lt;br /&gt;
* [[h-entry]]&lt;br /&gt;
* [[h-event]]&lt;br /&gt;
* [[h-feed]]&lt;br /&gt;
* [[h-geo]]&lt;br /&gt;
* [[h-item]]&lt;br /&gt;
* [[h-listing]]&lt;br /&gt;
* [[h-product]]&lt;br /&gt;
* [[h-recipe]]&lt;br /&gt;
* [[h-resume]]&lt;br /&gt;
* [[h-review]]&lt;br /&gt;
* [[h-review-aggregate]]&lt;br /&gt;
&lt;br /&gt;
See below for vocabulary summaries.&lt;br /&gt;
&lt;br /&gt;
=== h-adr ===&lt;br /&gt;
{{main|h-adr}}&lt;br /&gt;
&lt;br /&gt;
The '''h-adr''' microformat is for marking up structured locations such as addresses, physical and/or postal. This is an update to [[adr]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-adr&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-adr&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-post-office-box&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-extended-address&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-street-address&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-locality&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-region&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-postal-code&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-country-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-label&amp;lt;/code&amp;gt;''' - new in [[vCard4]] ([[RFC6350]])&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-geo&amp;lt;/code&amp;gt;''' (or '''&amp;lt;code&amp;gt;u-geo&amp;lt;/code&amp;gt;''' with a RFC 5870 geo: URL) - new in [[vCard4]] ([[RFC6350]])&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-latitude&amp;lt;/code&amp;gt;''' - new in [[vCard4]] ([[RFC6350]] from RFC 5870)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-longitude&amp;lt;/code&amp;gt;''' - new in [[vCard4]] ([[RFC6350]] from RFC 5870)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-altitude&amp;lt;/code&amp;gt;''' - new in [[vCard4]] ([[RFC6350]] from RFC 5870)&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-adr&amp;quot; is found, don't look for an &amp;quot;adr&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;adr&amp;quot;&amp;gt;adr&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;post-office-box&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;extended-address&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;street-address&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;locality&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;region&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;postal-code&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;country-name&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== h-card ===&lt;br /&gt;
{{main|h-card}}&lt;br /&gt;
&lt;br /&gt;
The '''h-card''' microformat is for marking up people and organizations. This is an update to [[hCard]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-card&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-honorific-prefix&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-given-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-additional-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-family-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-sort-string&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-honorific-suffix&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-nickname&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-email&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-logo&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-photo&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-uid&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-category&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-adr&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-post-office-box&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-extended-address&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-street-address&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-locality&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-region&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-postal-code&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-country-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-label&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-geo&amp;lt;/code&amp;gt;''' or '''&amp;lt;code&amp;gt;u-geo&amp;lt;/code&amp;gt;''' with a RFC 5870 geo: URL, new in [[vCard4]] ([[RFC6350]])&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-latitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-longitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-altitude&amp;lt;/code&amp;gt;''' - new in [[vCard4]] ([[RFC6350]] from RFC 5870)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-tel&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-note&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-bday&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-key&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-org&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-job-title&amp;lt;/code&amp;gt;''' - previously 'title' in hCard, disambiguated.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-role&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-impp&amp;lt;/code&amp;gt;''' per RFC 4770, new in [[vCard4]] ([[RFC6350]])&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-sex&amp;lt;/code&amp;gt;''' new in [[vCard4]] ([[RFC6350]])&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-gender-identity&amp;lt;/code&amp;gt;''' new in [[vCard4]] ([[RFC6350]])&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-anniversary&amp;lt;/code&amp;gt;''' new in [[vCard4]] ([[RFC6350]])&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
Reserved properties: (properties not used much (if at all) in practice)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-organization-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-organization-unit&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-tz&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-rev&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-card&amp;quot; is found, don't look for a &amp;quot;vcard&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;vcard&amp;quot;&amp;gt;vcard&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;fn&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;honorific-prefix&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;given-name&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;additional-name&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;family-name&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;honorific-suffix&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;nickname&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;email&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;logo&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;photo&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;category&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;adr&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-adr h-adr&amp;lt;/code&amp;gt;''' including compat root class &amp;lt;code&amp;gt;adr&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;extended-address&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;street-address&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;locality&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;region&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;postal-code&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;country-name&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;geo&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-geo h-geo&amp;lt;/code&amp;gt;''' including compat root class &amp;lt;code&amp;gt;geo&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;latitude&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;longitude&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;tel&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;note&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;bday&amp;lt;/code&amp;gt; - parse as '''dt-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;key&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;org&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;organization-name&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;organization-unit&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; - parse as '''p-job-title'''&lt;br /&gt;
* &amp;lt;code&amp;gt;role&amp;lt;/code&amp;gt;&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
Reserved: (backward compat properties that parsers {{may}} implement, if they do, they {{must}} implement in this way:&lt;br /&gt;
* &amp;lt;code&amp;gt;tz&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;rev&amp;lt;/code&amp;gt; - parse as '''dt-'''&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
Note: use of 'value' within 'tel' should be automatically handled by the support of the [[value-class-pattern]]. And for now, the 'type' subproperty of 'tel' is dropped/ignored. If there is demonstrable documented need for additional tel types (e.g. fax), we can introduce new flat properties as needed (e.g. p-tel-fax).&lt;br /&gt;
&lt;br /&gt;
=== h-entry ===&lt;br /&gt;
{{main|h-entry}}&lt;br /&gt;
&lt;br /&gt;
The '''h-entry''' microformat is for marking up syndicatable content such as blog posts, notes, articles, comments, photos and similar. This is an update to [[hAtom]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-entry&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;''' (was p-entry-title, see issues)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt;''' (was p-entry-summary, see issues)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;e-content&amp;lt;/code&amp;gt;''' (was e-entry-content, see issues)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-published&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-updated&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-author&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-category&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-uid&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-geo&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-latitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-longitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
This is an update to [[hAtom]]. &lt;br /&gt;
&lt;br /&gt;
Brainstorming:&lt;br /&gt;
&lt;br /&gt;
The following properties are proposed additions to h-entry above and beyond what hAtom (or Atom) provides, based on various existing link preview markup conventions:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-photo&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-audio&amp;lt;/code&amp;gt;''' - consider special u- parsing rules for &amp;lt;code&amp;gt;&amp;amp;lt;audio&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-video&amp;lt;/code&amp;gt;''' - consider special u- parsing rules for &amp;lt;code&amp;gt;&amp;amp;lt;video&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-in-reply-to&amp;lt;/code&amp;gt;''' - for links to other posts that this post is a reply to (comment regarding, etc.)&lt;br /&gt;
&lt;br /&gt;
Backward compatibility: &lt;br /&gt;
&lt;br /&gt;
(*)hAtom-specific implementations that perform custom display or translation (e.g. to Atom XML) {{should}} prefer &amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt; over &amp;lt;code&amp;gt;p-entry-title&amp;lt;/code&amp;gt;, and use &amp;lt;code&amp;gt;p-entry-title&amp;lt;/code&amp;gt; value(s) as a fallback if there is no &amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For hAtom backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-entry&amp;quot; is found, don't look for a &amp;quot;hentry&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;hentry&amp;quot;&amp;gt;hentry&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;entry-title&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;entry-summary&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;entry-content&amp;lt;/code&amp;gt; - parse as '''e-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;published&amp;lt;/code&amp;gt; - parse as '''dt-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;updated&amp;lt;/code&amp;gt; - parse as '''dt-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; - including compat root &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;category&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;geo&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-geo h-geo&amp;lt;/code&amp;gt;''' including compat root &amp;lt;code&amp;gt;geo&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;latitude&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;longitude&amp;lt;/code&amp;gt;&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;h-entry-faq&amp;quot;&amp;gt;FAQ:&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;discussion&amp;quot;&amp;gt;&lt;br /&gt;
* '''What is the &amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt; of a [http://indiewebcamp.com/note note]?'''&lt;br /&gt;
** A few options, from simplest to most detailed.&lt;br /&gt;
*** '''same as the p-content/e-content''' property.&lt;br /&gt;
*** '''same as the &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; element''' on the note permalink post page. When publishing a note on its own permalink post page, the contents of the note are likely abbreviated for the title of the page. The same abbreviation can be used for the p-name.&lt;br /&gt;
*** '''first sentence of the p-content/e-content''' property. It may be better for [http://indiewebcamp.com/syndication syndication] and [[link-preview]] purposes to provide just the first sentence of the note as the &amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;. Similarly if only a portion of the content is syndicated to other sites, that portion can be marked up as the &amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt;.&lt;br /&gt;
* ...&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolved Issues:&lt;br /&gt;
* 2012-245 Resolved. See [http://krijnhoetmer.nl/irc-logs/microformats/20120830#l-120 2012-243 IRC discussion/consensus] for:&lt;br /&gt;
** Use '''&amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;p-entry-summary&amp;lt;/code&amp;gt;'''. The historical semantic of &amp;quot;entry-summary&amp;quot; is not different from &amp;quot;summary&amp;quot; in any significant (or discernible way). Collapsing the two will simplify the overall microformats2 vocabularies further. In microformats2, entry-summary is no more.&lt;br /&gt;
** Use '''&amp;lt;code&amp;gt;e-content&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;e-entry-content&amp;lt;/code&amp;gt;'''. Same point and advantage. In microformats2, entry-content is no more.&lt;br /&gt;
** '''drop &amp;lt;code&amp;gt;p-entry-title&amp;lt;/code&amp;gt;'''. Unnecessary and subsumed by &amp;quot;p-name&amp;quot;. Would consider move to backward compat only if cases are presented - known publishing uses are expected to be updated shortly.&lt;br /&gt;
&lt;br /&gt;
=== h-event ===&lt;br /&gt;
{{main|h-event}}&lt;br /&gt;
&lt;br /&gt;
The '''h-event''' microformat is for marking up events. This is an update to [[hCalendar]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-event&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-event&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt;'''(*)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-start&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-end&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-duration&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-description&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-category&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-location&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-geo&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-latitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-longitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
This is an update to [[hCalendar]]. &lt;br /&gt;
&lt;br /&gt;
(*)hCalendar-specific implementations that perform custom display or translation (e.g. to iCalendar .ics) {{should}} prefer &amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt; over &amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt;, and use &amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt; value(s) as a fallback if there is no &amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-event&amp;quot; is found, don't look for a &amp;quot;vevent&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;vevent&amp;quot;&amp;gt;vevent&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;dtstart&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;dt-start&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;dtend&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;dt-end&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;duration&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;dt-duration&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;category&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; - including compat root &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;, and compat root &amp;lt;code&amp;gt;adr&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-adr&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;geo&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-geo h-geo&amp;lt;/code&amp;gt;''' including compat root &amp;lt;code&amp;gt;geo&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;latitude&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;longitude&amp;lt;/code&amp;gt;&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=== h-geo ===&lt;br /&gt;
{{main|h-geo}}&lt;br /&gt;
&lt;br /&gt;
The '''h-geo''' microformat is for marking up WGS84 geophysical coordinates. This is an update to [[geo]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-geo&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-geo&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-latitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-longitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-altitude&amp;lt;/code&amp;gt;''' - new in [[vCard4]] ([[RFC6350]] from RFC 5870)&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-geo&amp;quot; is found, don't look for an &amp;quot;geo&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;geo&amp;quot;&amp;gt;geo&amp;lt;/code&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;latitude&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;longitude&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== h-item ===&lt;br /&gt;
{{main|h-item}}&lt;br /&gt;
&lt;br /&gt;
The '''h-item''' microformat is for marking up the item of an [[h-review]] or [[h-product]]. This is an update to part of [[hReview]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-item&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-item&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-photo&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Note: in practice, due to the microformats2 implied property rules, it is expected that most uses of &amp;quot;h-item&amp;quot; won't require any explicit properties at all (since microformats2 parsers will infer name, photo, and url properties from the structure of the element with &amp;quot;h-item&amp;quot; and its contained content/elements if any).&lt;br /&gt;
&lt;br /&gt;
=== h-product ===&lt;br /&gt;
{{main|h-product}}&lt;br /&gt;
&lt;br /&gt;
The '''h-product''' microformat is for marking up products. This is an update to [[hProduct]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-product&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-product&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;''' - name of the product&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-photo&amp;lt;/code&amp;gt;''' - photo of the product&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-brand&amp;lt;/code&amp;gt;''' - manufacturer, can also be a nested &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-category&amp;lt;/code&amp;gt;''' - freeform categories or tags applied to the item by the reviewer &lt;br /&gt;
* '''&amp;lt;code&amp;gt;e-description&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;''' - URL of the product&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-identifier&amp;lt;/code&amp;gt;''' - includes type (e.g. mpn, upc, isbn, issn, sn, vin, sku etc.) and value.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-review&amp;lt;/code&amp;gt;''' - a review of the product, can also be a nested &amp;lt;code&amp;gt;h-review&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-price&amp;lt;/code&amp;gt;''' - retail price of the product&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-product&amp;quot; is found, don't look for an &amp;quot;hproduct&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;hproduct&amp;quot;&amp;gt;hproduct&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;fn&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;photo&amp;lt;/code&amp;gt;  - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;brand&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;category&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;identifier&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;review&amp;lt;/code&amp;gt; - including compat root class &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-review&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;price&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: [[hProduct]] has at least one experimental property which has real world adoption due to [[Google]] and [[Bing]] search support of hProduct. Currently this is: '''price'''&lt;br /&gt;
&lt;br /&gt;
=== h-recipe ===&lt;br /&gt;
{{main|h-recipe}}&lt;br /&gt;
&lt;br /&gt;
The '''h-recipe''' microformat is for marking up food recipes. This is an update to [[hRecipe]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-recipe&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-recipe&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;''' - the name of the recipe&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-ingredient&amp;lt;/code&amp;gt;''' - describes one or more ingredients used in the recipe.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-yield&amp;lt;/code&amp;gt;''' - Specifies the quantity produced by the recipe, like how many persons it satisfyies &lt;br /&gt;
* '''&amp;lt;code&amp;gt;e-instructions&amp;lt;/code&amp;gt;''' - the method of the recipe.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-duration&amp;lt;/code&amp;gt;''' - the time it takes to prepare the meal described by the recipe.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-photo&amp;lt;/code&amp;gt;''' - an accompanying image&lt;br /&gt;
&lt;br /&gt;
Experimental properties with wide adoption&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt;'''  - provides a short summary or introduction &lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-author&amp;lt;/code&amp;gt;''' - the person who wrote the recipe with &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-published&amp;lt;/code&amp;gt;''' - the date the recipe was published&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-nutrition&amp;lt;/code&amp;gt;''' - nutritional information like calories, fat, dietary fiber etc.&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-recipe&amp;quot; is found, don't look for an &amp;quot;hrecipe&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;hrecipe&amp;quot;&amp;gt;hrecipe&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;fn&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;ingredient&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;yield&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;instructions&amp;lt;/code&amp;gt; - parse as '''e-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;duration&amp;lt;/code&amp;gt; - parse as '''dt-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;photo&amp;lt;/code&amp;gt;  - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; - including compat root &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;nutrition&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: [[hRecipe]] has a number of experimental properties which have real world adoption due to [[Google]] recipe search support of hRecipe. These are: summary, author, published and nutrition&lt;br /&gt;
&lt;br /&gt;
=== h-resume ===&lt;br /&gt;
{{main|h-resume}}&lt;br /&gt;
&lt;br /&gt;
The '''h-resume''' microformat is for marking up resumes. This is an update to [[hResume]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-resume&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-resume&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt;''' - overview of qualifications and objectives&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-contact&amp;lt;/code&amp;gt;''' - current contact info in an &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-education&amp;lt;/code&amp;gt;''' - an education &amp;lt;code&amp;gt;h-calendar&amp;lt;/code&amp;gt; event, years, nested &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt; of the school, location.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-experience&amp;lt;/code&amp;gt;''' - a job or other professional experience &amp;lt;code&amp;gt;h-calendar&amp;lt;/code&amp;gt; event, years, nested &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt; of the organization, location, job-title.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-skill&amp;lt;/code&amp;gt;''' - a skill or ability, optionally including level and/or duration of experience&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-affiliation&amp;lt;/code&amp;gt;''' - an affiliation with an &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt; organization&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-resume&amp;quot; is found, don't look for an &amp;quot;hresume&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;hresume&amp;quot;&amp;gt;hresume&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;contact&amp;lt;/code&amp;gt; - including compat root &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;education&amp;lt;/code&amp;gt; - including compat root &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-event&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;experience&amp;lt;/code&amp;gt; - including compat root &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-event&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;skill&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;affiliation&amp;lt;/code&amp;gt; - including compat root &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: skill has a [[hresume-skill-brainstorm|proposed expansion into competency]] with explicit summary, rating and/or duration components. Based on existing real world adoption, we should consider an h-competency vocabulary with p-summary, p-rating, and dt-duration properties.&lt;br /&gt;
&lt;br /&gt;
=== h-review ===&lt;br /&gt;
{{main|h-review}}&lt;br /&gt;
&lt;br /&gt;
The '''h-review''' microformat is for marking up reviews. This is an update to [[hReview]]. See also [[h-item]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-review&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-review&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;''' - name of the review&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-item&amp;lt;/code&amp;gt;''' - thing been reviewed i.e. business or person (h-card), event (h-event), place (h-adr or h-geo), product (h-product), website, url, or other item ([[h-item]]).&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-reviewer&amp;lt;/code&amp;gt;''' - person who authored the review &lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-reviewed&amp;lt;/code&amp;gt;''' - date time of when the review was written&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-rating&amp;lt;/code&amp;gt;''' - value from 1-5 indicating a rating for the item (5 best).&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-best&amp;lt;/code&amp;gt;'''  - define best rating value. can be numerically lower than worst.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-worst&amp;lt;/code&amp;gt;'''  - define worst rating value. can be numerically higher than best. &lt;br /&gt;
* '''&amp;lt;code&amp;gt;e-description&amp;lt;/code&amp;gt;''' - the full text written evaluation and opinion of the reviewer&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-category&amp;lt;/code&amp;gt;''' - freeform categories or tags applied to the item by the reviewer &lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;''' - URL of the review&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-review&amp;quot; is found, don't look for an &amp;quot;hreview&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;hreview&amp;quot;&amp;gt;hreview&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; parse as '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;fn&amp;lt;/code&amp;gt; - parse as '''p-name''' of the item being reviewed (p-item h-item p-name)&lt;br /&gt;
* &amp;lt;code&amp;gt;photo&amp;lt;/code&amp;gt; - parse as '''u-photo''' of the item being reviewed (p-item h-item u-photo)&lt;br /&gt;
* &amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt; - parse as '''u-url''' of the item being reviewed (p-item h-item u-url)&lt;br /&gt;
* &amp;lt;code&amp;gt;reviewer&amp;lt;/code&amp;gt;  - including compat root vcard in the absence of h-card&lt;br /&gt;
* &amp;lt;code&amp;gt;dtreviewed&amp;lt;/code&amp;gt; - parse as '''dt-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;best&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;worst&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; - parse as '''e-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;rel=&amp;quot;tag&amp;quot;&amp;lt;/code&amp;gt; - parse as '''p-category'''&lt;br /&gt;
* &amp;lt;code&amp;gt;rel=&amp;quot;self bookmark&amp;quot;&amp;lt;/code&amp;gt; - parse as '''u-url'''. note that &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt; attribute value is treated as a space separated set, thus any presence of &amp;quot;self&amp;quot; and &amp;quot;bookmark&amp;quot; within such a set in a rel value is accepted.&lt;br /&gt;
&lt;br /&gt;
Note: The [[hReview]] format has three properties which make use of &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt; attribute, these are &amp;lt;code&amp;gt;tag&amp;lt;/code&amp;gt;, permalink (via the &amp;lt;code&amp;gt;self&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bookmark&amp;lt;/code&amp;gt; values) and &amp;lt;code&amp;gt;license&amp;lt;/code&amp;gt;. Microformats 2 parsers {{should}} map these URLs into the page scoped rel collection.&lt;br /&gt;
&lt;br /&gt;
=== h-review-aggregate ===&lt;br /&gt;
{{main|h-review-aggregate}}&lt;br /&gt;
&lt;br /&gt;
The '''h-review-aggregate''' microformat is for marking up aggregate reviews of a single item. This is an update to [[hreview-aggregate]]. See also [[h-item]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-review-aggregate&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-review-aggregate&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;''' - name of the review&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-item&amp;lt;/code&amp;gt;''' - thing been reviewed i.e. business or person (h-card), event (h-event), place (h-adr or h-geo), product (h-product), website, url, or other item (h-item).&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-rating&amp;lt;/code&amp;gt;''' - value from 1-5 indicating average rating for the item (5 best).&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-best&amp;lt;/code&amp;gt;'''  - define best rating value. can be numerically lower than worst.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-worst&amp;lt;/code&amp;gt;'''  - define worst rating value. can be numerically higher than best. &lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-count&amp;lt;/code&amp;gt;'''  - number of reviews aggregated.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-votes&amp;lt;/code&amp;gt;'''  - number of reviewers who have rated the product, thus contributing to the average rating.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-category&amp;lt;/code&amp;gt;''' - freeform categories or tags applied to the item by the reviewer&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;''' - URL of the review&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-review-aggregate&amp;quot; is found, don't look for an &amp;quot;hreview-aggregate&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;hreview-aggregate&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; parse as '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;fn&amp;lt;/code&amp;gt; - parse as '''p-name''' of the item being reviewed (p-item h-item p-name)&lt;br /&gt;
* &amp;lt;code&amp;gt;photo&amp;lt;/code&amp;gt; - parse as '''u-photo''' of the item being reviewed (p-item h-item u-photo)&lt;br /&gt;
* &amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt; - parse as '''u-url''' of the item being reviewed (p-item h-item u-url)&lt;br /&gt;
* &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;best&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;worst&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;count&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;votes&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;rel=&amp;quot;tag&amp;quot;&amp;lt;/code&amp;gt; - parse as '''p-category'''&lt;br /&gt;
* &amp;lt;code&amp;gt;rel=&amp;quot;self bookmark&amp;quot;&amp;lt;/code&amp;gt; - parse as '''u-url'''. note that &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt; attribute value is treated as a space separated set, thus any presence of &amp;quot;self&amp;quot; and &amp;quot;bookmark&amp;quot; within such a set in a rel value is accepted.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== v2 vocab notes ===&lt;br /&gt;
Notes: &lt;br /&gt;
* All v2 vocabularies are defined as flat lists of properties of an object/item, and thus can be used in microformats-2 syntax as shown, or in microdata items, or RDFa. The microformats-2 property parsing prefixes &amp;quot;p-&amp;quot;, &amp;quot;u-&amp;quot;, &amp;quot;dt-&amp;quot;, &amp;quot;e-&amp;quot; are omitted when using defined properties in microdata itemprop and RDFa property as those syntaxes have their own element-specific parsing rules.&lt;br /&gt;
* Profile URLs are provided for use with the HTML4 &amp;lt;code&amp;gt;profile&amp;lt;/code&amp;gt; attribute, microdata &amp;lt;code&amp;gt;itemtype&amp;lt;/code&amp;gt; attribute, and RDFa &amp;lt;code&amp;gt;vocab&amp;lt;/code&amp;gt; &amp;amp;amp; &amp;lt;code&amp;gt;typeof&amp;lt;/code&amp;gt; attributes (though the latter requires slicing off the trailing segment of the profile for the typeof attribute, and leaving the rest in vocab). &lt;br /&gt;
* microformats 2 properties may also be explicitly bound as URIs using [[rel-profile]], the [[html5-profile]] attribute proposal, or an HTML5 'vocab' attribute instead. If URI bound terms are important to you, please express interest on [[rel-profile]], [[html5-profile]], or contribute to an [[html5-vocab]] draft.&lt;br /&gt;
&lt;br /&gt;
=== v2 vocab to-do ===&lt;br /&gt;
To do: &lt;br /&gt;
* write a simple tutorial for creating/getting started with microformats-2 markup for new content&lt;br /&gt;
* examples in each h-* spec listed above of how to embed other microformats in them&lt;br /&gt;
* actual profile documents at &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-*&amp;lt;/nowiki&amp;gt; URLs mentioned above.&lt;br /&gt;
* Provide any necessary microdata-specific language as needed (e.g. to be comparably understandable to the [http://www.whatwg.org/specs/web-apps/current-work/#vcard sample vCard4/hCard1 microdata vocabulary]. Also provide any necessary RDFa-specific language as needed. Both preferably in a generic vocabulary-independent way.&lt;br /&gt;
* write a porting guide mapping v1 property -&amp;gt; v2 property&lt;br /&gt;
** use-case: simple search/replace in templates (e.g. in case web author doesn't remember existing microformats vocabs and where they used them).&lt;br /&gt;
** advise using *both* in existing templates (e.g. in case some CSS depends on the existing microformats)&lt;br /&gt;
* analyzie/document how well the microformats2 model and vocabularies satisfy the [http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-May/019681.html use-cases used to design/create microdata].&lt;br /&gt;
&lt;br /&gt;
== combining microformats ==&lt;br /&gt;
Since microformats 2 uses simple flat sets of properties for each microformat, multiple microformats are combined to indicate additional structure.&lt;br /&gt;
&lt;br /&gt;
=== h-event location h-card ===&lt;br /&gt;
Events commonly have venue information with additional structure, like address information. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-event&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name u-url&amp;quot; href=&amp;quot;http://indiewebcamp.com/2012&amp;quot;&amp;gt;&lt;br /&gt;
    IndieWebCamp 2012&lt;br /&gt;
  &amp;lt;/a&amp;gt;&lt;br /&gt;
  from &amp;lt;time class=&amp;quot;dt-start&amp;quot;&amp;gt;2012-06-30&amp;lt;/time&amp;gt; &lt;br /&gt;
  to &amp;lt;time class=&amp;quot;dt-end&amp;quot;&amp;gt;2012-07-01&amp;lt;/time&amp;gt; at &lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-location h-card&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;a class=&amp;quot;p-name p-org u-url&amp;quot; href=&amp;quot;http://geoloqi.com/&amp;quot;&amp;gt;&lt;br /&gt;
      Geoloqi&lt;br /&gt;
    &amp;lt;/a&amp;gt;, &lt;br /&gt;
    &amp;lt;span class=&amp;quot;p-street-address&amp;quot;&amp;gt;920 SW 3rd Ave. Suite 400&amp;lt;/span&amp;gt;, &lt;br /&gt;
    &amp;lt;span class=&amp;quot;p-locality&amp;quot;&amp;gt;Portland&amp;lt;/span&amp;gt;, &lt;br /&gt;
    &amp;lt;abbr class=&amp;quot;p-region&amp;quot; title=&amp;quot;Oregon&amp;quot;&amp;gt;OR&amp;lt;/abbr&amp;gt;&lt;br /&gt;
  &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The nested h-card used to structure the p-location of the h-event is represented as a structured value for &amp;quot;location&amp;quot; in the JSON, which has an additional key, &amp;quot;value&amp;quot; that represents the plain text version parsed from the p-location.&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-event&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;IndieWebCamp 2012&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://indiewebcamp.com/2012&amp;quot;],&lt;br /&gt;
      &amp;quot;start&amp;quot;: [&amp;quot;2012-06-30&amp;quot;],&lt;br /&gt;
      &amp;quot;end&amp;quot;: [&amp;quot;2012-07-01&amp;quot;],&lt;br /&gt;
      &amp;quot;location&amp;quot;: [{&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Geoloqi&amp;quot;,&lt;br /&gt;
        &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
        &amp;quot;properties&amp;quot;: {&lt;br /&gt;
          &amp;quot;name&amp;quot;: [&amp;quot;Geoloqi&amp;quot;],&lt;br /&gt;
          &amp;quot;org&amp;quot;: [&amp;quot;Geoloqi&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;http://geoloqi.com/&amp;quot;],&lt;br /&gt;
          &amp;quot;street-address&amp;quot;: [&amp;quot;920 SW 3rd Ave. Suite 400&amp;quot;],&lt;br /&gt;
          &amp;quot;locality&amp;quot;: [&amp;quot;Portland&amp;quot;],&lt;br /&gt;
          &amp;quot;region&amp;quot;: [&amp;quot;Oregon&amp;quot;]&lt;br /&gt;
        }&lt;br /&gt;
      }]&lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Questions:&lt;br /&gt;
&amp;lt;div class=&amp;quot;discussion&amp;quot;&amp;gt;&lt;br /&gt;
* Should the nested hCard be present also as a top-level item in the JSON? - [[User:Tantek|Tantek]] 02:02, 19 June 2012 (UTC)&lt;br /&gt;
** My current (2012-243) leaning is no. - [[User:Tantek|Tantek]] 18:53, 30 August 2012 (UTC)&lt;br /&gt;
** If so, how do we avoid expansion of the JSON geometrically proportional to the depth of microformat nesting? (Or do we not worry about it?)&lt;br /&gt;
* Should there be a canonical hierarchical JSON and a canonical flattened JSON? - [[User:Tantek|Tantek]] 02:02, 19 June 2012 (UTC)&lt;br /&gt;
** My current (2012-243) leaning is no, we stick with one canonical JSON for uf2 which is hierarchical. - [[User:Tantek|Tantek]] 18:53, 30 August 2012 (UTC)&lt;br /&gt;
** If so, should the flattened JSON have references from properties to nested microformats that have been pushed to the top level per flattening? - [[User:Tantek|Tantek]] 02:02, 19 June 2012 (UTC)&lt;br /&gt;
*** If so, what convention does/do JSON follow for such synthetic local reference identifiers? - [[User:Tantek|Tantek]] 02:02, 19 June 2012 (UTC)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The 'location' value reflects the visible text of its element, including spaces and punctuation, as well as the state abbreviation 'OR'. The 'h-card' property values are only what is marked up, and thus include structure values without extra punctuation, and the state takes the expanded form from the &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute of its &amp;lt;code&amp;gt;&amp;amp;lt;abbr&amp;amp;gt;&amp;lt;/code&amp;gt; element.&lt;br /&gt;
&lt;br /&gt;
=== h-card org h-card ===&lt;br /&gt;
People often publish information general to their company rather than specific to them, in which case, they may wish to encapsulate that in separately nested microformat. E.g. here is a simple h-card example with org property:&lt;br /&gt;
&lt;br /&gt;
[http://blog.lizardwrangler.com Mitchell Baker] (Mozilla Foundation)&lt;br /&gt;
&lt;br /&gt;
with source:&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name u-url&amp;quot;&lt;br /&gt;
     href=&amp;quot;http://blog.lizardwrangler.com/&amp;quot; &lt;br /&gt;
    &amp;gt;Mitchell Baker&amp;lt;/a&amp;gt; &lt;br /&gt;
  (&amp;lt;span class=&amp;quot;p-org&amp;quot;&amp;gt;Mozilla Foundation&amp;lt;/span&amp;gt;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Mitchell Baker&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://blog.lizardwrangler.com/&amp;quot;],&lt;br /&gt;
      &amp;quot;org&amp;quot;: [&amp;quot;Mozilla Foundation&amp;quot;]&lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sometimes such organization affiliations are hyperlinked to the website of the organization:&lt;br /&gt;
&lt;br /&gt;
[http://blog.lizardwrangler.com Mitchell Baker] ([http://mozilla.org/ Mozilla Foundation])&lt;br /&gt;
&lt;br /&gt;
You can mark that up with a nested h-card:&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name u-url&amp;quot;&lt;br /&gt;
     href=&amp;quot;http://blog.lizardwrangler.com/&amp;quot; &lt;br /&gt;
    &amp;gt;Mitchell Baker&amp;lt;/a&amp;gt; &lt;br /&gt;
  (&amp;lt;a class=&amp;quot;p-org h-card&amp;quot; &lt;br /&gt;
      href=&amp;quot;http://mozilla.org/&amp;quot;&lt;br /&gt;
     &amp;gt;Mozilla Foundation&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;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Mitchell Baker&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://blog.lizardwrangler.com/&amp;quot;],&lt;br /&gt;
      &amp;quot;org&amp;quot;: [{&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Mozilla Foundation&amp;quot;,&lt;br /&gt;
        &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
        &amp;quot;properties&amp;quot;: {&lt;br /&gt;
          &amp;quot;name&amp;quot;: [&amp;quot;Mozilla Foundation&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;http://mozilla.org/&amp;quot;]&lt;br /&gt;
        }&lt;br /&gt;
      }]&lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: the nested h-card has implied 'name' and 'url' properties, just like any other root-class-name-only h-card on an &amp;lt;code&amp;gt;&amp;amp;lt;a href&amp;amp;gt;&amp;lt;/code&amp;gt; would.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''FOR PARSERS ONLY:'''&lt;br /&gt;
&lt;br /&gt;
The nested 'h-card' could be marked up as an 'h-org' as well, which adds it to the nested microformat's type array, all as part of the property specified by the 'p-org'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name u-url&amp;quot;&lt;br /&gt;
     href=&amp;quot;http://blog.lizardwrangler.com/&amp;quot; &lt;br /&gt;
    &amp;gt;Mitchell Baker&amp;lt;/a&amp;gt; &lt;br /&gt;
  (&amp;lt;a class=&amp;quot;p-org h-card h-org&amp;quot; &lt;br /&gt;
      href=&amp;quot;http://mozilla.org/&amp;quot;&lt;br /&gt;
     &amp;gt;Mozilla Foundation&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;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Mitchell Baker&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://blog.lizardwrangler.com/&amp;quot;],&lt;br /&gt;
      &amp;quot;org&amp;quot;: [{&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Mozilla Foundation&amp;quot;,&lt;br /&gt;
        &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;, &amp;quot;h-org&amp;quot;],&lt;br /&gt;
        &amp;quot;properties&amp;quot;: {&lt;br /&gt;
          &amp;quot;name&amp;quot;: [&amp;quot;Mozilla Foundation&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;http://mozilla.org/&amp;quot;]&lt;br /&gt;
        }&lt;br /&gt;
      }]&lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''FOR PARSERS ONLY:'''&lt;br /&gt;
&lt;br /&gt;
Without a property class name like 'p-org' holding all the nested objects together, we need to introduce another array for nested children (similar to the existing DOM element notion of children) of a microformat that are not attached to a specific property:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name u-url&amp;quot;&lt;br /&gt;
     href=&amp;quot;http://blog.lizardwrangler.com/&amp;quot; &lt;br /&gt;
    &amp;gt;Mitchell Baker&amp;lt;/a&amp;gt; &lt;br /&gt;
  (&amp;lt;a class=&amp;quot;h-org h-card&amp;quot; &lt;br /&gt;
      href=&amp;quot;http://mozilla.org/&amp;quot;&lt;br /&gt;
     &amp;gt;Mozilla Foundation&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;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Mitchell Baker&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://blog.lizardwrangler.com/&amp;quot;]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;children&amp;quot;: [{&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;,&amp;quot;h-org&amp;quot;],&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;name&amp;quot;: [&amp;quot;Mozilla Foundation&amp;quot;],&lt;br /&gt;
        &amp;quot;url&amp;quot;: [&amp;quot;http://mozilla.org/&amp;quot;]&lt;br /&gt;
      }  &lt;br /&gt;
    }]&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Since there's no property class name on the element with classes 'h-card' and 'h-org', the microformat representing that element is collected into the children array.&lt;br /&gt;
&lt;br /&gt;
Such a nested microformat implies some relationship (containment, being related), but is not as useful as if the nested microformat was a specific property of its parent.&lt;br /&gt;
&lt;br /&gt;
For this reason it's recommended that authors should not publish nested microformats without a  property class name, and instead, when nesting microformats, authors should always specify a property class name (like 'p-org') on the same element as the root class name(s) of the nested microformat(s) (like 'h-card' and/or 'h-org').&lt;br /&gt;
&lt;br /&gt;
'''FOR PARSERS ONLY:'''&lt;br /&gt;
&lt;br /&gt;
Or the nested object could be only marked up with 'h-card'. Source:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name u-url&amp;quot;&lt;br /&gt;
     href=&amp;quot;http://blog.lizardwrangler.com/&amp;quot; &lt;br /&gt;
    &amp;gt;Mitchell Baker&amp;lt;/a&amp;gt; &lt;br /&gt;
  (&amp;lt;a class=&amp;quot;h-card&amp;quot; &lt;br /&gt;
      href=&amp;quot;http://mozilla.org/&amp;quot;&lt;br /&gt;
     &amp;gt;Mozilla Foundation&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;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Mitchell Baker&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://blog.lizardwrangler.com/&amp;quot;]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;children&amp;quot;: [{&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;name&amp;quot;: [&amp;quot;Mozilla Foundation&amp;quot;],&lt;br /&gt;
        &amp;quot;url&amp;quot;: [&amp;quot;http://mozilla.org/&amp;quot;]&lt;br /&gt;
      }  &lt;br /&gt;
    }]&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''TO DO: Add h-event h-card example and JSON, per real world publishing examples like [http://www.swingtime.co.uk/List/ClSouth.html Swing Time: Classes in Southern England].'''&lt;br /&gt;
&lt;br /&gt;
== authoring ==&lt;br /&gt;
=== minimal markup ===&lt;br /&gt;
The best way to use microformats-2 is with as little additional markup as possible. This keeps your code cleaner, improves its maintainability, and thus the quality and longevity of your microformats.&lt;br /&gt;
&lt;br /&gt;
One big advantage of microformats-2 over previous microformats (and others) is the ability to add one class name to an existing element to create a structured item.&lt;br /&gt;
&lt;br /&gt;
See the [[microformats-2#simple_microformats_2_examples|simple examples at the top]] for a start, e.g.&lt;br /&gt;
&lt;br /&gt;
Simple hCards work just by adding &amp;lt;code&amp;gt;class=&amp;quot;h-card&amp;quot;&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;h-card&amp;quot;&amp;gt;Frances Berriman&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a class=&amp;quot;h-card&amp;quot; href=&amp;quot;http://benward.me&amp;quot;&amp;gt;Ben Ward&amp;lt;/a&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;img class=&amp;quot;h-card&amp;quot; alt=&amp;quot;Sally Ride&amp;quot; &lt;br /&gt;
     src=&amp;quot;http://upload.wikimedia.org/wikipedia/commons/a/a4/Ride-s.jpg&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a class=&amp;quot;h-card&amp;quot; href=&amp;quot;http://tantek.com&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;img alt=&amp;quot;Tantek Çelik&amp;quot; src=&amp;quot;http://ttk.me/logo.jpg&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Tip: Inside an open tag, put the &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt; attribute &amp;lt;em&amp;gt;first&amp;lt;/em&amp;gt;, then any human text content attributes (e.g. &amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt;), then URL attributes (e.g. &amp;lt;code&amp;gt;href&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt;), and lastly other attributes (e.g. &amp;lt;code&amp;gt;style&amp;lt;/code&amp;gt;). Putting the class attribute first ties it closely to the element name/tag itself, makes it more obvious, and thus more likely to be kept up to date.&lt;br /&gt;
&lt;br /&gt;
=== backward compatible ===&lt;br /&gt;
If you depend on current microformats [[implementations]], while they're being updated to support [[microformats-2]], you can include both existing microformats and microformats-2 markup.&lt;br /&gt;
&lt;br /&gt;
In short: use both sets of class names simultaneously. &lt;br /&gt;
&lt;br /&gt;
When doing so, use them on the same element, with the microformats-2 class name first, followed immediately by the existing microformats class name.&lt;br /&gt;
&lt;br /&gt;
Here are the microformats-2 hCards from above with current [[hCard]] markup as well, which may require adding a wrapping element (e.g. a &amp;lt;code&amp;gt;&amp;amp;lt;span&amp;amp;gt;&amp;lt;/code&amp;gt;) to separate the root class name element from explicit property class name elements:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;h-card vcard&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-name fn&amp;quot;&amp;gt;Frances Berriman&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;h-card vcard&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name fn u-url url&amp;quot; href=&amp;quot;http://benward.me&amp;quot;&amp;gt;Ben Ward&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;h-card vcard&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;img class=&amp;quot;p-name fn u-photo photo&amp;quot; alt=&amp;quot;Sally Ride&amp;quot; &lt;br /&gt;
       src=&amp;quot;http://upload.wikimedia.org/wikipedia/commons/a/a4/Ride-s.jpg&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;h-card vcard&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;u-url url&amp;quot; href=&amp;quot;http://tantek.com&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;img class=&amp;quot;p-name fn u-photo photo&amp;quot; alt=&amp;quot;Tantek Çelik&amp;quot; &lt;br /&gt;
         src=&amp;quot;http://ttk.me/logo.jpg&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tips:&lt;br /&gt;
* use the microformats-2 class name first, e.g.&lt;br /&gt;
** &amp;lt;code&amp;gt;class=&amp;quot;h-card vcard&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;class=&amp;quot;u-url url&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* and pair them when using an element for multiple properties, e.g.:&lt;br /&gt;
** &amp;lt;code&amp;gt;class=&amp;quot;p-name fn u-url url&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;class=&amp;quot;p-name fn u-photo photo&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* put microformats classes after classes for CSS (since page authors will likely interact more with their own classes for design than with microformats classes), e.g. as used on individual microformats [[events]] pages:&lt;br /&gt;
** &amp;lt;code&amp;gt;class=&amp;quot;event-page h-event vevent&amp;quot;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The prefixes (h-, p-, etc.) of microformats2 class names provide easier recognition, and when followed by the similarly named existing class name, they're more easily recognized as related and thus kept together when the markup is maintained over time.&lt;br /&gt;
&lt;br /&gt;
Related FAQ: [[microformats2-faq#when_using_both_h-card_and_vcard_which_should_be_first_and_why|When using both h-card and vcard which should be first and why?]]&lt;br /&gt;
&lt;br /&gt;
== validators ==&lt;br /&gt;
microformats2 validators:&lt;br /&gt;
&lt;br /&gt;
{{new}} Test your microformatted web page with: &lt;br /&gt;
* https://pin13.net/mf2/&lt;br /&gt;
&lt;br /&gt;
Barnaby Walters has a hosted version of the open source php-mf2 [[parser]] where you can enter your markup into a textarea and see how it's parsed:&lt;br /&gt;
* http://waterpigs.co.uk/php-mf2/&lt;br /&gt;
&lt;br /&gt;
See the [[validators]] page for a longer list of validators.&lt;br /&gt;
&lt;br /&gt;
== Examples in the wild ==&lt;br /&gt;
Please add new examples in the wild of microformats-2 to the top of this list. When it gets too big we can move it to a separate page like [[microformats-2-examples-in-wild]].&lt;br /&gt;
&lt;br /&gt;
* ...&lt;br /&gt;
* David John Mead marks up his profile, blog posts and comments with h-card, h-entry and h-cite on [http://davidjohnmead.com davidjohnmead.com]&lt;br /&gt;
* [[User:Brian|Brian Suda]] marks up his blog posts up with h-entry and h-card on [http://optional.is/required/ optional.is]&lt;br /&gt;
* Ashton McAllan marks up her blog posts, reposts, comments and likes with h-entry, h-card and h-cite on [https://acegiak.net/ acegiak.net]&lt;br /&gt;
* Emma Kuo marks up her blog posts and notes with h-entry and h-card on [http://notenoughneon.com/ notenoughneon.com]&lt;br /&gt;
* Scott Jenson marks up his blog posts with h-entry and h-card on [http://jenson.org/ jenson.org]&lt;br /&gt;
* Emily McAllen marks up her blog posts with h-entry and h-card on [http://blackwoolholiday.com/ blackwoolholiday.com]&lt;br /&gt;
* Ryan Barrett marks up his blog posts, notes, replies and likes with h-entry and h-card on [https://snarfed.org/ snarfed.org]&lt;br /&gt;
* Barry Frost marks up his notes with h-entry, h-card and h-cite on [http://barryfrost.com/ barryfrost.com]&lt;br /&gt;
* Amber Case marks up her profile, blog posts, replies and notes with h-entry and h-card on [http://caseorganic.com/ caseorganic.com]&lt;br /&gt;
* Johannes Ernst marks up his blog posts with h-entry on [http://upon2020.com/blog/ upon2020.com]&lt;br /&gt;
* Michiel de Jong marks up his profile and notes with h-entry and h-card on [https://michielbdejong.com/ michielbdejong.com]&lt;br /&gt;
* Mike Taylor marks up his profile and blog posts with h-card and h-entry on [https://bear.im/bearlog/ bear.im]&lt;br /&gt;
* Erin Jo Ritchey marks up her profile, posts and comments using h-card, h-entry and h-cite with idno on [http://erinjo.is/ erinjo.is]&lt;br /&gt;
* Jeena Paradies marks up his profile, blog posts, notes and comments using h-card, h-entry and h-cite on [https://jeena.net/ jeena.net]&lt;br /&gt;
* Andy Sylvester marks up his profile, blog posts and comments using h-card and h-entry on [http://andysylvester.com/2014/03/01/howto-setting-up-the-selfoss-feed-reader-with-microformats-support/ andysylvester.com] (note: as of 2014-03-13 using h-entry for comments instead of correct h-cite --[[User:Barnabywalters|bw]] 14:44, 13 March 2014 (UTC))&lt;br /&gt;
* Hakan Demir marks up his Coupon and Voucher blog posts with h-entry and h-card on [http://www.gutscheinflagge.de/ gutscheinflagge.de]&lt;br /&gt;
* Chloe Weil marks up her blog posts with h-entry on [http://chloeweil.com/blog chloeweil.com]&lt;br /&gt;
* Christophe Ducamp marks up his blog posts and profile with h-entry and h-card on [http://christopheducamp.com/ christopheducamp.com]&lt;br /&gt;
* Glenn Jones marks up his blog posts, notes, replies, profile and comments with h-entry, h-card and h-cite on [http://glennjones.net/ glennjones.net]&lt;br /&gt;
* Marcus Povey marks up his blog posts and profile with h-entry and h-card on [http://www.marcus-povey.co.uk/ marcus-povey.co.uk]&lt;br /&gt;
* Eugen Busoiu marks up his web profile with h-card on [http://eugenbusoiu.com/#utm_source=microformats2&amp;amp;utm_medium=h-card&amp;amp;utm_campaign=Microformats eugenbusoiu.com]]&lt;br /&gt;
* Matthias Pfefferle marks up his blog posts, comments and profile with h-card, h-cite and h-entry on [http://notizblog.org/ notizblog.org]&lt;br /&gt;
* Kyle Mahan marks up his profile and notes with h-card and h-entry on [http://kylewm.com/ kylewm.com]&lt;br /&gt;
* Okinawan-lyrics marks up his blog posts with h-entry and h-card ([http://www.okinawan-lyrics.com/ example])&lt;br /&gt;
* Emil Björklund marks up his blog posts with h-entry and h-card ([http://thatemil.com/blog/2013/09/16/webmentioning-adactio/ example])&lt;br /&gt;
* App.net rolled out support for h-card and h-entry on all profile pages and permalink pages as of 2013-08-06 ([https://alpha.app.net/voidfiles example])&lt;br /&gt;
* Brett Comnes marks up his posts with h-entry and h-card ([http://bret.io/2013/06/29/getting-started-with-bower/ example])&lt;br /&gt;
* Ben Werdmuller marks up his posts with h-card and h-entry, u-in-reply-to and u-like ([http://werd.io/view/51d5097fbed7ded0633a5956 example])&lt;br /&gt;
* Sandeep Shetty marks his posts up with h-card and h-entry, as well as draft u-in-reply-to and experimental u-like properties ([http://sandeep.io/101 example])&lt;br /&gt;
* Laurent Eschenauer marks up his posts with h-entry ([http://eschnou.com/entry/first-autonomous-flight-of-my-nodecopter-62-24992.html example])&lt;br /&gt;
* Tom Morris marks up his posts using h-entry ([http://tommorris.org/posts/8417 example])&lt;br /&gt;
* Sinolandquality marks up some of their content using h-feed and h-entry on [http://www.sinolandquality.com/Blog/?page_id=3516&amp;amp;utm_content=buffere4d40&amp;amp;utm_medium=social&amp;amp;utm_source=twitter.com&amp;amp;utm_campaign=buffer sinolandquality.com]&lt;br /&gt;
* [http://www.w3.org/conf/ W3Conf 2013] uses h-event for the main event, and h-card for all the speakers and notable attendees. The h-cards make particularly good use of implied name, url, and photo properties.&lt;br /&gt;
* [http://wordpress.org/extend/themes/sempress SemPress] is a WordPress theme that supports h-card, h-feed/h-entry and h-as-*&lt;br /&gt;
* [http://the-pastry-box-project.net/ The Pastry Box Project] use h-card and h-entry markup on their homepage and individual thoughts pages&lt;br /&gt;
* Tom Morris uses h-card and [[XFN]] to markup [http://tommorris.org/pages/blogroll his blogroll].&lt;br /&gt;
* Aaron Parecki uses h-card to markup both authorship and references to people in his notes permalinks, e.g. [http://aaronparecki.com/2012/230/reply/1 2012/230/reply/1].&lt;br /&gt;
* [http://tantek.com/ Tantek Çelik] uses h-card, h-event, and h-entry on his home page, as well as h-entry on all post permalinks, e.g. [http://tantek.com/2012/243/t1/name-beats-title-modern-use-dubline-core-wrong-uf2 2012-243 post], with [[rel-prev]]/[[rel-next]] (if applicable) to indicate prev/next posts, and with [[rel-author]] to his home page with canonical hCard to indicate authorship.&lt;br /&gt;
* [http://waterpigs.co.uk/ Barnaby Walters] uses h-card on his home page, h-card, h-entry and XFN markup on his [http://waterpigs.co.uk/notes notes page].&lt;br /&gt;
** 2013-01-25 Barnaby Walters: &amp;lt;cite&amp;gt;[http://waterpigs.co.uk/articles/experimental-markup Experimental Markup]&amp;lt;/cite&amp;gt; - describes how he's using microformats2 vocabularies: &amp;lt;code&amp;gt;h-adr&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-event&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-geo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-review&amp;lt;/code&amp;gt;, and experimental vocabularies: &amp;lt;code&amp;gt;h-feed&amp;lt;/code&amp;gt; (embedded for update histories), [[activity-streams]] objects &amp;lt;code&amp;gt;h-as-article&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-as-collection&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-as-note&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-as-update&amp;lt;/code&amp;gt;, as well as experimental properties: &amp;lt;code&amp;gt;u-alternate&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;u-as-downstream-duplicate&amp;lt;/code&amp;gt; (links to POSSE copies), and &amp;lt;code&amp;gt;u-in-reply-to&amp;lt;/code&amp;gt; (links to content that the posts are in reply to). &lt;br /&gt;
* [http://tantek.com/presentations/2012/06/microformats microformats.org at 7 years] presentation with h-event and h-card markup for people and organizations.&lt;br /&gt;
* [http://tantek.com/presentations/2012/06/pdf2012-indieweb.html Rise of the Indie Web hCards] (from Personal Democracy Forum 2012 #pdf12 #pdf2012) has [[microformats-2]] h-calendar and h-card markup&lt;br /&gt;
* WebMaker by Mozilla has [[microformats-2]] h-calendar and h-card on event search (e.g. [https://webmaker.org/en-US/events/near/?lat=45.5234515&amp;amp;lng=-122.6762071 search near Portland Oregon]) and event pages (e.g. [https://webmaker.org/en-US/events/192f56eb9/ IndieWebCamp 2012]).[https://twitter.com/microformats/status/212207925643587585]&lt;br /&gt;
* WebFWD by Mozilla has [[microformats-2]] h-card markup on [https://webfwd.org/about/experts/ experts] and [https://webfwd.org/about/team/ team] pages&lt;br /&gt;
* [http://indiewebcamp.com IndieWebCamp] has [[microformats-2]] h-event markup with nested h-cards for the organizers and the location.&lt;br /&gt;
* [https://wiki.mozilla.org/Events Mozilla Events] page has [[microformats-2]] h-event markup with attendees marked up with h-card.&lt;br /&gt;
* The [http://pdx.esri.com/blog/2013/10/17/introducing-mapattack/ Esri PDX Blog] has h-entry markup on all blog posts (as of 2013-10-19), and h-product markup on [http://pdx.esri.com/projects/terraformer/ project pages]&lt;br /&gt;
&lt;br /&gt;
=== offline ===&lt;br /&gt;
* spreadly marks up share permalink pages with h-entry, as well as minimal h-cards and experimental p-like properties ([http://my.spread.ly/share/51d570bc09e9486562000002 example])&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
{{new}} Test your microformatted web page with: &lt;br /&gt;
=== Live Textarea Input ===&lt;br /&gt;
Use any of these to enter HTML+microformats2 markup and see the parsed result!&lt;br /&gt;
* http://glennjones.net/tools/microformats/&lt;br /&gt;
* https://pin13.net/mf2/ (where it says &amp;quot;Microformats Parser&amp;quot;)&lt;br /&gt;
* https://kylewm.com/services/mf2&lt;br /&gt;
&lt;br /&gt;
=== Blogging tools ===&lt;br /&gt;
* '''Storytlr''' parses the 'target' from [http://indiewebcamp.com/pingback pingbacks] for [https://github.com/storytlr/storytlr/blob/master/protected/application/public/controllers/PingbackController.php#L63 h-entry with properties and nested h-card] for information to automatically display in the [http://eschnou.com/entry/testing-indieweb-federation-with-waterpigscouk-aaronpareckicom-and--62-24908.html comments section on a post].&lt;br /&gt;
&lt;br /&gt;
=== Converters ===&lt;br /&gt;
&lt;br /&gt;
* '''[https://github.com/snarfed/granary granary]''' is a library and REST API that converts between silo APIs, [[ActivityStreams]], [[microformats2]], and Atom (all directions). Supported silos include Facebook, Twitter, Instagram, Google+, and Flickr. Users include [http://brid.gy/ Bridgy], [http://reader.kylewm.com/ Woodwind], and [https://facebook-atom.appspot.com/ facebook-atom] and [https://twitter-atom.appspot.com/ twitter-atom], among others.&lt;br /&gt;
&lt;br /&gt;
* '''[http://pipes.yahoo.com/pipes/pipe.info?_id=afc5568b4e8643bfb05436b1caaf91bc microformats to RSS]''' - a Yahoo! pipe that converts a URL containing an [[h-feed]] containing h-entries, into an [[RSS]] feed ([http://waterpigs.co.uk/notes/4SeNi5/ 2013-10-21 blog post announcing])&lt;br /&gt;
&lt;br /&gt;
=== Parsers ===&lt;br /&gt;
Parsers, open source libraries, in alphabetical order by programming language:&lt;br /&gt;
&lt;br /&gt;
==== Parsers in production ====&lt;br /&gt;
The following parsers are of very high quality, in active development, and use on live sites on the web in production.&lt;br /&gt;
&lt;br /&gt;
===== Javascript =====&lt;br /&gt;
* '''microformat-node''' Node.js microformats2 parser&lt;br /&gt;
** github open source: https://github.com/glennjones/microformat-node&lt;br /&gt;
** test suite: https://github.com/microformats/tests&lt;br /&gt;
** blog post: http://glennjones.net/2013/01/brand-new-microformats-2-parser/&lt;br /&gt;
** live: http://glennjones.net/tools/microformats/&lt;br /&gt;
* '''microformat-shiv'''  - cross browser javascript microformats 2 parser which can also be used in browser extensions.&lt;br /&gt;
** http://microformatshiv.com/&lt;br /&gt;
** github open source: https://github.com/glennjones/microformat-shiv&lt;br /&gt;
&lt;br /&gt;
===== PHP =====&lt;br /&gt;
* '''&amp;lt;span id=&amp;quot;php-mf2&amp;quot;&amp;gt;php-mf2&amp;lt;/span&amp;gt;''' - PHP microformats2 parser&lt;br /&gt;
** github open source: https://github.com/indieweb/php-mf2&lt;br /&gt;
** Packagist: https://packagist.org/packages/mf2/mf2&lt;br /&gt;
** live: &lt;br /&gt;
*** textarea entry: http://waterpigs.co.uk/php-mf2/&lt;br /&gt;
*** URL and textarea entry: https://pin13.net/mf2/&lt;br /&gt;
&lt;br /&gt;
===== Python =====&lt;br /&gt;
* '''mf2py''' Python microformats2 parser&lt;br /&gt;
** main entry: [[mf2py]]&lt;br /&gt;
** github open source: https://github.com/tommorris/mf2py&lt;br /&gt;
** live: &lt;br /&gt;
*** URL entry: [https://mf2py.herokuapp.com/ mf2py.herokuapp.com]&lt;br /&gt;
*** textarea entry: https://kartikprabhu.com/connection/mfparser&lt;br /&gt;
*** another textarea: http://www.unmung.com/?html=&lt;br /&gt;
*** URL and/or textarea: https://kylewm.com/services/mf2&lt;br /&gt;
&lt;br /&gt;
==== Development parsers ====&lt;br /&gt;
The following parsers are in-development and have key microformats2 functionality yet are incomplete, not fully tested, or have other limitations. Contributions welcome!&lt;br /&gt;
&lt;br /&gt;
===== Elixir =====&lt;br /&gt;
* '''ckruse/microformats-elixir''' Elixir microformats2 parser&lt;br /&gt;
** github open source: https://github.com/ckruse/microformats2-elixir&lt;br /&gt;
&lt;br /&gt;
===== Go =====&lt;br /&gt;
* '''andyleap/microformats''' Golang microformats2 parser&lt;br /&gt;
** github open source: https://github.com/andyleap/microformats&lt;br /&gt;
** live textarea entry: http://mf2.vendaria.net&lt;br /&gt;
&lt;br /&gt;
===== Haskell =====&lt;br /&gt;
* '''myfreeweb/microformats2-parser''' Haskell microformats2 parser&lt;br /&gt;
** github open source: https://github.com/myfreeweb/microformats2-parser&lt;br /&gt;
** live textarea entry: https://unrelenting.technology/mf2/&lt;br /&gt;
&lt;br /&gt;
===== Java =====&lt;br /&gt;
* '''Apache Any23''' a library, a web service and a command line tool that extracts structured data in RDF format from a variety of Web documents. Supports Microformats1 and 2.&lt;br /&gt;
** Download recent release: http://any23.apache.org/download.html&lt;br /&gt;
** live: http://any23-vm.apache.org/&lt;br /&gt;
** source: http://any23.apache.org/build-src.html&lt;br /&gt;
* '''mf2j''' An early-stage Java microformats2 parser&lt;br /&gt;
** github open source: https://github.com/kylewm/mf2j&lt;br /&gt;
** live: https://mf2j.herokuapp.com/?url={http://example.com}&lt;br /&gt;
&lt;br /&gt;
===== Ruby =====&lt;br /&gt;
* '''G5/microformats2''' Ruby microformats2 parser&lt;br /&gt;
** github open source: https://github.com/G5/microformats2&lt;br /&gt;
&lt;br /&gt;
== Presentations ==&lt;br /&gt;
Presentations about microformats2:&lt;br /&gt;
* 2013-01-24 &amp;lt;cite&amp;gt;[http://waterpigs.co.uk/presentations/microformats-2/ Microformats 2]&amp;lt;/cite&amp;gt; presentation by [[User:Barnabywalters|Barnaby Walters]] at the [[events/2013-01-24-exeter-web-meetup|Exeter Web Meetup]] in Devon, UK.&lt;br /&gt;
* 2012-09-21 &amp;lt;cite&amp;gt;[http://tantek.com/presentations/2012/09/microformats2/ microformats2 &amp;amp;amp; bits of HTML5: The Evolution Of Web Data]&amp;lt;/cite&amp;gt; presentation by [[User:Tantek|Tantek Çelik]] ([http://twitter.com/t @t]) at [[events/2012-09-21-refreshlx|RefreshLX]] in Lisbon, Portugal.&lt;br /&gt;
* 2012-07-21 &amp;lt;cite&amp;gt;[http://tantek.com/presentations/2012/07/html5-uf2/ HTML5 and microformats2: The Evolution Of Web Data]&amp;lt;/cite&amp;gt; presentation by [[User:Tantek|Tantek Çelik]] ([http://twitter.com/t @t]) at [[events/2012-07-21-cascadesf|Innovators of the Web conference]] in San Francisco, CA.&lt;br /&gt;
* 2012-07-14 &amp;lt;cite&amp;gt;[http://tantek.com/presentations/2012/07/html5-microformats2/ HTML5 and microformats2: The Evolution Of Web Data]&amp;lt;/cite&amp;gt; presentation by [[User:Tantek|Tantek Çelik]] ([http://twitter.com/t @t]) at [[events/2012-07-14-open-web-camp-4|Open Web Camp IV]] in San Jose, CA.&lt;br /&gt;
&lt;br /&gt;
== Testimonials ==&lt;br /&gt;
* &amp;lt;blockquote class=&amp;quot;twitter-tweet&amp;quot;&amp;gt;To prove the web standards community can come up with better standards than the SE’s, compare this: http://microformats.org/wiki/microformats-2 with schema . org &amp;amp;mdash; Joost de Valk (@yoast) [https://twitter.com/yoast/status/298907685452124160 2013-02-05 13:35]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
* &amp;lt;blockquote class=&amp;quot;twitter-tweet&amp;quot;&amp;gt;... I’m hoping SE’s will pick up microformats2. It’s SO much cleaner. &amp;amp;mdash; Joost de Valk (@yoast) [https://twitter.com/yoast/status/298911287117758464 2013-02-05 13:49]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
* &amp;lt;blockquote class=&amp;quot;twitter-tweet&amp;quot;&amp;gt;... But damn Microformats2 are sexy. &amp;amp;mdash; Joost de Valk (@yoast) [https://twitter.com/yoast/status/298912179292344320 2013-02-05 13:53]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== About This Brainstorm ==&lt;br /&gt;
The rest of this page is a brainstorm currently written in narrative / exploratory format, that is, acknowledging the success that microformats have had, why so, and then a walk through of known issues with microformats in general along with iteration of ways to address said issues, ending up with the current microformats 2 design as a conclusion.&lt;br /&gt;
&lt;br /&gt;
The proposals build on each other resulting in a solution that addresses the vast majority of general issues. The proposed changes merit a major version number increment, hence microformats 2.&lt;br /&gt;
&lt;br /&gt;
This mathematical proof/derivation style is used to explicitly encourage understanding (and double-checking) of the rational steps taken in the development of microformats 2. Reasons are documented, sometimes along with alternatives considered (and reasons for rejection of those alternatives).&lt;br /&gt;
&lt;br /&gt;
When the microformats 2 brainstorm has evolved sufficiently to demonstrate some degree of stability, usability, and implementability, it will be rewritten in a more declarative specification style, and this narrative/derivation will be archived to a background development page for historical purposes.&lt;br /&gt;
&lt;br /&gt;
— [[User:Tantek|Tantek]]&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
2004: In early February microformats were introduced as a concept at eTech, and in September [[hCard]] and [[hCalendar]] were proposed at FOO Camp.&lt;br /&gt;
&lt;br /&gt;
2010:&lt;br /&gt;
* 34% of webdevs use microformats ([http://www.webdirections.org/sotw10/markup/#semantics 2010 State of Web Development survey])&lt;br /&gt;
* 1.88 billion hCards (per [[Yahoo]] SearchMonkey)&lt;br /&gt;
* 36 million hCalendar events (ibid)&lt;br /&gt;
&lt;br /&gt;
* XFN -&amp;gt; Social Graph API -&amp;gt; Web as Social Network / Address Book&lt;br /&gt;
&lt;br /&gt;
== Addressing Issues ==&lt;br /&gt;
=== AUTHORS and PUBLISHING ===&lt;br /&gt;
Authors and publishers are perhaps the most important constituency in the microformats community. There are more of them than there are developers, programmers, parsers, etc. and they're the ones that solved the chicken-egg problem by publishing microformats even before tools were available for consuming them.&lt;br /&gt;
&lt;br /&gt;
Therefore we must first address author/publisher general issues with microformats.&lt;br /&gt;
&lt;br /&gt;
==== can we make the simplest case simpler ====&lt;br /&gt;
Issue: '''How can we make it easier for authors to publish microformats?'''&lt;br /&gt;
&lt;br /&gt;
Currently the simplest hCard:&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;vcard&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;fn&amp;quot;&amp;gt;&lt;br /&gt;
    Chris Messina&lt;br /&gt;
  &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
requires 2 elements (nested, with perhaps at least one being pre-existing), and 2 class names.&lt;br /&gt;
&lt;br /&gt;
Web authors/designers are used to the simplicity of most HTML tags, e.g. to mark up a heading:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;Chris Messina&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
requires just 1 element.&lt;br /&gt;
&lt;br /&gt;
[http://zeldman.com/ Jeffrey Zeldman] pointed out this apparent perceived incremental complexity (2 elements vs 1) during a microformats workshop in 2009 in New York City.&lt;br /&gt;
&lt;br /&gt;
'''How can we make microformats just as easy?'''&lt;br /&gt;
&lt;br /&gt;
'''Proposal: allow root class name only.'''&lt;br /&gt;
&lt;br /&gt;
This would enable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;vcard&amp;quot;&amp;gt;Chris Messina&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
requiring only 1 class name for the simplest case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== renaming for usability ====&lt;br /&gt;
Otherwise known as, choosing one form of consistency over another.&lt;br /&gt;
&lt;br /&gt;
'''Can we do even better?'''&lt;br /&gt;
&lt;br /&gt;
One of the most common questions asked about hCard is:&lt;br /&gt;
&lt;br /&gt;
[[hcard-faq#Why_does_hCard_use_vcard_as_the_root_class_name|Why does hCard use vcard as the root class name?]]&lt;br /&gt;
&lt;br /&gt;
This slight inconsistency between the name of the format and the name of the root class name consistently causes confusion in a large percentage of newcomers to microformats.&lt;br /&gt;
* See [[issues#hcard-vs-vcard-name]] for details/links.&lt;br /&gt;
&lt;br /&gt;
Though in microformats we believe very strongly in the [[principle]] of [[reuse]], we have to admit that in this case experience/evidence has shown that this may be a case where we re-used something too far beyond it's original meaning. Thus:&lt;br /&gt;
&lt;br /&gt;
'''Proposal: use root class name &amp;quot;hcard&amp;quot; instead of &amp;quot;vcard&amp;quot; for future hCards.'''&lt;br /&gt;
&lt;br /&gt;
This would result in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;hcard&amp;quot;&amp;gt;Chris Messina&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
making the simple case even simpler:&lt;br /&gt;
&lt;br /&gt;
Just 1 additional class name, named the same as the format you're adding.  Think hCard, markup class=&amp;quot;hcard&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
At a minimum for compatibility we should document that parsers should accept &amp;quot;hcard&amp;quot; as an alternative to &amp;quot;vcard&amp;quot; as the root class name for hCard 1.0, and similarly for hCalendar 1.0: &amp;quot;hcalendar&amp;quot; in addition to &amp;quot;vcalendar&amp;quot;, &amp;quot;hevent&amp;quot; in addition to &amp;quot;vevent&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
However, for [[microformats-2]] we are going to distinguish root class names further by using an &amp;quot;h-&amp;quot; prefix (e.g. &amp;quot;h-card&amp;quot;). Read on to understand why.&lt;br /&gt;
&lt;br /&gt;
==== simplifying to only needing one element ====&lt;br /&gt;
It's very important for the simple case to be as simple as possible, to enable the maximum number of people to get started with minimum effort. (The idea of using a single class name for a microformat was proposed by Ryan Cannon in 2006 specifically [[hcard-implied|for hCard]], and rediscovered by [[User:Tantek|Tantek]] in 2010 and subsequently generalized to all microformats.)&lt;br /&gt;
&lt;br /&gt;
From there on, it's ok to require incremental effort for incremental return.&lt;br /&gt;
&lt;br /&gt;
E.g. to add any additional information about a person, add explicit property names.&lt;br /&gt;
&lt;br /&gt;
'''How does this simple root-only case work?'''&lt;br /&gt;
&lt;br /&gt;
* root class name reflects name of the microformat&lt;br /&gt;
* every microformat must require at most 1 property (preferably 0)&lt;br /&gt;
** admit that requiring a field in an application just results in noise (the 90210 problem - apps which require zip code get lots of false 90210 entries), and specify that any application use cases which appear to &amp;quot;require&amp;quot; specific properties must instead define how to imply sensible defaults for them.&lt;br /&gt;
* when only a root class name is specified, imply the entire text contents of the element as the value of the primary property of the microformat. e.g.&lt;br /&gt;
** &amp;quot;hcard&amp;quot; implies &amp;quot;fn&amp;quot;&lt;br /&gt;
** hcalendar event - &amp;quot;hevent&amp;quot; - implies &amp;quot;summary&amp;quot;&lt;br /&gt;
** &amp;quot;hreview&amp;quot; implies &amp;quot;summary&amp;quot;&lt;br /&gt;
** &amp;quot;hentry&amp;quot; implies &amp;quot;entry-summary&amp;quot; (perhaps collapse into &amp;quot;summary&amp;quot; - in practice they're not sufficiently semantically distinct to require separate property names)&lt;br /&gt;
** '''OR''' instead of making the one implied property be vocabulary specific, introduce a new generic (applicable to all vocabularies) 'p-name' property (subsuming hCard's 'fn'). See [[microformats-2-brainstorming#further_simplifications|microformats 2 brainstorming: further simplifications]] for latest thoughts along these lines, including the following specific mark-up implied generic properties across all microformats (based on existing published markup use-cases)&lt;br /&gt;
*** 'p-name'&lt;br /&gt;
*** 'u-url'&lt;br /&gt;
*** 'u-photo'&lt;br /&gt;
&lt;br /&gt;
==== flat sets of properties ====&lt;br /&gt;
'''What more can we simplify about microformats?'''&lt;br /&gt;
&lt;br /&gt;
Numerous individuals have provided the feedback that whenever there is more than one level of hierarchy in a microformat, many (most?) developers get confused - in particular Kavi Goel of Google / Rich Snippets provided this feedback at a microformats dinner.  Thus depending on multiple levels of hierarchy is likely resulting in a loss of authorability, perhaps even accuracy as confusion undoubtedly leads to more errors. Thus:&lt;br /&gt;
&lt;br /&gt;
'''Proposal: simplify all microformats to flat sets of properties. '''&lt;br /&gt;
&lt;br /&gt;
What this means:&lt;br /&gt;
* all microformats are simply an object with a set of properties with values.&lt;br /&gt;
* no more subproperties- drop the notion of subproperties.&lt;br /&gt;
* use composition of multiple microformats for any further hierarchy, e.g. the &amp;quot;location&amp;quot; of an hCalendar event can be an hCard, or the &amp;quot;agent&amp;quot; of one hCard can be another hCard.&lt;br /&gt;
&lt;br /&gt;
For example for hCard this would mean the following specific changes to keep relevant functionality:&lt;br /&gt;
* drop &amp;quot;n&amp;quot;, promote all &amp;quot;n&amp;quot; subproperties to full properties&lt;br /&gt;
** given-name, family-name, additional-name, honorific-prefix, honorific-suffix&lt;br /&gt;
* treat &amp;quot;geo&amp;quot; as a nested microformat&lt;br /&gt;
* treat &amp;quot;adr&amp;quot; as a nested microformat (what to do about adr's &amp;quot;type&amp;quot;?)&lt;br /&gt;
* treat &amp;quot;org&amp;quot; as a flat string and drop &amp;quot;organization-name&amp;quot; and &amp;quot;organization-unit&amp;quot; (in practice rarely used, also not revealed or ignored in contact management user interfaces - e.g. Address Book)&lt;br /&gt;
&lt;br /&gt;
Example: add a middle initial to the previous example Chris Messina's name, and markup each name component:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;hcard&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;fn&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;given-name&amp;quot;&amp;gt;Chris&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;abbr class=&amp;quot;additional-name&amp;quot;&amp;gt;R.&amp;lt;/abbr&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;family-name&amp;quot;&amp;gt;Messina&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
# use of an explicit span with &amp;quot;fn&amp;quot; to markup his entire formatted name&lt;br /&gt;
# use of the abbr element to explicitly indicate the semantic that &amp;quot;R.&amp;quot; is merely an abbreviation for his additional-name.&lt;br /&gt;
&lt;br /&gt;
==== distinguishing properties from other classes ====&lt;br /&gt;
Current microformats properties re-use generic terms like &amp;quot;summary&amp;quot;, &amp;quot;photo&amp;quot;, &amp;quot;updated&amp;quot; both for ease of use and understanding.&lt;br /&gt;
&lt;br /&gt;
However, through longer term experience, we've seen sites that accidentally drop (or break) their microformats support (e.g. Upcoming.org, Facebook) because web authors sometimes rewrite all their class names, and either are unaware that microformats were in the page, or couldn't easily distinguish microformats property class names from other site-specific class names.&lt;br /&gt;
&lt;br /&gt;
This issue has been reported by a number of web authors.&lt;br /&gt;
* See: [[issues#class-collisions]]&lt;br /&gt;
&lt;br /&gt;
Thus microformats 2 uses ''prefixes'' for property class names, e.g.:&lt;br /&gt;
* '''p-summary''' instead of ''summary''&lt;br /&gt;
* '''u-photo''' instead of ''photo'' &lt;br /&gt;
* '''dt-updated''' instead of ''updated''&lt;br /&gt;
&lt;br /&gt;
Such prefixing of all microformats class names was first suggested by Scott Isaacs of Microsoft to Tantek on a visit to Microsoft sometime in 2006/2007, but specifically aimed at making microformats easier to parse. At the time the suggestion was rejected since microformats were focused on web authors rather than parsers.&lt;br /&gt;
&lt;br /&gt;
However, since experience has shown that distinguishing property class names is an issue for '''both web authors and parser developers''', this is a key change that microformats 2 is adopting. See the next section for details.&lt;br /&gt;
&lt;br /&gt;
=== COMMUNITY and TOOLS ===&lt;br /&gt;
The second most important constituency in the microformats community are the developers, programmers, tool-makers.&lt;br /&gt;
&lt;br /&gt;
A non-trivial number of them have been sufficiently frustrated with some general issues with microformats that they've done the significant extra work to support very different and less friendly alternatives (microdata, RDFa). Based on this real-world data (market behavior), it behooves us to address these general issues with microformats for this constituency.&lt;br /&gt;
&lt;br /&gt;
==== existing microformats parsing requirements ====&lt;br /&gt;
COMMUNITY and TOOLS (that) USE MICROFORMATS &lt;br /&gt;
* parser / parsing&lt;br /&gt;
* structured&lt;br /&gt;
* getting the data out&lt;br /&gt;
* json - 1:1 mapping&lt;br /&gt;
&lt;br /&gt;
[[parsing]] microformats currently requires&lt;br /&gt;
# a list of root class names of each microformat to be parsed&lt;br /&gt;
# a list of properties for each specific microformats, along with knowledge of the type of each property in order to parse their data from potentially different portions of the HTML markup&lt;br /&gt;
# some number of format-specific specific rules (markup/content optimizations)&lt;br /&gt;
&lt;br /&gt;
This has meant that whenever a new microformat is drafted/specificied/adopted, parsers need to updated to handle it correctly, at a minimum to parse them when inside other microformats and avoid errantly implying properties from one to the other (containment, [[mfo]] problem).&lt;br /&gt;
&lt;br /&gt;
==== naming conventions for generic parsing ====&lt;br /&gt;
I think there is a fairly simple solution to #1 and #2 from the above list, and we can make progress towards minimizing #3.  In short:&lt;br /&gt;
&lt;br /&gt;
'''Proposal: a set of naming conventions for microformat root class names and properties that make it obvious when:'''&lt;br /&gt;
* a class name represents a microformat root class name&lt;br /&gt;
* a class name represents a microformat property name&lt;br /&gt;
* a class name represents a microformat property that needs special parsing (specific type of property).&lt;br /&gt;
&lt;br /&gt;
In particular - derived from the real world examples of existing proven microformats (rather than any abstraction of what a schema should have)&lt;br /&gt;
* '''&amp;quot;h-*&amp;quot; for root class names''', e.g. &amp;quot;h-card&amp;quot;, &amp;quot;h-event&amp;quot;, &amp;quot;h-entry&amp;quot;&lt;br /&gt;
** The 'h-' prefix is based on the existing microformats naming pattern of starting with 'h'.&lt;br /&gt;
* '''&amp;quot;p-*&amp;quot; for simple (text) properties''', e.g. &amp;quot;p-fn&amp;quot;, &amp;quot;p-summary&amp;quot;&lt;br /&gt;
** vocabulary generic parsing, element text in general, treat certain HTML element/attribute combination as special and use those first, e.g. img/alt, abbr/title.&lt;br /&gt;
** The 'p-' prefix is based on the word &amp;quot;property&amp;quot; starting with 'p'.&lt;br /&gt;
* '''&amp;quot;u-*&amp;quot; for URL properties''', e.g. &amp;quot;u-url&amp;quot;, &amp;quot;u-photo&amp;quot;, &amp;quot;u-logo&amp;quot;&lt;br /&gt;
** special parsing required: prefer a/href, img/src, object/data etc. attributes to element contents.&lt;br /&gt;
** The 'u-' prefix is based on URL/URI starting with the letter 'u', which is the type of most of these related properties.&lt;br /&gt;
* '''&amp;quot;dt-*&amp;quot; for datetime properties''', e.g. &amp;quot;dt-start&amp;quot;, &amp;quot;dt-end&amp;quot;, &amp;quot;dt-bday&amp;quot;&lt;br /&gt;
** special parsing required: [[value-class-pattern]], in particular separate date time value parsing for better human readabillity / DRY balance.&lt;br /&gt;
** The 'dt-' prefix is based on &amp;quot;date time&amp;quot; having the initials &amp;quot;dt&amp;quot; and the preponderance of existing date time properties starting with &amp;quot;dt&amp;quot;, e.g. dtstart, dtend, dtstamp, dtreviewed.&lt;br /&gt;
* '''&amp;quot;e-*&amp;quot; for element tree properties''' where the entire contained element hierarchy is the value, e.g. &amp;quot;e-content&amp;quot; (formerly &amp;quot;entry-content&amp;quot;) for [[hAtom]]. The 'e-' prefix can also be mnemonically remembered as &amp;quot;element tree&amp;quot;, &amp;quot;embedded markup&amp;quot;, or &amp;quot;encapsulated markup&amp;quot;.&lt;br /&gt;
** special parsing required: follow the [http://www.whatwg.org/specs/web-apps/current-work/multipage/the-end.html#serializing-html-fragments HTML spec: Serializing HTML Fragments algorithm] to create a serialization.&lt;br /&gt;
&lt;br /&gt;
This provides a simpler transition/education story for existing microformats authors/publishers: &lt;br /&gt;
* &amp;quot;h*&amp;quot; to &amp;quot;h-*&amp;quot;, &amp;quot;dt*&amp;quot; to &amp;quot;dt-*&amp;quot;, url-like properties to &amp;quot;u-*&amp;quot;, entire embedded markup to &amp;quot;e-*&amp;quot;, and &amp;quot;p-*&amp;quot; for all &amp;quot;plain text&amp;quot; properties.&lt;br /&gt;
&lt;br /&gt;
See [[microformats-2-prefixes]] for further thoughts and discussions on these and other class prefixes.&lt;br /&gt;
&lt;br /&gt;
Example: taking that simple heading hCard example forward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;h-card&amp;quot;&amp;gt;Chris Messina&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As part of microformats 2 we would immediately define root class names and property names for all existing microformats and drafts consistent with this naming convention, and require support thereof from all new implementations, as well as strongly encouraging existing implementations to adopt the simplified microformats 2 syntax and mechanism. Question: which microformats deserve explicit backward compatibility?&lt;br /&gt;
&lt;br /&gt;
As a community we would continue to use the microformats [[process]] both for researching and determining the need for new microformats, and for naming new microformat property names for maximum re-use and interoperability of a shared vocabulary.&lt;br /&gt;
&lt;br /&gt;
If it turns out we need a new property type in the future, we can use one of the remaining single-letter-prefixes to add it to microformats 2. This would require updating of parsers of course, but in practice the number of different types of properties has grown very slowly, and we know from other schema/programming languages that there's always some small limited number of scalar/atomic property types that you need, and using those you can create compound types/objects that represent richer / more complicated types of data. See [[microformats-2-prefixes]] for documentation of existing single-letter class name prefixes in practice.&lt;br /&gt;
&lt;br /&gt;
=== ADVANTAGES ===&lt;br /&gt;
This has numerous advantages:&lt;br /&gt;
* '''better maintainability''' - much more obvious to web authors/designers/publishers which class names are for/from microformats.&lt;br /&gt;
* '''no chance of collision''' - for all practical purposes with existing class names and thus avoiding any need to add more complex CSS style rules to prevent unintended styling effects.&lt;br /&gt;
* '''simpler parsing''' - parsers can now do a simple stream-parse (or in-order DOM tree walk) and parse out '''all''' microformat objects, properties, and values, without having to know anything about any specific microformats.&lt;br /&gt;
* '''separation of syntax and vocabulary''' - by abstracting microformats 2 syntax independent of any vocabulary, it allows and encourages development of shared vocabularies  that can work in alternative syntaxes.&lt;br /&gt;
&lt;br /&gt;
More examples: here is that same heading example with name components:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;p-fn&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-given-name&amp;quot;&amp;gt;Chris&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;abbr class=&amp;quot;p-additional-name&amp;quot;&amp;gt;R.&amp;lt;/abbr&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-family-name&amp;quot;&amp;gt;Messina&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with a hyperlink to Chris's URL:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;a class=&amp;quot;p-fn u-url&amp;quot; href=&amp;quot;http://factoryjoe.com/&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-given-name&amp;quot;&amp;gt;Chris&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;abbr class=&amp;quot;p-additional-name&amp;quot;&amp;gt;R.&amp;lt;/abbr&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-family-name&amp;quot;&amp;gt;Messina&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== COMPATIBILITY ===&lt;br /&gt;
&lt;br /&gt;
microformats 2 is backwards compatible in that in permits content authors to markup with both old and new class names for compatibility with old tools.&lt;br /&gt;
&lt;br /&gt;
Here is a simple example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;h-card vcard&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;fn&amp;quot;&amp;gt;Chris Messina&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a microformats 2 parser would see the class name &amp;quot;h-card&amp;quot; and imply the one required property from the contents, while a microformats 1.0 parser would find the class name &amp;quot;vcard&amp;quot; and then look for the class name &amp;quot;fn&amp;quot;. no data duplication is required. this is a very important continuing application of the &amp;lt;abbr title=&amp;quot;don't repeat yourself&amp;quot;&amp;gt;DRY&amp;lt;/abbr&amp;gt; [[principle]].&lt;br /&gt;
&lt;br /&gt;
And the above hyperlinked example with both sets of class names:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;h-card vcard&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;a class=&amp;quot;p-fn u-url n fn url&amp;quot; href=&amp;quot;http://factoryjoe.com/&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-given-name given-name&amp;quot;&amp;gt;Chris&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;abbr class=&amp;quot;p-additional-name additional-name&amp;quot;&amp;gt;R.&amp;lt;/abbr&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-family-name family-name&amp;quot;&amp;gt;Messina&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== VENDOR EXTENSIONS ===&lt;br /&gt;
&lt;br /&gt;
(this section was only discussed verbally and not written up during discussions - capturing here as it is topical)&lt;br /&gt;
&lt;br /&gt;
Proprietary extensions to formats have typically been shortlived experimental failures with one big recent exception.&lt;br /&gt;
&lt;br /&gt;
Proprietary or experimental CSS3 property implementations have been very successful.&lt;br /&gt;
&lt;br /&gt;
There has been much use of border radius properties and animations/transitions which use CSS properties with vendor-specific prefixes like:&lt;br /&gt;
&lt;br /&gt;
* -moz-border-radius&lt;br /&gt;
* -webkit-border-radius&lt;br /&gt;
&lt;br /&gt;
etc.&lt;br /&gt;
&lt;br /&gt;
Note that these are merely string '''prefixes''', not bound to any URL, and thus not namespaces in any practical sense of the word.  This is quite an important distinction, as avoiding the need to bind to a URL has made them easier to support and use.&lt;br /&gt;
&lt;br /&gt;
This use of vendor specific CSS properties has in recent years allowed the larger web design/development/implementor communities to experiment and iterate on new CSS features while the features were being developed and standardized.&lt;br /&gt;
&lt;br /&gt;
The benefits have been two-fold:&lt;br /&gt;
* designers have been able to make more attractive sites sooner (at least in some browsers)&lt;br /&gt;
* features have been market / real-world tested before being fully standardized, thus resulting in better features&lt;br /&gt;
&lt;br /&gt;
Implementers have used/introduced &amp;quot;x-&amp;quot; prefixes for IETF MIME/content-types for experimental content-types, MIME parameter extensions, and HTTP header extensions, per RFC 2045 Section 6.3, RFC 3798 section 3.3, and [https://secure.wikimedia.org/wikipedia/en/wiki/List_of_HTTP_header_fields#Common_non-standard_headers Wikipedia: HTTP header fields - non-standard headers] (could use RFC reference instead) respectively, like:&lt;br /&gt;
&lt;br /&gt;
* application/x-latex (per [https://secure.wikimedia.org/wikipedia/en/wiki/Internet_media_type#Type_x Wikipedia Internet media type: Type x])&lt;br /&gt;
* x-spam-score (in email headers)&lt;br /&gt;
* X-Pingback (per [http://en.wikipedia.org/wiki/Pingback Wikipedia:Pingback])&lt;br /&gt;
&lt;br /&gt;
Some standard types started as experimental &amp;quot;x-&amp;quot; types, thus demonstrating this experiment first, standardize later approach has worked for at least some cases:&lt;br /&gt;
&lt;br /&gt;
* image/x-png (standardized as image/png, both per [http://tools.ietf.org/html/rfc2083 RFC2083])&lt;br /&gt;
&lt;br /&gt;
There have been times when specific sites have wanted to extend microformats beyond what the set of properties in the microformat, and currently lack any '''experimental''' way to do so - to try and see if a feature (or even a whole format) is interesting in the real world before bothering to pursue researching and walking it through the microformats process.  Thus:&lt;br /&gt;
&lt;br /&gt;
'''Proposal:'''&lt;br /&gt;
* '*-x-' + '-' + meaningful name for root and property class names&lt;br /&gt;
** where &amp;quot;*&amp;quot; indicates the single-character-prefix as defined above&lt;br /&gt;
** where &amp;quot;x&amp;quot; indicates a literal 'x' for an experimental extension OR&lt;br /&gt;
** OR &amp;quot;x&amp;quot; indicates a vendor prefix (more than one character, e.g. like CSS vendor extension abbreviations, or some stock symbols, avoiding first words/phrases/abbreviations of microformats properties like dt-)&lt;br /&gt;
** e.g.&lt;br /&gt;
** &amp;quot;h-bigco-one-ring&amp;quot; - a hypothetical &amp;quot;bigco&amp;quot; vendor-specific &amp;quot;one-ring&amp;quot; microformat root class name.&lt;br /&gt;
** &amp;quot;p-goog-preptime&amp;quot; - to represent [http://www.google.com/support/webmasters/bin/answer.py?answer=173379 Google's &amp;quot;preptime&amp;quot; property extension] to [[hRecipe]] (aside: &amp;quot;duration&amp;quot; may be another property type to consider separate from &amp;quot;datetime&amp;quot; as it may be subject to different parsing rules.)&lt;br /&gt;
** &amp;quot;p-x-prep-time&amp;quot; - a possible experimental property name to be added to hRecipe upon consideration/documentation of real-world usage/uptake.&lt;br /&gt;
&lt;br /&gt;
Background - this proposal is a composition of the following (at least somewhat) successful vendor extension syntaxes&lt;br /&gt;
* [http://www.w3.org/TR/CSS21/syndata.html#vendor-keywords CSS 2.1 4.1.2.1 Vendor-specific extensions]&lt;br /&gt;
* IETF MIME/content-type &amp;quot;x-*&amp;quot; extensions per RFC 2045 Section 6.3. [http://en.wikipedia.org/wiki/Internet_media_type]&lt;br /&gt;
* IETF MIME experimental fields (e.g. x-spam-score)&lt;br /&gt;
* HTTP header extensions (e.g. x-pingback)&lt;br /&gt;
* note also [http://www.mnot.net/blog/2009/02/18/x- some critical thoughts from mnot]&lt;br /&gt;
&lt;br /&gt;
=== USERS ===&lt;br /&gt;
Need more tools and interfaces that:&lt;br /&gt;
* publish&lt;br /&gt;
* copy/paste&lt;br /&gt;
* right-click on a microformat&lt;br /&gt;
* share&lt;br /&gt;
* search results&lt;br /&gt;
&lt;br /&gt;
discussed some existing like: [[H2VX]] converts hCard to vCard, hCalendar to iCalendar&lt;br /&gt;
&lt;br /&gt;
how would we re-implement Live Clipboard today, making it easier for publishers and developers?&lt;br /&gt;
&lt;br /&gt;
=== SEE ALSO ===&lt;br /&gt;
* [[microformats2]]&lt;br /&gt;
* [[microformats2-brainstorming]] - moving more experimental / undeveloped / and rejected thoughts ideas here to simplify/progress *this* page further.&lt;br /&gt;
* [[microformats2-experimental-properties]] - listing experimental (-x- prefixed) properties and their use&lt;br /&gt;
* [[microformats2-prefixes]]&lt;br /&gt;
* [[microformats2-faq]]&lt;br /&gt;
* [[microformats2-parsing]]&lt;br /&gt;
* 2010-05-02 [[events/2010-05-02-microformats-2-0|microformats 2.0 discussion session at FOO East]]&lt;/div&gt;</summary>
		<author><name>Myfreeweb</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=parsers&amp;diff=65189</id>
		<title>parsers</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=parsers&amp;diff=65189"/>
		<updated>2015-08-23T12:31:50Z</updated>

		<summary type="html">&lt;p&gt;Myfreeweb: /* microformats2 parsers */ add the Haskell parser&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;Microformats Parsers&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
;shortlink&lt;br /&gt;
:http://ufs.cc/w/ufprs&lt;br /&gt;
This page lists libraries that consume, transform or convert microformats. This is only a partial list. If you know of other such tools for microformats, please add them and list what specific microformats they support. There is a separate page for [[validators]].&lt;br /&gt;
&lt;br /&gt;
Alphabetical listing by programming language:&lt;br /&gt;
&lt;br /&gt;
= microformats2 parsers =&lt;br /&gt;
{{main|microformats2#Parsers}}&lt;br /&gt;
&lt;br /&gt;
These are modern and maintained [[microformats2]] parsers and are suitable for use in modern web applications.&lt;br /&gt;
&lt;br /&gt;
== Go ==&lt;br /&gt;
* [https://github.com/andyleap/microformats andyleap/microformats] - Golang microformats2 parser&lt;br /&gt;
** live textarea entry: http://mf2.vendaria.net&lt;br /&gt;
&lt;br /&gt;
== Haskell ==&lt;br /&gt;
* [https://github.com/myfreeweb/microformats2-parser myfreeweb/microformats2-parser] - Haskell microformats2 parser&lt;br /&gt;
** live textarea entry: https://unrelenting.technology/mf2/&lt;br /&gt;
&lt;br /&gt;
== Java ==&lt;br /&gt;
* [https://github.com/kylewm/mf2j mf2j] - An early-stage Java microformats2 parser&lt;br /&gt;
* live: https://mf2j.herokuapp.com/?url={http://example.com}&lt;br /&gt;
&lt;br /&gt;
== Javascript ==&lt;br /&gt;
=== Microformat Node ===&lt;br /&gt;
* [http://github.com/glennjones/microformat-node microformat-node] microformat-node is a microformat parser for node.js. It is built using a well tested JavaScript parsing engine which already powers a number of browser extensions. Supports microformat v1 and v2. Try it out at http://glennjones.net/tools/microformats/&lt;br /&gt;
&lt;br /&gt;
=== Microformat Shiv ===&lt;br /&gt;
* [http://microformatshiv.com/ Microformat Shiv] The microformat shiv provides a simple to use JavaScript microformats parsing library. It can also be used in browser extensions and the web site has example code for Chrome, Firefox and Opera. Try it out http://microformatshiv.com/editor.html&lt;br /&gt;
&lt;br /&gt;
== PHP ==&lt;br /&gt;
=== php-mf2 ===&lt;br /&gt;
* PHP generic microformats2 parser&lt;br /&gt;
** source: https://github.com/indieweb/php-mf2&lt;br /&gt;
&lt;br /&gt;
== Ruby ==&lt;br /&gt;
* '''G5/microformats2''' Ruby microformats2 parser&lt;br /&gt;
** github open source: https://github.com/G5/microformats2&lt;br /&gt;
&lt;br /&gt;
== Python ==&lt;br /&gt;
* [[mf2py]]&lt;br /&gt;
** on PyPI: [https://pypi.python.org/pypi/mf2py/]&lt;br /&gt;
** source: [https://github.com/tommorris/mf2py github.com/tommorris/mf2py]&lt;br /&gt;
** bleeding edge development: [https://github.com/kartikprabhu/mf2py github.com/kartikprabhu/mf2py]&lt;br /&gt;
&lt;br /&gt;
= past parsers =&lt;br /&gt;
These are past parsers of classic microformats some of which have not been maintained.&lt;br /&gt;
&lt;br /&gt;
They may be useful as starting points for developing additional microformats2 parsers.&lt;br /&gt;
&lt;br /&gt;
== .Net ==&lt;br /&gt;
[http://ufxtract.com/ UfXtract] is an open source .Net microformats parser. It can parse microformats from URLs or HTML strings. The extracted data can be used directly in .Net or converted into JSON, JSON-P or XML. Currently Supports 16 microformats and can easily be extended with new definitions.&lt;br /&gt;
&lt;br /&gt;
== More Java ==&lt;br /&gt;
* [[any23]] (Anything to Triples)] parses microformats into RDF triples: http://any23.apache.org&lt;br /&gt;
** '''MAINTAINED''' but '''[https://issues.apache.org/jira/browse/ANY23-207 not yet supporting Microformats2]''' (&amp;amp;lt;-- help welcome! comment there.)&lt;br /&gt;
&lt;br /&gt;
* [http://zwitserloot.com/org.microformats.hCard/ org.microformats.hCard] by Reinier Zwitserloot&lt;br /&gt;
&lt;br /&gt;
== More Javascript ==&lt;br /&gt;
=== Sumo ===&lt;br /&gt;
* [http://www.danwebb.net/2007/2/9/sumo-a-generic-microformats-parser-for-javascript Sumo! A Generic Microformats Parser For JavaScript]&lt;br /&gt;
&lt;br /&gt;
== Perl ==&lt;br /&gt;
=== Data::Microformat ===&lt;br /&gt;
* [http://search.cpan.org/~ussjoin/Data-Microformat-0.01/lib/Data/Microformat/hCard.pm Data::Microformat] is a CPAN module to parse and create hCard, adr, and geo.&lt;br /&gt;
** By Brendan O'Connor / Six Apart&lt;br /&gt;
&lt;br /&gt;
=== HTML::Microformats ===&lt;br /&gt;
Perhaps we can capture and update this info on a page like [[perl-html-microformats-parser]].&lt;br /&gt;
[http://search.cpan.org/~tobyink/HTML-Microformats/ HTML::Microformats] is a CPAN module that has support for: &lt;br /&gt;
* input:&lt;br /&gt;
** rel: [[rel-enclosure]], [[rel-license]], [[rel-tag]], [[VoteLinks]], [[XFN]].&lt;br /&gt;
** class: [[adr]], [[figure]], [[geo]], [[hAtom]], [[hAudio]], [[User:TobyInk/hcalendar-1.1|hCalendar]], [[hCard]], [[hListing]], [[hNews]], [[hProduct]], [[hRecipe]], [[hResume]], [[hReview]], [[hReview-aggregate]], [[xFolk]], [[XMDP]], [[XOXO]].&lt;br /&gt;
*** highly experimental: [[measure]], [[species]].&lt;br /&gt;
** poshformats: [http://ocoins.info/ OpenURL COinS].&lt;br /&gt;
* output:&lt;br /&gt;
** RDF: RDF/XML, Turtle, N-Triples, RDF/JSON, etc.&lt;br /&gt;
** JSON&lt;br /&gt;
** domain specific: vCard (3.0, 4.0 and XML), iCalendar, Atom, KML.&lt;br /&gt;
* By [[User:TobyInk|Toby Inkster]].&lt;br /&gt;
&lt;br /&gt;
Versions and releases notes:&lt;br /&gt;
* 2011-02-05 [http://microformats.org/discuss/mail/microformats-dev/2011-February/000667.html 0.102]&lt;br /&gt;
* 2010-12-22 0.101&lt;br /&gt;
* 2010-12-16 [http://microformats.org/discuss/mail/microformats-discuss/2010-December/013363.html 0.100]&lt;br /&gt;
* 2010-10-18 0.00_13&lt;br /&gt;
* 2010-06-25 0.00_12&lt;br /&gt;
* 2010-06-23 0.00_11&lt;br /&gt;
* 2010-05-13 0.00_10&lt;br /&gt;
* 2010-05-12 0.00_09&lt;br /&gt;
* 2010-04-29 0.00_08&lt;br /&gt;
* 2010-04-28 0.00_07&lt;br /&gt;
* 2010-04-16 [http://microformats.org/discuss/mail/microformats-dev/2010-April/000651.html 0.00_06]&lt;br /&gt;
* 2010-04-16 0.00_05&lt;br /&gt;
* 2010-03-20 [http://microformats.org/discuss/mail/microformats-dev/2010-March/000647.html 0.00_04]&lt;br /&gt;
* 2010-03-09 [http://microformats.org/discuss/mail/microformats-dev/2010-March/000642.html 0.00_03]&lt;br /&gt;
* 2010-02-28 [http://microformats.org/discuss/mail/microformats-dev/2010-February/000641.html 0.00_02]&lt;br /&gt;
* 2010-02-24 [http://microformats.org/discuss/mail/microformats-dev/2010-February/000640.html 0.00_01]&lt;br /&gt;
* 2010-02-20 [http://microformats.org/discuss/mail/microformats-dev/2010-February/000639.html 0.00_00]&lt;br /&gt;
* see also the &amp;quot;Changes&amp;quot; file included in the CPAN distribution.&lt;br /&gt;
&lt;br /&gt;
==== XML::Atom::Microformats ====&lt;br /&gt;
&lt;br /&gt;
[http://search.cpan.org/~tobyink/XML-Atom-Microformats/ XML::Atom::Microformats] provides the same functionality for Atom. It finds microformats in Atom entry content elements.&lt;br /&gt;
&lt;br /&gt;
===Swignition ===&lt;br /&gt;
* [http://buzzword.org.uk/swignition/ Swignition] is a parser for both “upper case Semantic Web” (RDF, RDFa) and “lower case semantic web” (microformats) technologies. It includes modules for exporting parsed data in a variety of formats, including RDF, vCard, iCalendar, Atom and KML.&lt;br /&gt;
** By Toby Inkster&lt;br /&gt;
** Active development has moved to HTML::Microformats (see above).&lt;br /&gt;
&lt;br /&gt;
=== Text::Microformat ===&lt;br /&gt;
* Text::Microformat is a microformats parser hosted on [http://code.google.com/p/ufperl/ Google Code] that supports:&lt;br /&gt;
** [[hCard]], [[hCalendar]], [[rel-tag]]&lt;br /&gt;
&lt;br /&gt;
== More PHP ==&lt;br /&gt;
=== XMFP ===&lt;br /&gt;
&amp;lt;span id=&amp;quot;xmfp&amp;quot;&amp;gt;[http://code.google.com/p/xmfp/ XMFP]&amp;lt;/span&amp;gt; (eXtensible MicroFormats Parser for PHP 5) by [http://www.metonymie.com Emiliano Martínez Luque] is a set of PHP 5 classes providing a simple API for extracting Microformated Content either from a URI or a String representing HTML/XML. It can return the results as a PHP associative array, a JSON definition or an XML representation of the data. It supports most of the currently accepted microformats and can be easily extended to add new ones, it also has full support of the include pattern and provides basic validation of microformated data.&lt;br /&gt;
&lt;br /&gt;
=== hKit Microformats Toolkit for PHP5 ===&lt;br /&gt;
[http://allinthehead.com/hkit hKit Microformats Toolkit for PHP5] as [http://allinthehead.com/retro/291/hkit-microformats-toolkit-for-php announced by Drew McLellan]. See also [[hkit|hKit on this wiki]].&lt;br /&gt;
&lt;br /&gt;
===PHP Microformats parser===&lt;br /&gt;
[http://www.phpclasses.org/browse/package/3597.html Microformats parser] is a PHP package for extracting the microformats data embedded into HTML. The gathered data is stored as an xArray of objects - one for each microformat type container found. [http://malatestapunk-stuff.blogspot.com/2007/01/php-microformats-parser.html Announcement]. The parser supports most of the hCard (missing SOUND), hCalendar, hReview (missing item info; spec really needs some clarification) and rel elements, according to their respective specification on microformats Wiki.&lt;br /&gt;
&lt;br /&gt;
===Transformr===&lt;br /&gt;
A Simple set of XSLT and PHP tools for Transforming Microformats Source [http://github.com/WebOrganics/TransFormr available from github] Live webservice available at [http://microform.at/ microform.at].&lt;br /&gt;
&lt;br /&gt;
=== hCard Validator ===&lt;br /&gt;
[http://code.google.com/p/hcardvalidator/ Source code] of the [http://hcard.geekhood.net/ hCard Validator] contains XSLT and PHP code for hCard and include microformats.&lt;br /&gt;
&lt;br /&gt;
=== ARC2 ===&lt;br /&gt;
[http://arc.semsol.org/ ARC2] is a semantic web toolkit which includes support for hCard, adr, geo, XFN, hCalendar, hAtom, hResume, hReview, xFolk, rel-license and rel-tag. It's tri-licensed under the GPL 2 and 3, and the W3C Software licence.&lt;br /&gt;
&lt;br /&gt;
== Python ==&lt;br /&gt;
===AUMP===&lt;br /&gt;
* [http://aump.googlecode.com AUMP] is a parser written by David Janes. It supports hCard, hCalendar, hAtom, hReview and hListing.&lt;br /&gt;
** Uses Python's [http://docs.python.org/library/xml.dom.minidom.html xml.dom.minidom] after cleaning input through [http://www.w3.org/People/Raggett/tidy/ HTML Tidy].&lt;br /&gt;
&lt;br /&gt;
===Microtron===&lt;br /&gt;
{{main|Microtron}}&lt;br /&gt;
* [[Microtron]] is a general-purpose microformat parser/transformer.  &lt;br /&gt;
&lt;br /&gt;
It can operate on the definition file included in [[Optimus]], making it a close replacement for certain tasks, and can easily be extended with new formats without modifying the source.  The primary advantages are speed (&amp;gt; 100x faster that [[Optimus]] for some operations), simplicity (single file) and small code size (currently &amp;lt; 150 lines).&lt;br /&gt;
&lt;br /&gt;
=== python-hcalendar ===&lt;br /&gt;
[http://pypi.python.org/pypi/python-hcalendar/0.1dev python-hcalendar] is a basic hCalendar parser.&lt;br /&gt;
&lt;br /&gt;
== More Ruby ==&lt;br /&gt;
===Prism ===&lt;br /&gt;
* [[Prism]]&lt;br /&gt;
** by [[implementors#Mark_Wunsch|Mark Wunsch]]&lt;br /&gt;
** Library and command line tool for parsing POSH/Microformats&lt;br /&gt;
** Uses the [http://nokogiri.org/ Nokogiri] HTML, XML, SAX, and Reader parser&lt;br /&gt;
&lt;br /&gt;
=== mofo ruby microformats parser===&lt;br /&gt;
* [http://mofo.rubyforge.org/ mofo], [http://groups.google.com/group/mofo-rb mofo Google Group], [http://github.com/defunkt/mofo/tree/master GitHub repository]&lt;br /&gt;
** by [[implementors#Chris Wanstrath|Chris Wanstrath]]&lt;br /&gt;
** Uses the [http://wiki.github.com/why/hpricot Hpricot] HTML/XML parser&lt;br /&gt;
&lt;br /&gt;
=== Microformat Parser for Ruby ===&lt;br /&gt;
* [http://blog.labnotes.org/2005/11/20/microformat-parser-for-ruby/ Microformat Parser for Ruby]&lt;br /&gt;
** by [[implementors#Assaf Arkin|Assaf Arkin]]&lt;br /&gt;
&lt;br /&gt;
=== uformats ===&lt;br /&gt;
* [http://rubyforge.org/projects/uformats uformats]&lt;br /&gt;
&lt;br /&gt;
=== scrAPI ===&lt;br /&gt;
* [http://rubyforge.org/projects/scrapi scrAPI]&lt;br /&gt;
&lt;br /&gt;
== XSLT ==&lt;br /&gt;
===Optimus===&lt;br /&gt;
* [[Optimus]] is open source XSLT that parses microformats, converts them into JSON or XML, and validates them too.&lt;br /&gt;
&lt;br /&gt;
===X2V===&lt;br /&gt;
* [[X2V]] is [http://hg.microformats.org/ open source XSLT for extracting microformats].&lt;br /&gt;
** by Brian Suda&lt;br /&gt;
&lt;br /&gt;
== editing this page ==&lt;br /&gt;
For now, this page ''copies'' (rather than ''moves'') information from the existing [[implementations | Implementations]] page.&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[implementations]]&lt;br /&gt;
* [[implementors]]&lt;br /&gt;
* [[open-source]]&lt;br /&gt;
* [[user-interface]]&lt;br /&gt;
* [[validators]]&lt;/div&gt;</summary>
		<author><name>Myfreeweb</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=microformats2-experimental-properties&amp;diff=65188</id>
		<title>microformats2-experimental-properties</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=microformats2-experimental-properties&amp;diff=65188"/>
		<updated>2015-08-22T20:31:28Z</updated>

		<summary type="html">&lt;p&gt;Myfreeweb: /* Usage */ add unrelenting.technology to pronoun usage&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== h-as-* ==&lt;br /&gt;
ActivityStreams-based post types, usually done in combination with h-entry.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
* [http://glennjones.net/ glennjones.net] ([http://glennjones.net/notes/2015-07-11 example: h-as-note])&lt;br /&gt;
&lt;br /&gt;
Formerly:&lt;br /&gt;
* tantek.com - used to (~2014) use h-as-article and h-as-note but decided this type of explicit typing was unnecessary from a format perspective so dropped them. [[User:Tantek|Tantek]] 19:52, 11 July 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
== h-x-username ==&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
* [http://glennjones.net/ glennjones.net] ([http://glennjones.net/notes/2015-07-11 example])&lt;br /&gt;
* [http://tantek.com/ tantek.com] ([http://tantek.com/2015/191/t1/indiewebcamp-pre-party example])&lt;br /&gt;
&lt;br /&gt;
how is this different from [[h-card]]'s p-nickname ? [[User:Kevin Marks|Kevin Marks]]&lt;br /&gt;
&lt;br /&gt;
== p-x-dietary-preference ==&lt;br /&gt;
&lt;br /&gt;
For dietary preferences (vegetarian, vegan etc.) - the intention is to help event organisers organise catering by aggregating together the dietary preferences of attendees.&lt;br /&gt;
&lt;br /&gt;
=== Suggested values ===&lt;br /&gt;
* ovo-lacto vegetarian&lt;br /&gt;
* lacto vegetarian&lt;br /&gt;
* ovo vegetarian&lt;br /&gt;
* vegan&lt;br /&gt;
* pescatarian&lt;br /&gt;
* omnivore&lt;br /&gt;
* gluten-free&lt;br /&gt;
* lactose-free&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
* [https://tommorris.org/ tommorris.org]&lt;br /&gt;
&lt;br /&gt;
== p-x-pronoun-* ==&lt;br /&gt;
&lt;br /&gt;
Properties to identify a user's preferred pronouns&lt;br /&gt;
&lt;br /&gt;
; p-x-pronoun-nominative: the user's preferred nominative pronoun (e.g. he, she, they)&lt;br /&gt;
; p-x-pronoun-oblique: the user's preferred oblique pronoun (e.g. him, her, them)&lt;br /&gt;
; p-x-pronoun-possessive: the user's preferred possessive pronoun (e.g. his, hers, theirs)&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
* [https://waterpigs.co.uk/ waterpigs.co.uk]&lt;br /&gt;
* [https://unrelenting.technology/ unrelenting.technology]&lt;br /&gt;
&lt;br /&gt;
== p-x-sexual-orientation ==&lt;br /&gt;
&lt;br /&gt;
For when we eventually build the open web dating service.&lt;br /&gt;
&lt;br /&gt;
;Suggested values:&lt;br /&gt;
:* straight or heterosexual&lt;br /&gt;
:* bisexual&lt;br /&gt;
:* pansexual&lt;br /&gt;
:* gay or lesbian or homosexual&lt;br /&gt;
:* asexual&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
* [https://tommorris.org/ tommorris.org]&lt;/div&gt;</summary>
		<author><name>Myfreeweb</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=microformats2&amp;diff=65187</id>
		<title>microformats2</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=microformats2&amp;diff=65187"/>
		<updated>2015-08-22T20:17:39Z</updated>

		<summary type="html">&lt;p&gt;Myfreeweb: /* Haskell */ add link to live textarea entry&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;microformats 2&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
Welcome to the microformats2 home page.&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
Microformats2 is the simplest way to markup structured information in HTML. Microformats2 improves ease of use and implementation for &amp;lt;em&amp;gt;both&amp;lt;/em&amp;gt; authors (publishers) and developers ([[microformats2-parsing|parser]] implementers).&lt;br /&gt;
&lt;br /&gt;
Microformats2 replaces and supersedes both classic microformats, as well as incorporates lessons learned from [[microdata]] and [[RDFa]].&lt;br /&gt;
&lt;br /&gt;
=== simple microformats 2 examples ===&lt;br /&gt;
Here are a few simple microformats2 examples along with canonical [[JSON]].&lt;br /&gt;
&lt;br /&gt;
==== person example ====&lt;br /&gt;
* Simple person reference:&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;h-card&amp;quot;&amp;gt;Frances Berriman&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Frances Berriman&amp;quot;] &lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== hyperlinked person ====&lt;br /&gt;
* Simple hyperlinked person reference&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;a class=&amp;quot;h-card&amp;quot; href=&amp;quot;http://benward.me&amp;quot;&amp;gt;Ben Ward&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Ben Ward&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://benward.me&amp;quot;]&lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== hyperlinked person image ====&lt;br /&gt;
* Simple hyperlinked person image&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;a class=&amp;quot;h-card&amp;quot; href=&amp;quot;http://rohit.khare.org/&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;img alt=&amp;quot;Rohit Khare&amp;quot;&lt;br /&gt;
      src=&amp;quot;https://s3.amazonaws.com/twitter_production/profile_images/53307499/180px-Rohit-sq_bigger.jpg&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Rohit Khare&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://rohit.khare.org&amp;quot;],&lt;br /&gt;
      &amp;quot;photo&amp;quot;: [&amp;quot;https://s3.amazonaws.com/twitter_production/profile_images/53307499/180px-Rohit-sq_bigger.jpg&amp;quot;]&lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Additional simple cases details in [[microformats-2-implied-properties]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== detailed person example ====&lt;br /&gt;
* More detailed person&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;img class=&amp;quot;u-photo&amp;quot; alt=&amp;quot;photo of Mitchell&amp;quot;&lt;br /&gt;
       src=&amp;quot;https://webfwd.org/content/about-experts/300.mitchellbaker/mentor_mbaker.jpg&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name u-url&amp;quot;&lt;br /&gt;
     href=&amp;quot;http://blog.lizardwrangler.com/&amp;quot; &lt;br /&gt;
    &amp;gt;Mitchell Baker&amp;lt;/a&amp;gt;&lt;br /&gt;
 (&amp;lt;a class=&amp;quot;u-url&amp;quot; &lt;br /&gt;
     href=&amp;quot;https://twitter.com/MitchellBaker&amp;quot;&lt;br /&gt;
    &amp;gt;@MitchellBaker&amp;lt;/a&amp;gt;)&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-org&amp;quot;&amp;gt;Mozilla Foundation&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;p class=&amp;quot;p-note&amp;quot;&amp;gt;&lt;br /&gt;
    Mitchell is responsible for setting the direction and scope of the Mozilla Foundation and its activities.&lt;br /&gt;
  &amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-category&amp;quot;&amp;gt;Strategy&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-category&amp;quot;&amp;gt;Leadership&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;photo&amp;quot;: [&amp;quot;https://webfwd.org/content/about-experts/300.mitchellbaker/mentor_mbaker.jpg&amp;quot;],&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Mitchell Baker&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&lt;br /&gt;
        &amp;quot;http://blog.lizardwrangler.com/&amp;quot;,&lt;br /&gt;
        &amp;quot;https://twitter.com/MitchellBaker&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;org&amp;quot;: [&amp;quot;Mozilla Foundation&amp;quot;],&lt;br /&gt;
      &amp;quot;note&amp;quot;: [&amp;quot;Mitchell is responsible for setting the direction and scope of the Mozilla Foundation and its activities.&amp;quot;],&lt;br /&gt;
      &amp;quot;category&amp;quot;: [&lt;br /&gt;
        &amp;quot;Strategy&amp;quot;,&lt;br /&gt;
        &amp;quot;Leadership&amp;quot;&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Notes: &lt;br /&gt;
# The JSON &amp;lt;code&amp;gt;&amp;quot;type&amp;quot;&amp;lt;/code&amp;gt; uses the full microformat root class name (e.g. &amp;lt;code&amp;gt;&amp;quot;h-card&amp;quot;&amp;lt;/code&amp;gt;) for consistent identification.&lt;br /&gt;
# all properties are optional and syntactically plural with parsed values provided in document order; particular microformats (and applications there-of) may apply specific/singular semantics to first value of a property.&lt;br /&gt;
&lt;br /&gt;
=== microformats2 design ===&lt;br /&gt;
microformats2 has the following key design aspects:&lt;br /&gt;
# '''Prefixes for class names.'''  Class names used for microformats use prefixes that start with with &amp;lt;code&amp;gt;'h-' 'p-' 'u-' 'dt-', 'e-'&amp;lt;/code&amp;gt;. These are '''syntax independent from vocabularies''', which can then be developed separately.&lt;br /&gt;
#* 'h-*' for root class names, e.g. 'h-card'&lt;br /&gt;
#* 'p-*' for simple (text) properties, e.g. 'p-name'&lt;br /&gt;
#* 'u-*' for URL properties, e.g. 'u-photo'&lt;br /&gt;
#* 'dt-*' for date/time properties, e.g. 'dt-bday'&lt;br /&gt;
#* 'e-*' for embedded markup properties, e.g. 'e-note'. See [[microformats2#naming_conventions_for_generic_parsing|prefix naming conventions]] for more details.&lt;br /&gt;
# '''Flat sets of optional properties.''' All microformats consist of a root, and a collection of properties. Hierarchical data is represented with nested microformats, typically as property values themselves. Properties are all optional and potentially multivalued (applications needing a singular semantic may use first instance).&lt;br /&gt;
# '''Single class markup for common uses.''' Common simple markup patterns require only a single microformat root class name, which parsers use to find a few generic properties: &amp;lt;code&amp;gt;name, url, photo&amp;lt;/code&amp;gt;. The simple microformats2 examples above demonstrate these.&lt;br /&gt;
&lt;br /&gt;
Parsing details for each of these (including how to generate canonical JSON) are specified step-by-step in the:&lt;br /&gt;
* '''[[microformats2-parsing|microformats2 parsing specification]]'''&lt;br /&gt;
&lt;br /&gt;
== v2 vocabularies ==&lt;br /&gt;
Status: '''&amp;lt;span id=&amp;quot;draft_v2_vocabularies&amp;quot;&amp;gt;draft&amp;lt;/span&amp;gt;'''. Please review and provide feedback in [[IRC]].&lt;br /&gt;
* [[h-adr]]&lt;br /&gt;
* [[h-card]]&lt;br /&gt;
* [[h-entry]]&lt;br /&gt;
* [[h-event]]&lt;br /&gt;
* [[h-feed]]&lt;br /&gt;
* [[h-geo]]&lt;br /&gt;
* [[h-item]]&lt;br /&gt;
* [[h-listing]]&lt;br /&gt;
* [[h-product]]&lt;br /&gt;
* [[h-recipe]]&lt;br /&gt;
* [[h-resume]]&lt;br /&gt;
* [[h-review]]&lt;br /&gt;
* [[h-review-aggregate]]&lt;br /&gt;
&lt;br /&gt;
See below for vocabulary summaries.&lt;br /&gt;
&lt;br /&gt;
=== h-adr ===&lt;br /&gt;
{{main|h-adr}}&lt;br /&gt;
&lt;br /&gt;
The '''h-adr''' microformat is for marking up structured locations such as addresses, physical and/or postal. This is an update to [[adr]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-adr&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-adr&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-post-office-box&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-extended-address&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-street-address&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-locality&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-region&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-postal-code&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-country-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-label&amp;lt;/code&amp;gt;''' - new in [[vCard4]] ([[RFC6350]])&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-geo&amp;lt;/code&amp;gt;''' (or '''&amp;lt;code&amp;gt;u-geo&amp;lt;/code&amp;gt;''' with a RFC 5870 geo: URL) - new in [[vCard4]] ([[RFC6350]])&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-latitude&amp;lt;/code&amp;gt;''' - new in [[vCard4]] ([[RFC6350]] from RFC 5870)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-longitude&amp;lt;/code&amp;gt;''' - new in [[vCard4]] ([[RFC6350]] from RFC 5870)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-altitude&amp;lt;/code&amp;gt;''' - new in [[vCard4]] ([[RFC6350]] from RFC 5870)&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-adr&amp;quot; is found, don't look for an &amp;quot;adr&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;adr&amp;quot;&amp;gt;adr&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;post-office-box&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;extended-address&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;street-address&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;locality&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;region&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;postal-code&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;country-name&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== h-card ===&lt;br /&gt;
{{main|h-card}}&lt;br /&gt;
&lt;br /&gt;
The '''h-card''' microformat is for marking up people and organizations. This is an update to [[hCard]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-card&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-honorific-prefix&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-given-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-additional-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-family-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-sort-string&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-honorific-suffix&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-nickname&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-email&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-logo&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-photo&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-uid&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-category&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-adr&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-post-office-box&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-extended-address&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-street-address&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-locality&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-region&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-postal-code&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-country-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-label&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-geo&amp;lt;/code&amp;gt;''' or '''&amp;lt;code&amp;gt;u-geo&amp;lt;/code&amp;gt;''' with a RFC 5870 geo: URL, new in [[vCard4]] ([[RFC6350]])&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-latitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-longitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-altitude&amp;lt;/code&amp;gt;''' - new in [[vCard4]] ([[RFC6350]] from RFC 5870)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-tel&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-note&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-bday&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-key&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-org&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-job-title&amp;lt;/code&amp;gt;''' - previously 'title' in hCard, disambiguated.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-role&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-impp&amp;lt;/code&amp;gt;''' per RFC 4770, new in [[vCard4]] ([[RFC6350]])&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-sex&amp;lt;/code&amp;gt;''' new in [[vCard4]] ([[RFC6350]])&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-gender-identity&amp;lt;/code&amp;gt;''' new in [[vCard4]] ([[RFC6350]])&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-anniversary&amp;lt;/code&amp;gt;''' new in [[vCard4]] ([[RFC6350]])&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
Reserved properties: (properties not used much (if at all) in practice)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-organization-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-organization-unit&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-tz&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-rev&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-card&amp;quot; is found, don't look for a &amp;quot;vcard&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;vcard&amp;quot;&amp;gt;vcard&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;fn&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;honorific-prefix&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;given-name&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;additional-name&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;family-name&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;honorific-suffix&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;nickname&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;email&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;logo&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;photo&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;category&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;adr&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-adr h-adr&amp;lt;/code&amp;gt;''' including compat root class &amp;lt;code&amp;gt;adr&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;extended-address&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;street-address&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;locality&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;region&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;postal-code&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;country-name&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;geo&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-geo h-geo&amp;lt;/code&amp;gt;''' including compat root class &amp;lt;code&amp;gt;geo&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;latitude&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;longitude&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;tel&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;note&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;bday&amp;lt;/code&amp;gt; - parse as '''dt-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;key&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;org&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;organization-name&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;organization-unit&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; - parse as '''p-job-title'''&lt;br /&gt;
* &amp;lt;code&amp;gt;role&amp;lt;/code&amp;gt;&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
Reserved: (backward compat properties that parsers {{may}} implement, if they do, they {{must}} implement in this way:&lt;br /&gt;
* &amp;lt;code&amp;gt;tz&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;rev&amp;lt;/code&amp;gt; - parse as '''dt-'''&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
Note: use of 'value' within 'tel' should be automatically handled by the support of the [[value-class-pattern]]. And for now, the 'type' subproperty of 'tel' is dropped/ignored. If there is demonstrable documented need for additional tel types (e.g. fax), we can introduce new flat properties as needed (e.g. p-tel-fax).&lt;br /&gt;
&lt;br /&gt;
=== h-entry ===&lt;br /&gt;
{{main|h-entry}}&lt;br /&gt;
&lt;br /&gt;
The '''h-entry''' microformat is for marking up syndicatable content such as blog posts, notes, articles, comments, photos and similar. This is an update to [[hAtom]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-entry&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;''' (was p-entry-title, see issues)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt;''' (was p-entry-summary, see issues)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;e-content&amp;lt;/code&amp;gt;''' (was e-entry-content, see issues)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-published&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-updated&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-author&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-category&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-uid&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-geo&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-latitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-longitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
This is an update to [[hAtom]]. &lt;br /&gt;
&lt;br /&gt;
Brainstorming:&lt;br /&gt;
&lt;br /&gt;
The following properties are proposed additions to h-entry above and beyond what hAtom (or Atom) provides, based on various existing link preview markup conventions:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-photo&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-audio&amp;lt;/code&amp;gt;''' - consider special u- parsing rules for &amp;lt;code&amp;gt;&amp;amp;lt;audio&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-video&amp;lt;/code&amp;gt;''' - consider special u- parsing rules for &amp;lt;code&amp;gt;&amp;amp;lt;video&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-in-reply-to&amp;lt;/code&amp;gt;''' - for links to other posts that this post is a reply to (comment regarding, etc.)&lt;br /&gt;
&lt;br /&gt;
Backward compatibility: &lt;br /&gt;
&lt;br /&gt;
(*)hAtom-specific implementations that perform custom display or translation (e.g. to Atom XML) {{should}} prefer &amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt; over &amp;lt;code&amp;gt;p-entry-title&amp;lt;/code&amp;gt;, and use &amp;lt;code&amp;gt;p-entry-title&amp;lt;/code&amp;gt; value(s) as a fallback if there is no &amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For hAtom backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-entry&amp;quot; is found, don't look for a &amp;quot;hentry&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;hentry&amp;quot;&amp;gt;hentry&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;entry-title&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;entry-summary&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;entry-content&amp;lt;/code&amp;gt; - parse as '''e-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;published&amp;lt;/code&amp;gt; - parse as '''dt-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;updated&amp;lt;/code&amp;gt; - parse as '''dt-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; - including compat root &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;category&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;geo&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-geo h-geo&amp;lt;/code&amp;gt;''' including compat root &amp;lt;code&amp;gt;geo&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;latitude&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;longitude&amp;lt;/code&amp;gt;&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;h-entry-faq&amp;quot;&amp;gt;FAQ:&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;discussion&amp;quot;&amp;gt;&lt;br /&gt;
* '''What is the &amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt; of a [http://indiewebcamp.com/note note]?'''&lt;br /&gt;
** A few options, from simplest to most detailed.&lt;br /&gt;
*** '''same as the p-content/e-content''' property.&lt;br /&gt;
*** '''same as the &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; element''' on the note permalink post page. When publishing a note on its own permalink post page, the contents of the note are likely abbreviated for the title of the page. The same abbreviation can be used for the p-name.&lt;br /&gt;
*** '''first sentence of the p-content/e-content''' property. It may be better for [http://indiewebcamp.com/syndication syndication] and [[link-preview]] purposes to provide just the first sentence of the note as the &amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;. Similarly if only a portion of the content is syndicated to other sites, that portion can be marked up as the &amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt;.&lt;br /&gt;
* ...&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolved Issues:&lt;br /&gt;
* 2012-245 Resolved. See [http://krijnhoetmer.nl/irc-logs/microformats/20120830#l-120 2012-243 IRC discussion/consensus] for:&lt;br /&gt;
** Use '''&amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;p-entry-summary&amp;lt;/code&amp;gt;'''. The historical semantic of &amp;quot;entry-summary&amp;quot; is not different from &amp;quot;summary&amp;quot; in any significant (or discernible way). Collapsing the two will simplify the overall microformats2 vocabularies further. In microformats2, entry-summary is no more.&lt;br /&gt;
** Use '''&amp;lt;code&amp;gt;e-content&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;e-entry-content&amp;lt;/code&amp;gt;'''. Same point and advantage. In microformats2, entry-content is no more.&lt;br /&gt;
** '''drop &amp;lt;code&amp;gt;p-entry-title&amp;lt;/code&amp;gt;'''. Unnecessary and subsumed by &amp;quot;p-name&amp;quot;. Would consider move to backward compat only if cases are presented - known publishing uses are expected to be updated shortly.&lt;br /&gt;
&lt;br /&gt;
=== h-event ===&lt;br /&gt;
{{main|h-event}}&lt;br /&gt;
&lt;br /&gt;
The '''h-event''' microformat is for marking up events. This is an update to [[hCalendar]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-event&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-event&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt;'''(*)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-start&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-end&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-duration&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-description&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-category&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-location&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-geo&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-latitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-longitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
This is an update to [[hCalendar]]. &lt;br /&gt;
&lt;br /&gt;
(*)hCalendar-specific implementations that perform custom display or translation (e.g. to iCalendar .ics) {{should}} prefer &amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt; over &amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt;, and use &amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt; value(s) as a fallback if there is no &amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-event&amp;quot; is found, don't look for a &amp;quot;vevent&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;vevent&amp;quot;&amp;gt;vevent&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;dtstart&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;dt-start&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;dtend&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;dt-end&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;duration&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;dt-duration&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;category&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; - including compat root &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;, and compat root &amp;lt;code&amp;gt;adr&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-adr&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;geo&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-geo h-geo&amp;lt;/code&amp;gt;''' including compat root &amp;lt;code&amp;gt;geo&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;latitude&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;longitude&amp;lt;/code&amp;gt;&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=== h-geo ===&lt;br /&gt;
{{main|h-geo}}&lt;br /&gt;
&lt;br /&gt;
The '''h-geo''' microformat is for marking up WGS84 geophysical coordinates. This is an update to [[geo]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-geo&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-geo&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-latitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-longitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-altitude&amp;lt;/code&amp;gt;''' - new in [[vCard4]] ([[RFC6350]] from RFC 5870)&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-geo&amp;quot; is found, don't look for an &amp;quot;geo&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;geo&amp;quot;&amp;gt;geo&amp;lt;/code&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;latitude&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;longitude&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== h-item ===&lt;br /&gt;
{{main|h-item}}&lt;br /&gt;
&lt;br /&gt;
The '''h-item''' microformat is for marking up the item of an [[h-review]] or [[h-product]]. This is an update to part of [[hReview]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-item&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-item&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-photo&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Note: in practice, due to the microformats2 implied property rules, it is expected that most uses of &amp;quot;h-item&amp;quot; won't require any explicit properties at all (since microformats2 parsers will infer name, photo, and url properties from the structure of the element with &amp;quot;h-item&amp;quot; and its contained content/elements if any).&lt;br /&gt;
&lt;br /&gt;
=== h-product ===&lt;br /&gt;
{{main|h-product}}&lt;br /&gt;
&lt;br /&gt;
The '''h-product''' microformat is for marking up products. This is an update to [[hProduct]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-product&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-product&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;''' - name of the product&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-photo&amp;lt;/code&amp;gt;''' - photo of the product&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-brand&amp;lt;/code&amp;gt;''' - manufacturer, can also be a nested &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-category&amp;lt;/code&amp;gt;''' - freeform categories or tags applied to the item by the reviewer &lt;br /&gt;
* '''&amp;lt;code&amp;gt;e-description&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;''' - URL of the product&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-identifier&amp;lt;/code&amp;gt;''' - includes type (e.g. mpn, upc, isbn, issn, sn, vin, sku etc.) and value.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-review&amp;lt;/code&amp;gt;''' - a review of the product, can also be a nested &amp;lt;code&amp;gt;h-review&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-price&amp;lt;/code&amp;gt;''' - retail price of the product&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-product&amp;quot; is found, don't look for an &amp;quot;hproduct&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;hproduct&amp;quot;&amp;gt;hproduct&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;fn&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;photo&amp;lt;/code&amp;gt;  - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;brand&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;category&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;identifier&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;review&amp;lt;/code&amp;gt; - including compat root class &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-review&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;price&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: [[hProduct]] has at least one experimental property which has real world adoption due to [[Google]] and [[Bing]] search support of hProduct. Currently this is: '''price'''&lt;br /&gt;
&lt;br /&gt;
=== h-recipe ===&lt;br /&gt;
{{main|h-recipe}}&lt;br /&gt;
&lt;br /&gt;
The '''h-recipe''' microformat is for marking up food recipes. This is an update to [[hRecipe]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-recipe&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-recipe&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;''' - the name of the recipe&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-ingredient&amp;lt;/code&amp;gt;''' - describes one or more ingredients used in the recipe.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-yield&amp;lt;/code&amp;gt;''' - Specifies the quantity produced by the recipe, like how many persons it satisfyies &lt;br /&gt;
* '''&amp;lt;code&amp;gt;e-instructions&amp;lt;/code&amp;gt;''' - the method of the recipe.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-duration&amp;lt;/code&amp;gt;''' - the time it takes to prepare the meal described by the recipe.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-photo&amp;lt;/code&amp;gt;''' - an accompanying image&lt;br /&gt;
&lt;br /&gt;
Experimental properties with wide adoption&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt;'''  - provides a short summary or introduction &lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-author&amp;lt;/code&amp;gt;''' - the person who wrote the recipe with &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-published&amp;lt;/code&amp;gt;''' - the date the recipe was published&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-nutrition&amp;lt;/code&amp;gt;''' - nutritional information like calories, fat, dietary fiber etc.&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-recipe&amp;quot; is found, don't look for an &amp;quot;hrecipe&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;hrecipe&amp;quot;&amp;gt;hrecipe&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;fn&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;ingredient&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;yield&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;instructions&amp;lt;/code&amp;gt; - parse as '''e-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;duration&amp;lt;/code&amp;gt; - parse as '''dt-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;photo&amp;lt;/code&amp;gt;  - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; - including compat root &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;nutrition&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: [[hRecipe]] has a number of experimental properties which have real world adoption due to [[Google]] recipe search support of hRecipe. These are: summary, author, published and nutrition&lt;br /&gt;
&lt;br /&gt;
=== h-resume ===&lt;br /&gt;
{{main|h-resume}}&lt;br /&gt;
&lt;br /&gt;
The '''h-resume''' microformat is for marking up resumes. This is an update to [[hResume]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-resume&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-resume&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt;''' - overview of qualifications and objectives&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-contact&amp;lt;/code&amp;gt;''' - current contact info in an &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-education&amp;lt;/code&amp;gt;''' - an education &amp;lt;code&amp;gt;h-calendar&amp;lt;/code&amp;gt; event, years, nested &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt; of the school, location.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-experience&amp;lt;/code&amp;gt;''' - a job or other professional experience &amp;lt;code&amp;gt;h-calendar&amp;lt;/code&amp;gt; event, years, nested &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt; of the organization, location, job-title.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-skill&amp;lt;/code&amp;gt;''' - a skill or ability, optionally including level and/or duration of experience&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-affiliation&amp;lt;/code&amp;gt;''' - an affiliation with an &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt; organization&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-resume&amp;quot; is found, don't look for an &amp;quot;hresume&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;hresume&amp;quot;&amp;gt;hresume&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;contact&amp;lt;/code&amp;gt; - including compat root &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;education&amp;lt;/code&amp;gt; - including compat root &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-event&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;experience&amp;lt;/code&amp;gt; - including compat root &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-event&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;skill&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;affiliation&amp;lt;/code&amp;gt; - including compat root &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: skill has a [[hresume-skill-brainstorm|proposed expansion into competency]] with explicit summary, rating and/or duration components. Based on existing real world adoption, we should consider an h-competency vocabulary with p-summary, p-rating, and dt-duration properties.&lt;br /&gt;
&lt;br /&gt;
=== h-review ===&lt;br /&gt;
{{main|h-review}}&lt;br /&gt;
&lt;br /&gt;
The '''h-review''' microformat is for marking up reviews. This is an update to [[hReview]]. See also [[h-item]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-review&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-review&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;''' - name of the review&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-item&amp;lt;/code&amp;gt;''' - thing been reviewed i.e. business or person (h-card), event (h-event), place (h-adr or h-geo), product (h-product), website, url, or other item ([[h-item]]).&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-reviewer&amp;lt;/code&amp;gt;''' - person who authored the review &lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-reviewed&amp;lt;/code&amp;gt;''' - date time of when the review was written&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-rating&amp;lt;/code&amp;gt;''' - value from 1-5 indicating a rating for the item (5 best).&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-best&amp;lt;/code&amp;gt;'''  - define best rating value. can be numerically lower than worst.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-worst&amp;lt;/code&amp;gt;'''  - define worst rating value. can be numerically higher than best. &lt;br /&gt;
* '''&amp;lt;code&amp;gt;e-description&amp;lt;/code&amp;gt;''' - the full text written evaluation and opinion of the reviewer&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-category&amp;lt;/code&amp;gt;''' - freeform categories or tags applied to the item by the reviewer &lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;''' - URL of the review&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-review&amp;quot; is found, don't look for an &amp;quot;hreview&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;hreview&amp;quot;&amp;gt;hreview&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; parse as '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;fn&amp;lt;/code&amp;gt; - parse as '''p-name''' of the item being reviewed (p-item h-item p-name)&lt;br /&gt;
* &amp;lt;code&amp;gt;photo&amp;lt;/code&amp;gt; - parse as '''u-photo''' of the item being reviewed (p-item h-item u-photo)&lt;br /&gt;
* &amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt; - parse as '''u-url''' of the item being reviewed (p-item h-item u-url)&lt;br /&gt;
* &amp;lt;code&amp;gt;reviewer&amp;lt;/code&amp;gt;  - including compat root vcard in the absence of h-card&lt;br /&gt;
* &amp;lt;code&amp;gt;dtreviewed&amp;lt;/code&amp;gt; - parse as '''dt-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;best&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;worst&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; - parse as '''e-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;rel=&amp;quot;tag&amp;quot;&amp;lt;/code&amp;gt; - parse as '''p-category'''&lt;br /&gt;
* &amp;lt;code&amp;gt;rel=&amp;quot;self bookmark&amp;quot;&amp;lt;/code&amp;gt; - parse as '''u-url'''. note that &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt; attribute value is treated as a space separated set, thus any presence of &amp;quot;self&amp;quot; and &amp;quot;bookmark&amp;quot; within such a set in a rel value is accepted.&lt;br /&gt;
&lt;br /&gt;
Note: The [[hReview]] format has three properties which make use of &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt; attribute, these are &amp;lt;code&amp;gt;tag&amp;lt;/code&amp;gt;, permalink (via the &amp;lt;code&amp;gt;self&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bookmark&amp;lt;/code&amp;gt; values) and &amp;lt;code&amp;gt;license&amp;lt;/code&amp;gt;. Microformats 2 parsers {{should}} map these URLs into the page scoped rel collection.&lt;br /&gt;
&lt;br /&gt;
=== h-review-aggregate ===&lt;br /&gt;
{{main|h-review-aggregate}}&lt;br /&gt;
&lt;br /&gt;
The '''h-review-aggregate''' microformat is for marking up aggregate reviews of a single item. This is an update to [[hreview-aggregate]]. See also [[h-item]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-review-aggregate&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-review-aggregate&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;''' - name of the review&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-item&amp;lt;/code&amp;gt;''' - thing been reviewed i.e. business or person (h-card), event (h-event), place (h-adr or h-geo), product (h-product), website, url, or other item (h-item).&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-rating&amp;lt;/code&amp;gt;''' - value from 1-5 indicating average rating for the item (5 best).&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-best&amp;lt;/code&amp;gt;'''  - define best rating value. can be numerically lower than worst.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-worst&amp;lt;/code&amp;gt;'''  - define worst rating value. can be numerically higher than best. &lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-count&amp;lt;/code&amp;gt;'''  - number of reviews aggregated.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-votes&amp;lt;/code&amp;gt;'''  - number of reviewers who have rated the product, thus contributing to the average rating.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-category&amp;lt;/code&amp;gt;''' - freeform categories or tags applied to the item by the reviewer&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;''' - URL of the review&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-review-aggregate&amp;quot; is found, don't look for an &amp;quot;hreview-aggregate&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;hreview-aggregate&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; parse as '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;fn&amp;lt;/code&amp;gt; - parse as '''p-name''' of the item being reviewed (p-item h-item p-name)&lt;br /&gt;
* &amp;lt;code&amp;gt;photo&amp;lt;/code&amp;gt; - parse as '''u-photo''' of the item being reviewed (p-item h-item u-photo)&lt;br /&gt;
* &amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt; - parse as '''u-url''' of the item being reviewed (p-item h-item u-url)&lt;br /&gt;
* &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;best&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;worst&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;count&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;votes&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;rel=&amp;quot;tag&amp;quot;&amp;lt;/code&amp;gt; - parse as '''p-category'''&lt;br /&gt;
* &amp;lt;code&amp;gt;rel=&amp;quot;self bookmark&amp;quot;&amp;lt;/code&amp;gt; - parse as '''u-url'''. note that &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt; attribute value is treated as a space separated set, thus any presence of &amp;quot;self&amp;quot; and &amp;quot;bookmark&amp;quot; within such a set in a rel value is accepted.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== v2 vocab notes ===&lt;br /&gt;
Notes: &lt;br /&gt;
* All v2 vocabularies are defined as flat lists of properties of an object/item, and thus can be used in microformats-2 syntax as shown, or in microdata items, or RDFa. The microformats-2 property parsing prefixes &amp;quot;p-&amp;quot;, &amp;quot;u-&amp;quot;, &amp;quot;dt-&amp;quot;, &amp;quot;e-&amp;quot; are omitted when using defined properties in microdata itemprop and RDFa property as those syntaxes have their own element-specific parsing rules.&lt;br /&gt;
* Profile URLs are provided for use with the HTML4 &amp;lt;code&amp;gt;profile&amp;lt;/code&amp;gt; attribute, microdata &amp;lt;code&amp;gt;itemtype&amp;lt;/code&amp;gt; attribute, and RDFa &amp;lt;code&amp;gt;vocab&amp;lt;/code&amp;gt; &amp;amp;amp; &amp;lt;code&amp;gt;typeof&amp;lt;/code&amp;gt; attributes (though the latter requires slicing off the trailing segment of the profile for the typeof attribute, and leaving the rest in vocab). &lt;br /&gt;
* microformats 2 properties may also be explicitly bound as URIs using [[rel-profile]], the [[html5-profile]] attribute proposal, or an HTML5 'vocab' attribute instead. If URI bound terms are important to you, please express interest on [[rel-profile]], [[html5-profile]], or contribute to an [[html5-vocab]] draft.&lt;br /&gt;
&lt;br /&gt;
=== v2 vocab to-do ===&lt;br /&gt;
To do: &lt;br /&gt;
* write a simple tutorial for creating/getting started with microformats-2 markup for new content&lt;br /&gt;
* examples in each h-* spec listed above of how to embed other microformats in them&lt;br /&gt;
* actual profile documents at &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-*&amp;lt;/nowiki&amp;gt; URLs mentioned above.&lt;br /&gt;
* Provide any necessary microdata-specific language as needed (e.g. to be comparably understandable to the [http://www.whatwg.org/specs/web-apps/current-work/#vcard sample vCard4/hCard1 microdata vocabulary]. Also provide any necessary RDFa-specific language as needed. Both preferably in a generic vocabulary-independent way.&lt;br /&gt;
* write a porting guide mapping v1 property -&amp;gt; v2 property&lt;br /&gt;
** use-case: simple search/replace in templates (e.g. in case web author doesn't remember existing microformats vocabs and where they used them).&lt;br /&gt;
** advise using *both* in existing templates (e.g. in case some CSS depends on the existing microformats)&lt;br /&gt;
* analyzie/document how well the microformats2 model and vocabularies satisfy the [http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-May/019681.html use-cases used to design/create microdata].&lt;br /&gt;
&lt;br /&gt;
== combining microformats ==&lt;br /&gt;
Since microformats 2 uses simple flat sets of properties for each microformat, multiple microformats are combined to indicate additional structure.&lt;br /&gt;
&lt;br /&gt;
=== h-event location h-card ===&lt;br /&gt;
Events commonly have venue information with additional structure, like address information. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-event&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name u-url&amp;quot; href=&amp;quot;http://indiewebcamp.com/2012&amp;quot;&amp;gt;&lt;br /&gt;
    IndieWebCamp 2012&lt;br /&gt;
  &amp;lt;/a&amp;gt;&lt;br /&gt;
  from &amp;lt;time class=&amp;quot;dt-start&amp;quot;&amp;gt;2012-06-30&amp;lt;/time&amp;gt; &lt;br /&gt;
  to &amp;lt;time class=&amp;quot;dt-end&amp;quot;&amp;gt;2012-07-01&amp;lt;/time&amp;gt; at &lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-location h-card&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;a class=&amp;quot;p-name p-org u-url&amp;quot; href=&amp;quot;http://geoloqi.com/&amp;quot;&amp;gt;&lt;br /&gt;
      Geoloqi&lt;br /&gt;
    &amp;lt;/a&amp;gt;, &lt;br /&gt;
    &amp;lt;span class=&amp;quot;p-street-address&amp;quot;&amp;gt;920 SW 3rd Ave. Suite 400&amp;lt;/span&amp;gt;, &lt;br /&gt;
    &amp;lt;span class=&amp;quot;p-locality&amp;quot;&amp;gt;Portland&amp;lt;/span&amp;gt;, &lt;br /&gt;
    &amp;lt;abbr class=&amp;quot;p-region&amp;quot; title=&amp;quot;Oregon&amp;quot;&amp;gt;OR&amp;lt;/abbr&amp;gt;&lt;br /&gt;
  &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The nested h-card used to structure the p-location of the h-event is represented as a structured value for &amp;quot;location&amp;quot; in the JSON, which has an additional key, &amp;quot;value&amp;quot; that represents the plain text version parsed from the p-location.&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-event&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;IndieWebCamp 2012&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://indiewebcamp.com/2012&amp;quot;],&lt;br /&gt;
      &amp;quot;start&amp;quot;: [&amp;quot;2012-06-30&amp;quot;],&lt;br /&gt;
      &amp;quot;end&amp;quot;: [&amp;quot;2012-07-01&amp;quot;],&lt;br /&gt;
      &amp;quot;location&amp;quot;: [{&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Geoloqi, 920 SW 3rd Ave. Suite 400, Portland, OR&amp;quot;,&lt;br /&gt;
        &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
        &amp;quot;properties&amp;quot;: {&lt;br /&gt;
          &amp;quot;name&amp;quot;: [&amp;quot;Geoloqi&amp;quot;],&lt;br /&gt;
          &amp;quot;org&amp;quot;: [&amp;quot;Geoloqi&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;http://geoloqi.com/&amp;quot;],&lt;br /&gt;
          &amp;quot;street-address&amp;quot;: [&amp;quot;920 SW 3rd Ave. Suite 400&amp;quot;],&lt;br /&gt;
          &amp;quot;locality&amp;quot;: [&amp;quot;Portland&amp;quot;],&lt;br /&gt;
          &amp;quot;region&amp;quot;: [&amp;quot;Oregon&amp;quot;]&lt;br /&gt;
        }&lt;br /&gt;
      }]&lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Questions:&lt;br /&gt;
&amp;lt;div class=&amp;quot;discussion&amp;quot;&amp;gt;&lt;br /&gt;
* Should the nested hCard be present also as a top-level item in the JSON? - [[User:Tantek|Tantek]] 02:02, 19 June 2012 (UTC)&lt;br /&gt;
** My current (2012-243) leaning is no. - [[User:Tantek|Tantek]] 18:53, 30 August 2012 (UTC)&lt;br /&gt;
** If so, how do we avoid expansion of the JSON geometrically proportional to the depth of microformat nesting? (Or do we not worry about it?)&lt;br /&gt;
* Should there be a canonical hierarchical JSON and a canonical flattened JSON? - [[User:Tantek|Tantek]] 02:02, 19 June 2012 (UTC)&lt;br /&gt;
** My current (2012-243) leaning is no, we stick with one canonical JSON for uf2 which is hierarchical. - [[User:Tantek|Tantek]] 18:53, 30 August 2012 (UTC)&lt;br /&gt;
** If so, should the flattened JSON have references from properties to nested microformats that have been pushed to the top level per flattening? - [[User:Tantek|Tantek]] 02:02, 19 June 2012 (UTC)&lt;br /&gt;
*** If so, what convention does/do JSON follow for such synthetic local reference identifiers? - [[User:Tantek|Tantek]] 02:02, 19 June 2012 (UTC)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The 'location' value reflects the visible text of its element, including spaces and punctuation, as well as the state abbreviation 'OR'. The 'h-card' property values are only what is marked up, and thus include structure values without extra punctuation, and the state takes the expanded form from the &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute of its &amp;lt;code&amp;gt;&amp;amp;lt;abbr&amp;amp;gt;&amp;lt;/code&amp;gt; element.&lt;br /&gt;
&lt;br /&gt;
=== h-card org h-card ===&lt;br /&gt;
People often publish information general to their company rather than specific to them, in which case, they may wish to encapsulate that in separately nested microformat. E.g. here is a simple h-card example with org property:&lt;br /&gt;
&lt;br /&gt;
[http://blog.lizardwrangler.com Mitchell Baker] (Mozilla Foundation)&lt;br /&gt;
&lt;br /&gt;
with source:&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name u-url&amp;quot;&lt;br /&gt;
     href=&amp;quot;http://blog.lizardwrangler.com/&amp;quot; &lt;br /&gt;
    &amp;gt;Mitchell Baker&amp;lt;/a&amp;gt; &lt;br /&gt;
  (&amp;lt;span class=&amp;quot;p-org&amp;quot;&amp;gt;Mozilla Foundation&amp;lt;/span&amp;gt;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Mitchell Baker&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://blog.lizardwrangler.com/&amp;quot;],&lt;br /&gt;
      &amp;quot;org&amp;quot;: [&amp;quot;Mozilla Foundation&amp;quot;]&lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sometimes such organization affiliations are hyperlinked to the website of the organization:&lt;br /&gt;
&lt;br /&gt;
[http://blog.lizardwrangler.com Mitchell Baker] ([http://mozilla.org/ Mozilla Foundation])&lt;br /&gt;
&lt;br /&gt;
You can mark that up with a nested h-card:&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name u-url&amp;quot;&lt;br /&gt;
     href=&amp;quot;http://blog.lizardwrangler.com/&amp;quot; &lt;br /&gt;
    &amp;gt;Mitchell Baker&amp;lt;/a&amp;gt; &lt;br /&gt;
  (&amp;lt;a class=&amp;quot;p-org h-card&amp;quot; &lt;br /&gt;
      href=&amp;quot;http://mozilla.org/&amp;quot;&lt;br /&gt;
     &amp;gt;Mozilla Foundation&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;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Mitchell Baker&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://blog.lizardwrangler.com/&amp;quot;],&lt;br /&gt;
      &amp;quot;org&amp;quot;: [{&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Mozilla Foundation&amp;quot;,&lt;br /&gt;
        &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
        &amp;quot;properties&amp;quot;: {&lt;br /&gt;
          &amp;quot;name&amp;quot;: [&amp;quot;Mozilla Foundation&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;http://mozilla.org/&amp;quot;]&lt;br /&gt;
        }&lt;br /&gt;
      }]&lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: the nested h-card has implied 'name' and 'url' properties, just like any other root-class-name-only h-card on an &amp;lt;code&amp;gt;&amp;amp;lt;a href&amp;amp;gt;&amp;lt;/code&amp;gt; would.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''FOR PARSERS ONLY:'''&lt;br /&gt;
&lt;br /&gt;
The nested 'h-card' could be marked up as an 'h-org' as well, which adds it to the nested microformat's type array, all as part of the property specified by the 'p-org'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name u-url&amp;quot;&lt;br /&gt;
     href=&amp;quot;http://blog.lizardwrangler.com/&amp;quot; &lt;br /&gt;
    &amp;gt;Mitchell Baker&amp;lt;/a&amp;gt; &lt;br /&gt;
  (&amp;lt;a class=&amp;quot;p-org h-card h-org&amp;quot; &lt;br /&gt;
      href=&amp;quot;http://mozilla.org/&amp;quot;&lt;br /&gt;
     &amp;gt;Mozilla Foundation&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;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Mitchell Baker&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://blog.lizardwrangler.com/&amp;quot;],&lt;br /&gt;
      &amp;quot;org&amp;quot;: [{&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Mozilla Foundation&amp;quot;,&lt;br /&gt;
        &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;, &amp;quot;h-org&amp;quot;],&lt;br /&gt;
        &amp;quot;properties&amp;quot;: {&lt;br /&gt;
          &amp;quot;name&amp;quot;: [&amp;quot;Mozilla Foundation&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;http://mozilla.org/&amp;quot;]&lt;br /&gt;
        }&lt;br /&gt;
      }]&lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''FOR PARSERS ONLY:'''&lt;br /&gt;
&lt;br /&gt;
Without a property class name like 'p-org' holding all the nested objects together, we need to introduce another array for nested children (similar to the existing DOM element notion of children) of a microformat that are not attached to a specific property:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name u-url&amp;quot;&lt;br /&gt;
     href=&amp;quot;http://blog.lizardwrangler.com/&amp;quot; &lt;br /&gt;
    &amp;gt;Mitchell Baker&amp;lt;/a&amp;gt; &lt;br /&gt;
  (&amp;lt;a class=&amp;quot;h-org h-card&amp;quot; &lt;br /&gt;
      href=&amp;quot;http://mozilla.org/&amp;quot;&lt;br /&gt;
     &amp;gt;Mozilla Foundation&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;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Mitchell Baker&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://blog.lizardwrangler.com/&amp;quot;]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;children&amp;quot;: [{&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;,&amp;quot;h-org&amp;quot;],&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;name&amp;quot;: [&amp;quot;Mozilla Foundation&amp;quot;],&lt;br /&gt;
        &amp;quot;url&amp;quot;: [&amp;quot;http://mozilla.org/&amp;quot;]&lt;br /&gt;
      }  &lt;br /&gt;
    }]&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Since there's no property class name on the element with classes 'h-card' and 'h-org', the microformat representing that element is collected into the children array.&lt;br /&gt;
&lt;br /&gt;
Such a nested microformat implies some relationship (containment, being related), but is not as useful as if the nested microformat was a specific property of its parent.&lt;br /&gt;
&lt;br /&gt;
For this reason it's recommended that authors should not publish nested microformats without a  property class name, and instead, when nesting microformats, authors should always specify a property class name (like 'p-org') on the same element as the root class name(s) of the nested microformat(s) (like 'h-card' and/or 'h-org').&lt;br /&gt;
&lt;br /&gt;
'''FOR PARSERS ONLY:'''&lt;br /&gt;
&lt;br /&gt;
Or the nested object could be only marked up with 'h-card'. Source:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name u-url&amp;quot;&lt;br /&gt;
     href=&amp;quot;http://blog.lizardwrangler.com/&amp;quot; &lt;br /&gt;
    &amp;gt;Mitchell Baker&amp;lt;/a&amp;gt; &lt;br /&gt;
  (&amp;lt;a class=&amp;quot;h-card&amp;quot; &lt;br /&gt;
      href=&amp;quot;http://mozilla.org/&amp;quot;&lt;br /&gt;
     &amp;gt;Mozilla Foundation&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;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Mitchell Baker&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://blog.lizardwrangler.com/&amp;quot;]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;children&amp;quot;: [{&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;name&amp;quot;: [&amp;quot;Mozilla Foundation&amp;quot;],&lt;br /&gt;
        &amp;quot;url&amp;quot;: [&amp;quot;http://mozilla.org/&amp;quot;]&lt;br /&gt;
      }  &lt;br /&gt;
    }]&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''TO DO: Add h-event h-card example and JSON, per real world publishing examples like [http://www.swingtime.co.uk/List/ClSouth.html Swing Time: Classes in Southern England].'''&lt;br /&gt;
&lt;br /&gt;
== authoring ==&lt;br /&gt;
=== minimal markup ===&lt;br /&gt;
The best way to use microformats-2 is with as little additional markup as possible. This keeps your code cleaner, improves its maintainability, and thus the quality and longevity of your microformats.&lt;br /&gt;
&lt;br /&gt;
One big advantage of microformats-2 over previous microformats (and others) is the ability to add one class name to an existing element to create a structured item.&lt;br /&gt;
&lt;br /&gt;
See the [[microformats-2#simple_microformats_2_examples|simple examples at the top]] for a start, e.g.&lt;br /&gt;
&lt;br /&gt;
Simple hCards work just by adding &amp;lt;code&amp;gt;class=&amp;quot;h-card&amp;quot;&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;h-card&amp;quot;&amp;gt;Frances Berriman&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a class=&amp;quot;h-card&amp;quot; href=&amp;quot;http://benward.me&amp;quot;&amp;gt;Ben Ward&amp;lt;/a&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;img class=&amp;quot;h-card&amp;quot; alt=&amp;quot;Sally Ride&amp;quot; &lt;br /&gt;
     src=&amp;quot;http://upload.wikimedia.org/wikipedia/commons/a/a4/Ride-s.jpg&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a class=&amp;quot;h-card&amp;quot; href=&amp;quot;http://tantek.com&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;img alt=&amp;quot;Tantek Çelik&amp;quot; src=&amp;quot;http://ttk.me/logo.jpg&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Tip: Inside an open tag, put the &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt; attribute &amp;lt;em&amp;gt;first&amp;lt;/em&amp;gt;, then any human text content attributes (e.g. &amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt;), then URL attributes (e.g. &amp;lt;code&amp;gt;href&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt;), and lastly other attributes (e.g. &amp;lt;code&amp;gt;style&amp;lt;/code&amp;gt;). Putting the class attribute first ties it closely to the element name/tag itself, makes it more obvious, and thus more likely to be kept up to date.&lt;br /&gt;
&lt;br /&gt;
=== backward compatible ===&lt;br /&gt;
If you depend on current microformats [[implementations]], while they're being updated to support [[microformats-2]], you can include both existing microformats and microformats-2 markup.&lt;br /&gt;
&lt;br /&gt;
In short: use both sets of class names simultaneously. &lt;br /&gt;
&lt;br /&gt;
When doing so, use them on the same element, with the microformats-2 class name first, followed immediately by the existing microformats class name.&lt;br /&gt;
&lt;br /&gt;
Here are the microformats-2 hCards from above with current [[hCard]] markup as well, which may require adding a wrapping element (e.g. a &amp;lt;code&amp;gt;&amp;amp;lt;span&amp;amp;gt;&amp;lt;/code&amp;gt;) to separate the root class name element from explicit property class name elements:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;h-card vcard&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-name fn&amp;quot;&amp;gt;Frances Berriman&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;h-card vcard&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name fn u-url url&amp;quot; href=&amp;quot;http://benward.me&amp;quot;&amp;gt;Ben Ward&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;h-card vcard&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;img class=&amp;quot;p-name fn u-photo photo&amp;quot; alt=&amp;quot;Sally Ride&amp;quot; &lt;br /&gt;
       src=&amp;quot;http://upload.wikimedia.org/wikipedia/commons/a/a4/Ride-s.jpg&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;h-card vcard&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;u-url url&amp;quot; href=&amp;quot;http://tantek.com&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;img class=&amp;quot;p-name fn u-photo photo&amp;quot; alt=&amp;quot;Tantek Çelik&amp;quot; &lt;br /&gt;
         src=&amp;quot;http://ttk.me/logo.jpg&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tips:&lt;br /&gt;
* use the microformats-2 class name first, e.g.&lt;br /&gt;
** &amp;lt;code&amp;gt;class=&amp;quot;h-card vcard&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;class=&amp;quot;u-url url&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* and pair them when using an element for multiple properties, e.g.:&lt;br /&gt;
** &amp;lt;code&amp;gt;class=&amp;quot;p-name fn u-url url&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;class=&amp;quot;p-name fn u-photo photo&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* put microformats classes after classes for CSS (since page authors will likely interact more with their own classes for design than with microformats classes), e.g. as used on individual microformats [[events]] pages:&lt;br /&gt;
** &amp;lt;code&amp;gt;class=&amp;quot;event-page h-event vevent&amp;quot;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The prefixes (h-, p-, etc.) of microformats2 class names provide easier recognition, and when followed by the similarly named existing class name, they're more easily recognized as related and thus kept together when the markup is maintained over time.&lt;br /&gt;
&lt;br /&gt;
Related FAQ: [[microformats2-faq#when_using_both_h-card_and_vcard_which_should_be_first_and_why|When using both h-card and vcard which should be first and why?]]&lt;br /&gt;
&lt;br /&gt;
== validators ==&lt;br /&gt;
microformats2 validators:&lt;br /&gt;
&lt;br /&gt;
{{new}} Test your microformatted web page with: &lt;br /&gt;
* https://pin13.net/mf2/&lt;br /&gt;
&lt;br /&gt;
Barnaby Walters has a hosted version of the open source php-mf2 [[parser]] where you can enter your markup into a textarea and see how it's parsed:&lt;br /&gt;
* http://waterpigs.co.uk/php-mf2/&lt;br /&gt;
&lt;br /&gt;
See the [[validators]] page for a longer list of validators.&lt;br /&gt;
&lt;br /&gt;
== Examples in the wild ==&lt;br /&gt;
Please add new examples in the wild of microformats-2 to the top of this list. When it gets too big we can move it to a separate page like [[microformats-2-examples-in-wild]].&lt;br /&gt;
&lt;br /&gt;
* ...&lt;br /&gt;
* David John Mead marks up his profile, blog posts and comments with h-card, h-entry and h-cite on [http://davidjohnmead.com davidjohnmead.com]&lt;br /&gt;
* [[User:Brian|Brian Suda]] marks up his blog posts up with h-entry and h-card on [http://optional.is/required/ optional.is]&lt;br /&gt;
* Ashton McAllen marks up his blog posts, reposts, comments and likes with h-entry, h-card and h-cite on [http://acegiak.net/ acegiak.net]&lt;br /&gt;
* Emma Kuo marks up her blog posts and notes with h-entry and h-card on [http://notenoughneon.com/ notenoughneon.com]&lt;br /&gt;
* Scott Jenson marks up his blog posts with h-entry and h-card on [http://jenson.org/ jenson.org]&lt;br /&gt;
* Emily McAllen marks up her blog posts with h-entry and h-card on [http://blackwoolholiday.com/ blackwoolholiday.com]&lt;br /&gt;
* Ryan Barrett marks up his blog posts, notes, replies and likes with h-entry and h-card on [https://snarfed.org/ snarfed.org]&lt;br /&gt;
* Barry Frost marks up his notes with h-entry, h-card and h-cite on [http://barryfrost.com/ barryfrost.com]&lt;br /&gt;
* Amber Case marks up her profile, blog posts, replies and notes with h-entry and h-card on [http://caseorganic.com/ caseorganic.com]&lt;br /&gt;
* Johannes Ernst marks up his blog posts with h-entry on [http://upon2020.com/blog/ upon2020.com]&lt;br /&gt;
* Michiel de Jong marks up his profile and notes with h-entry and h-card on [https://michielbdejong.com/ michielbdejong.com]&lt;br /&gt;
* Mike Taylor marks up his profile and blog posts with h-card and h-entry on [https://bear.im/bearlog/ bear.im]&lt;br /&gt;
* Erin Jo Ritchey marks up her profile, posts and comments using h-card, h-entry and h-cite with idno on [http://erinjo.is/ erinjo.is]&lt;br /&gt;
* Jeena Paradies marks up his profile, blog posts, notes and comments using h-card, h-entry and h-cite on [https://jeena.net/ jeena.net]&lt;br /&gt;
* Andy Sylvester marks up his profile, blog posts and comments using h-card and h-entry on [http://andysylvester.com/2014/03/01/howto-setting-up-the-selfoss-feed-reader-with-microformats-support/ andysylvester.com] (note: as of 2014-03-13 using h-entry for comments instead of correct h-cite --[[User:Barnabywalters|bw]] 14:44, 13 March 2014 (UTC))&lt;br /&gt;
* Hakan Demir marks up his Coupon and Voucher blog posts with h-entry and h-card on [http://www.gutscheinflagge.de/ gutscheinflagge.de]&lt;br /&gt;
* Chloe Weil marks up her blog posts with h-entry on [http://chloeweil.com/blog chloeweil.com]&lt;br /&gt;
* Christophe Ducamp marks up his blog posts and profile with h-entry and h-card on [http://christopheducamp.com/ christopheducamp.com]&lt;br /&gt;
* Glenn Jones marks up his blog posts, notes, replies, profile and comments with h-entry, h-card and h-cite on [http://glennjones.net/ glennjones.net]&lt;br /&gt;
* Marcus Povey marks up his blog posts and profile with h-entry and h-card on [http://www.marcus-povey.co.uk/ marcus-povey.co.uk]&lt;br /&gt;
* Eugen Busoiu marks up his web profile with h-card on [http://eugenbusoiu.com/#utm_source=microformats2&amp;amp;utm_medium=h-card&amp;amp;utm_campaign=Microformats eugenbusoiu.com]]&lt;br /&gt;
* Matthias Pfefferle marks up his blog posts, comments and profile with h-card, h-cite and h-entry on [http://notizblog.org/ notizblog.org]&lt;br /&gt;
* Kyle Mahan marks up his profile and notes with h-card and h-entry on [http://kylewm.com/ kylewm.com]&lt;br /&gt;
* Okinawan-lyrics marks up his blog posts with h-entry and h-card ([http://www.okinawan-lyrics.com/ example])&lt;br /&gt;
* Emil Björklund marks up his blog posts with h-entry and h-card ([http://thatemil.com/blog/2013/09/16/webmentioning-adactio/ example])&lt;br /&gt;
* App.net rolled out support for h-card and h-entry on all profile pages and permalink pages as of 2013-08-06 ([https://alpha.app.net/voidfiles example])&lt;br /&gt;
* Brett Comnes marks up his posts with h-entry and h-card ([http://bret.io/2013/06/29/getting-started-with-bower/ example])&lt;br /&gt;
* Ben Werdmuller marks up his posts with h-card and h-entry, u-in-reply-to and u-like ([http://werd.io/view/51d5097fbed7ded0633a5956 example])&lt;br /&gt;
* Sandeep Shetty marks his posts up with h-card and h-entry, as well as draft u-in-reply-to and experimental u-like properties ([http://sandeep.io/101 example])&lt;br /&gt;
* Laurent Eschenauer marks up his posts with h-entry ([http://eschnou.com/entry/first-autonomous-flight-of-my-nodecopter-62-24992.html example])&lt;br /&gt;
* Tom Morris marks up his posts using h-entry ([http://tommorris.org/posts/8417 example])&lt;br /&gt;
* Sinolandquality marks up some of their content using h-feed and h-entry on [http://www.sinolandquality.com/Blog/?page_id=3516&amp;amp;utm_content=buffere4d40&amp;amp;utm_medium=social&amp;amp;utm_source=twitter.com&amp;amp;utm_campaign=buffer sinolandquality.com]&lt;br /&gt;
* [http://www.w3.org/conf/ W3Conf 2013] uses h-event for the main event, and h-card for all the speakers and notable attendees. The h-cards make particularly good use of implied name, url, and photo properties.&lt;br /&gt;
* [http://wordpress.org/extend/themes/sempress SemPress] is a WordPress theme that supports h-card, h-feed/h-entry and h-as-*&lt;br /&gt;
* [http://the-pastry-box-project.net/ The Pastry Box Project] use h-card and h-entry markup on their homepage and individual thoughts pages&lt;br /&gt;
* Tom Morris uses h-card and [[XFN]] to markup [http://tommorris.org/pages/blogroll his blogroll].&lt;br /&gt;
* Aaron Parecki uses h-card to markup both authorship and references to people in his notes permalinks, e.g. [http://aaronparecki.com/2012/230/reply/1 2012/230/reply/1].&lt;br /&gt;
* [http://tantek.com/ Tantek Çelik] uses h-card, h-event, and h-entry on his home page, as well as h-entry on all post permalinks, e.g. [http://tantek.com/2012/243/t1/name-beats-title-modern-use-dubline-core-wrong-uf2 2012-243 post], with [[rel-prev]]/[[rel-next]] (if applicable) to indicate prev/next posts, and with [[rel-author]] to his home page with canonical hCard to indicate authorship.&lt;br /&gt;
* [http://waterpigs.co.uk/ Barnaby Walters] uses h-card on his home page, h-card, h-entry and XFN markup on his [http://waterpigs.co.uk/notes notes page].&lt;br /&gt;
** 2013-01-25 Barnaby Walters: &amp;lt;cite&amp;gt;[http://waterpigs.co.uk/articles/experimental-markup Experimental Markup]&amp;lt;/cite&amp;gt; - describes how he's using microformats2 vocabularies: &amp;lt;code&amp;gt;h-adr&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-event&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-geo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-review&amp;lt;/code&amp;gt;, and experimental vocabularies: &amp;lt;code&amp;gt;h-feed&amp;lt;/code&amp;gt; (embedded for update histories), [[activity-streams]] objects &amp;lt;code&amp;gt;h-as-article&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-as-collection&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-as-note&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-as-update&amp;lt;/code&amp;gt;, as well as experimental properties: &amp;lt;code&amp;gt;u-alternate&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;u-as-downstream-duplicate&amp;lt;/code&amp;gt; (links to POSSE copies), and &amp;lt;code&amp;gt;u-in-reply-to&amp;lt;/code&amp;gt; (links to content that the posts are in reply to). &lt;br /&gt;
* [http://tantek.com/presentations/2012/06/microformats microformats.org at 7 years] presentation with h-event and h-card markup for people and organizations.&lt;br /&gt;
* [http://tantek.com/presentations/2012/06/pdf2012-indieweb.html Rise of the Indie Web hCards] (from Personal Democracy Forum 2012 #pdf12 #pdf2012) has [[microformats-2]] h-calendar and h-card markup&lt;br /&gt;
* WebMaker by Mozilla has [[microformats-2]] h-calendar and h-card on event search (e.g. [https://webmaker.org/en-US/events/near/?lat=45.5234515&amp;amp;lng=-122.6762071 search near Portland Oregon]) and event pages (e.g. [https://webmaker.org/en-US/events/192f56eb9/ IndieWebCamp 2012]).[https://twitter.com/microformats/status/212207925643587585]&lt;br /&gt;
* WebFWD by Mozilla has [[microformats-2]] h-card markup on [https://webfwd.org/about/experts/ experts] and [https://webfwd.org/about/team/ team] pages&lt;br /&gt;
* [http://indiewebcamp.com IndieWebCamp] has [[microformats-2]] h-event markup with nested h-cards for the organizers and the location.&lt;br /&gt;
* [https://wiki.mozilla.org/Events Mozilla Events] page has [[microformats-2]] h-event markup with attendees marked up with h-card.&lt;br /&gt;
* The [http://pdx.esri.com/blog/2013/10/17/introducing-mapattack/ Esri PDX Blog] has h-entry markup on all blog posts (as of 2013-10-19), and h-product markup on [http://pdx.esri.com/projects/terraformer/ project pages]&lt;br /&gt;
&lt;br /&gt;
=== offline ===&lt;br /&gt;
* spreadly marks up share permalink pages with h-entry, as well as minimal h-cards and experimental p-like properties ([http://my.spread.ly/share/51d570bc09e9486562000002 example])&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
{{new}} Test your microformatted web page with: &lt;br /&gt;
* https://pin13.net/mf2/ (where it says &amp;quot;Microformats Parser&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== Blogging tools ===&lt;br /&gt;
* '''Storytlr''' parses the 'target' from [http://indiewebcamp.com/pingback pingbacks] for [https://github.com/storytlr/storytlr/blob/master/protected/application/public/controllers/PingbackController.php#L63 h-entry with properties and nested h-card] for information to automatically display in the [http://eschnou.com/entry/testing-indieweb-federation-with-waterpigscouk-aaronpareckicom-and--62-24908.html comments section on a post].&lt;br /&gt;
&lt;br /&gt;
=== Converters ===&lt;br /&gt;
&lt;br /&gt;
* '''[https://github.com/snarfed/activitystreams-unofficial activitystreams-unofficial]''' is a library and REST API that converts between silo APIs, [[ActivityStreams]] and [[microformats2]] (all directions). Supported silos include Facebook, Twitter, Instagram and Google+. Users include [http://brid.gy/ Bridgy], [http://reader.kylewm.com/ Woodwind], and [https://facebook-atom.appspot.com/ facebook-atom] and [https://twitter-atom.appspot.com/ twitter-atom], among others.&lt;br /&gt;
&lt;br /&gt;
* '''[http://pipes.yahoo.com/pipes/pipe.info?_id=afc5568b4e8643bfb05436b1caaf91bc microformats to RSS]''' - a Yahoo! pipe that converts a URL containing an [[h-feed]] containing h-entries, into an [[RSS]] feed ([http://waterpigs.co.uk/notes/4SeNi5/ 2013-10-21 blog post announcing])&lt;br /&gt;
&lt;br /&gt;
=== Parsers ===&lt;br /&gt;
Parsers, open source libraries, in alphabetical order by programming language:&lt;br /&gt;
&lt;br /&gt;
==== Go ====&lt;br /&gt;
* '''andyleap/microformats''' Golang microformats2 parser&lt;br /&gt;
** github open source: https://github.com/andyleap/microformats&lt;br /&gt;
** live textarea entry: http://mf2.vendaria.net&lt;br /&gt;
&lt;br /&gt;
==== Haskell ====&lt;br /&gt;
* '''myfreeweb/microformats2-parser''' Haskell microformats2 parser&lt;br /&gt;
** github open source: https://github.com/myfreeweb/microformats2-parser&lt;br /&gt;
** live textarea entry: https://unrelenting.technology/mf2/&lt;br /&gt;
&lt;br /&gt;
==== Java ====&lt;br /&gt;
* '''mf2j''' An early-stage Java microformats2 parser&lt;br /&gt;
** github open source: https://github.com/kylewm/mf2j&lt;br /&gt;
** live: https://mf2j.herokuapp.com/?url={http://example.com}&lt;br /&gt;
&lt;br /&gt;
==== Javascript ====&lt;br /&gt;
* '''microformat-node''' Node.js microformats2 parser&lt;br /&gt;
** github open source: https://github.com/glennjones/microformat-node&lt;br /&gt;
** test suite: https://github.com/microformats/tests&lt;br /&gt;
** blog post: http://glennjones.net/2013/01/brand-new-microformats-2-parser/&lt;br /&gt;
** live: http://glennjones.net/tools/microformats/&lt;br /&gt;
* '''microformat-shiv'''  - cross browser javascript microformats 2 parser which can also be used in browser extensions.&lt;br /&gt;
** http://microformatshiv.com/&lt;br /&gt;
** github open source: https://github.com/glennjones/microformat-shiv&lt;br /&gt;
&lt;br /&gt;
==== PHP ====&lt;br /&gt;
* '''&amp;lt;span id=&amp;quot;php-mf2&amp;quot;&amp;gt;php-mf2&amp;lt;/span&amp;gt;''' - PHP microformats2 parser&lt;br /&gt;
** github open source: https://github.com/indieweb/php-mf2&lt;br /&gt;
** Packagist: https://packagist.org/packages/mf2/mf2&lt;br /&gt;
** live: &lt;br /&gt;
*** textarea entry: http://waterpigs.co.uk/php-mf2/&lt;br /&gt;
*** URL entry: https://pin13.net/mf2/&lt;br /&gt;
==== Python ====&lt;br /&gt;
* '''mf2py''' Python microformats2 parser&lt;br /&gt;
** main entry: [[mf2py]]&lt;br /&gt;
** github open source: https://github.com/tommorris/mf2py&lt;br /&gt;
** live: &lt;br /&gt;
*** URL entry: [https://mf2py.herokuapp.com/ mf2py.herokuapp.com]&lt;br /&gt;
*** textarea entry: https://kartikprabhu.com/connection/mfparser&lt;br /&gt;
*** another textarea: http://www.unmung.com/?html=&lt;br /&gt;
*** URL and/or textarea: https://kylewm.com/services/mf2&lt;br /&gt;
&lt;br /&gt;
==== Ruby ====&lt;br /&gt;
* '''G5/microformats2''' Ruby microformats2 parser&lt;br /&gt;
** github open source: https://github.com/G5/microformats2&lt;br /&gt;
&lt;br /&gt;
== Presentations ==&lt;br /&gt;
Presentations about microformats2:&lt;br /&gt;
* 2013-01-24 &amp;lt;cite&amp;gt;[http://waterpigs.co.uk/presentations/microformats-2/ Microformats 2]&amp;lt;/cite&amp;gt; presentation by [[User:Barnabywalters|Barnaby Walters]] at the [[events/2013-01-24-exeter-web-meetup|Exeter Web Meetup]] in Devon, UK.&lt;br /&gt;
* 2012-09-21 &amp;lt;cite&amp;gt;[http://tantek.com/presentations/2012/09/microformats2/ microformats2 &amp;amp;amp; bits of HTML5: The Evolution Of Web Data]&amp;lt;/cite&amp;gt; presentation by [[User:Tantek|Tantek Çelik]] ([http://twitter.com/t @t]) at [[events/2012-09-21-refreshlx|RefreshLX]] in Lisbon, Portugal.&lt;br /&gt;
* 2012-07-21 &amp;lt;cite&amp;gt;[http://tantek.com/presentations/2012/07/html5-uf2/ HTML5 and microformats2: The Evolution Of Web Data]&amp;lt;/cite&amp;gt; presentation by [[User:Tantek|Tantek Çelik]] ([http://twitter.com/t @t]) at [[events/2012-07-21-cascadesf|Innovators of the Web conference]] in San Francisco, CA.&lt;br /&gt;
* 2012-07-14 &amp;lt;cite&amp;gt;[http://tantek.com/presentations/2012/07/html5-microformats2/ HTML5 and microformats2: The Evolution Of Web Data]&amp;lt;/cite&amp;gt; presentation by [[User:Tantek|Tantek Çelik]] ([http://twitter.com/t @t]) at [[events/2012-07-14-open-web-camp-4|Open Web Camp IV]] in San Jose, CA.&lt;br /&gt;
&lt;br /&gt;
== Testimonials ==&lt;br /&gt;
* &amp;lt;blockquote class=&amp;quot;twitter-tweet&amp;quot;&amp;gt;To prove the web standards community can come up with better standards than the SE’s, compare this: http://microformats.org/wiki/microformats-2 with schema . org &amp;amp;mdash; Joost de Valk (@yoast) [https://twitter.com/yoast/status/298907685452124160 2013-02-05 13:35]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
* &amp;lt;blockquote class=&amp;quot;twitter-tweet&amp;quot;&amp;gt;... I’m hoping SE’s will pick up microformats2. It’s SO much cleaner. &amp;amp;mdash; Joost de Valk (@yoast) [https://twitter.com/yoast/status/298911287117758464 2013-02-05 13:49]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
* &amp;lt;blockquote class=&amp;quot;twitter-tweet&amp;quot;&amp;gt;... But damn Microformats2 are sexy. &amp;amp;mdash; Joost de Valk (@yoast) [https://twitter.com/yoast/status/298912179292344320 2013-02-05 13:53]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== About This Brainstorm ==&lt;br /&gt;
The rest of this page is a brainstorm currently written in narrative / exploratory format, that is, acknowledging the success that microformats have had, why so, and then a walk through of known issues with microformats in general along with iteration of ways to address said issues, ending up with the current microformats 2 design as a conclusion.&lt;br /&gt;
&lt;br /&gt;
The proposals build on each other resulting in a solution that addresses the vast majority of general issues. The proposed changes merit a major version number increment, hence microformats 2.&lt;br /&gt;
&lt;br /&gt;
This mathematical proof/derivation style is used to explicitly encourage understanding (and double-checking) of the rational steps taken in the development of microformats 2. Reasons are documented, sometimes along with alternatives considered (and reasons for rejection of those alternatives).&lt;br /&gt;
&lt;br /&gt;
When the microformats 2 brainstorm has evolved sufficiently to demonstrate some degree of stability, usability, and implementability, it will be rewritten in a more declarative specification style, and this narrative/derivation will be archived to a background development page for historical purposes.&lt;br /&gt;
&lt;br /&gt;
— [[User:Tantek|Tantek]]&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
2004: In early February microformats were introduced as a concept at eTech, and in September [[hCard]] and [[hCalendar]] were proposed at FOO Camp.&lt;br /&gt;
&lt;br /&gt;
2010:&lt;br /&gt;
* 34% of webdevs use microformats ([http://www.webdirections.org/sotw10/markup/#semantics 2010 State of Web Development survey])&lt;br /&gt;
* 1.88 billion hCards (per [[Yahoo]] SearchMonkey)&lt;br /&gt;
* 36 million hCalendar events (ibid)&lt;br /&gt;
&lt;br /&gt;
* XFN -&amp;gt; Social Graph API -&amp;gt; Web as Social Network / Address Book&lt;br /&gt;
&lt;br /&gt;
== Addressing Issues ==&lt;br /&gt;
=== AUTHORS and PUBLISHING ===&lt;br /&gt;
Authors and publishers are perhaps the most important constituency in the microformats community. There are more of them than there are developers, programmers, parsers, etc. and they're the ones that solved the chicken-egg problem by publishing microformats even before tools were available for consuming them.&lt;br /&gt;
&lt;br /&gt;
Therefore we must first address author/publisher general issues with microformats.&lt;br /&gt;
&lt;br /&gt;
==== can we make the simplest case simpler ====&lt;br /&gt;
Issue: '''How can we make it easier for authors to publish microformats?'''&lt;br /&gt;
&lt;br /&gt;
Currently the simplest hCard:&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;vcard&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;fn&amp;quot;&amp;gt;&lt;br /&gt;
    Chris Messina&lt;br /&gt;
  &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
requires 2 elements (nested, with perhaps at least one being pre-existing), and 2 class names.&lt;br /&gt;
&lt;br /&gt;
Web authors/designers are used to the simplicity of most HTML tags, e.g. to mark up a heading:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;Chris Messina&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
requires just 1 element.&lt;br /&gt;
&lt;br /&gt;
[http://zeldman.com/ Jeffrey Zeldman] pointed out this apparent perceived incremental complexity (2 elements vs 1) during a microformats workshop in 2009 in New York City.&lt;br /&gt;
&lt;br /&gt;
'''How can we make microformats just as easy?'''&lt;br /&gt;
&lt;br /&gt;
'''Proposal: allow root class name only.'''&lt;br /&gt;
&lt;br /&gt;
This would enable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;vcard&amp;quot;&amp;gt;Chris Messina&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
requiring only 1 class name for the simplest case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== renaming for usability ====&lt;br /&gt;
Otherwise known as, choosing one form of consistency over another.&lt;br /&gt;
&lt;br /&gt;
'''Can we do even better?'''&lt;br /&gt;
&lt;br /&gt;
One of the most common questions asked about hCard is:&lt;br /&gt;
&lt;br /&gt;
[[hcard-faq#Why_does_hCard_use_vcard_as_the_root_class_name|Why does hCard use vcard as the root class name?]]&lt;br /&gt;
&lt;br /&gt;
This slight inconsistency between the name of the format and the name of the root class name consistently causes confusion in a large percentage of newcomers to microformats.&lt;br /&gt;
* See [[issues#hcard-vs-vcard-name]] for details/links.&lt;br /&gt;
&lt;br /&gt;
Though in microformats we believe very strongly in the [[principle]] of [[reuse]], we have to admit that in this case experience/evidence has shown that this may be a case where we re-used something too far beyond it's original meaning. Thus:&lt;br /&gt;
&lt;br /&gt;
'''Proposal: use root class name &amp;quot;hcard&amp;quot; instead of &amp;quot;vcard&amp;quot; for future hCards.'''&lt;br /&gt;
&lt;br /&gt;
This would result in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;hcard&amp;quot;&amp;gt;Chris Messina&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
making the simple case even simpler:&lt;br /&gt;
&lt;br /&gt;
Just 1 additional class name, named the same as the format you're adding.  Think hCard, markup class=&amp;quot;hcard&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
At a minimum for compatibility we should document that parsers should accept &amp;quot;hcard&amp;quot; as an alternative to &amp;quot;vcard&amp;quot; as the root class name for hCard 1.0, and similarly for hCalendar 1.0: &amp;quot;hcalendar&amp;quot; in addition to &amp;quot;vcalendar&amp;quot;, &amp;quot;hevent&amp;quot; in addition to &amp;quot;vevent&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
However, for [[microformats-2]] we are going to distinguish root class names further by using an &amp;quot;h-&amp;quot; prefix (e.g. &amp;quot;h-card&amp;quot;). Read on to understand why.&lt;br /&gt;
&lt;br /&gt;
==== simplifying to only needing one element ====&lt;br /&gt;
It's very important for the simple case to be as simple as possible, to enable the maximum number of people to get started with minimum effort. (The idea of using a single class name for a microformat was proposed by Ryan Cannon in 2006 specifically [[hcard-implied|for hCard]], and rediscovered by [[User:Tantek|Tantek]] in 2010 and subsequently generalized to all microformats.)&lt;br /&gt;
&lt;br /&gt;
From there on, it's ok to require incremental effort for incremental return.&lt;br /&gt;
&lt;br /&gt;
E.g. to add any additional information about a person, add explicit property names.&lt;br /&gt;
&lt;br /&gt;
'''How does this simple root-only case work?'''&lt;br /&gt;
&lt;br /&gt;
* root class name reflects name of the microformat&lt;br /&gt;
* every microformat must require at most 1 property (preferably 0)&lt;br /&gt;
** admit that requiring a field in an application just results in noise (the 90210 problem - apps which require zip code get lots of false 90210 entries), and specify that any application use cases which appear to &amp;quot;require&amp;quot; specific properties must instead define how to imply sensible defaults for them.&lt;br /&gt;
* when only a root class name is specified, imply the entire text contents of the element as the value of the primary property of the microformat. e.g.&lt;br /&gt;
** &amp;quot;hcard&amp;quot; implies &amp;quot;fn&amp;quot;&lt;br /&gt;
** hcalendar event - &amp;quot;hevent&amp;quot; - implies &amp;quot;summary&amp;quot;&lt;br /&gt;
** &amp;quot;hreview&amp;quot; implies &amp;quot;summary&amp;quot;&lt;br /&gt;
** &amp;quot;hentry&amp;quot; implies &amp;quot;entry-summary&amp;quot; (perhaps collapse into &amp;quot;summary&amp;quot; - in practice they're not sufficiently semantically distinct to require separate property names)&lt;br /&gt;
** '''OR''' instead of making the one implied property be vocabulary specific, introduce a new generic (applicable to all vocabularies) 'p-name' property (subsuming hCard's 'fn'). See [[microformats-2-brainstorming#further_simplifications|microformats 2 brainstorming: further simplifications]] for latest thoughts along these lines, including the following specific mark-up implied generic properties across all microformats (based on existing published markup use-cases)&lt;br /&gt;
*** 'p-name'&lt;br /&gt;
*** 'u-url'&lt;br /&gt;
*** 'u-photo'&lt;br /&gt;
&lt;br /&gt;
==== flat sets of properties ====&lt;br /&gt;
'''What more can we simplify about microformats?'''&lt;br /&gt;
&lt;br /&gt;
Numerous individuals have provided the feedback that whenever there is more than one level of hierarchy in a microformat, many (most?) developers get confused - in particular Kavi Goel of Google / Rich Snippets provided this feedback at a microformats dinner.  Thus depending on multiple levels of hierarchy is likely resulting in a loss of authorability, perhaps even accuracy as confusion undoubtedly leads to more errors. Thus:&lt;br /&gt;
&lt;br /&gt;
'''Proposal: simplify all microformats to flat sets of properties. '''&lt;br /&gt;
&lt;br /&gt;
What this means:&lt;br /&gt;
* all microformats are simply an object with a set of properties with values.&lt;br /&gt;
* no more subproperties- drop the notion of subproperties.&lt;br /&gt;
* use composition of multiple microformats for any further hierarchy, e.g. the &amp;quot;location&amp;quot; of an hCalendar event can be an hCard, or the &amp;quot;agent&amp;quot; of one hCard can be another hCard.&lt;br /&gt;
&lt;br /&gt;
For example for hCard this would mean the following specific changes to keep relevant functionality:&lt;br /&gt;
* drop &amp;quot;n&amp;quot;, promote all &amp;quot;n&amp;quot; subproperties to full properties&lt;br /&gt;
** given-name, family-name, additional-name, honorific-prefix, honorific-suffix&lt;br /&gt;
* treat &amp;quot;geo&amp;quot; as a nested microformat&lt;br /&gt;
* treat &amp;quot;adr&amp;quot; as a nested microformat (what to do about adr's &amp;quot;type&amp;quot;?)&lt;br /&gt;
* treat &amp;quot;org&amp;quot; as a flat string and drop &amp;quot;organization-name&amp;quot; and &amp;quot;organization-unit&amp;quot; (in practice rarely used, also not revealed or ignored in contact management user interfaces - e.g. Address Book)&lt;br /&gt;
&lt;br /&gt;
Example: add a middle initial to the previous example Chris Messina's name, and markup each name component:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;hcard&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;fn&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;given-name&amp;quot;&amp;gt;Chris&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;abbr class=&amp;quot;additional-name&amp;quot;&amp;gt;R.&amp;lt;/abbr&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;family-name&amp;quot;&amp;gt;Messina&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
# use of an explicit span with &amp;quot;fn&amp;quot; to markup his entire formatted name&lt;br /&gt;
# use of the abbr element to explicitly indicate the semantic that &amp;quot;R.&amp;quot; is merely an abbreviation for his additional-name.&lt;br /&gt;
&lt;br /&gt;
==== distinguishing properties from other classes ====&lt;br /&gt;
Current microformats properties re-use generic terms like &amp;quot;summary&amp;quot;, &amp;quot;photo&amp;quot;, &amp;quot;updated&amp;quot; both for ease of use and understanding.&lt;br /&gt;
&lt;br /&gt;
However, through longer term experience, we've seen sites that accidentally drop (or break) their microformats support (e.g. Upcoming.org, Facebook) because web authors sometimes rewrite all their class names, and either are unaware that microformats were in the page, or couldn't easily distinguish microformats property class names from other site-specific class names.&lt;br /&gt;
&lt;br /&gt;
This issue has been reported by a number of web authors.&lt;br /&gt;
* See: [[issues#class-collisions]]&lt;br /&gt;
&lt;br /&gt;
Thus microformats 2 uses ''prefixes'' for property class names, e.g.:&lt;br /&gt;
* '''p-summary''' instead of ''summary''&lt;br /&gt;
* '''u-photo''' instead of ''photo'' &lt;br /&gt;
* '''dt-updated''' instead of ''updated''&lt;br /&gt;
&lt;br /&gt;
Such prefixing of all microformats class names was first suggested by Scott Isaacs of Microsoft to Tantek on a visit to Microsoft sometime in 2006/2007, but specifically aimed at making microformats easier to parse. At the time the suggestion was rejected since microformats were focused on web authors rather than parsers.&lt;br /&gt;
&lt;br /&gt;
However, since experience has shown that distinguishing property class names is an issue for '''both web authors and parser developers''', this is a key change that microformats 2 is adopting. See the next section for details.&lt;br /&gt;
&lt;br /&gt;
=== COMMUNITY and TOOLS ===&lt;br /&gt;
The second most important constituency in the microformats community are the developers, programmers, tool-makers.&lt;br /&gt;
&lt;br /&gt;
A non-trivial number of them have been sufficiently frustrated with some general issues with microformats that they've done the significant extra work to support very different and less friendly alternatives (microdata, RDFa). Based on this real-world data (market behavior), it behooves us to address these general issues with microformats for this constituency.&lt;br /&gt;
&lt;br /&gt;
==== existing microformats parsing requirements ====&lt;br /&gt;
COMMUNITY and TOOLS (that) USE MICROFORMATS &lt;br /&gt;
* parser / parsing&lt;br /&gt;
* structured&lt;br /&gt;
* getting the data out&lt;br /&gt;
* json - 1:1 mapping&lt;br /&gt;
&lt;br /&gt;
[[parsing]] microformats currently requires&lt;br /&gt;
# a list of root class names of each microformat to be parsed&lt;br /&gt;
# a list of properties for each specific microformats, along with knowledge of the type of each property in order to parse their data from potentially different portions of the HTML markup&lt;br /&gt;
# some number of format-specific specific rules (markup/content optimizations)&lt;br /&gt;
&lt;br /&gt;
This has meant that whenever a new microformat is drafted/specificied/adopted, parsers need to updated to handle it correctly, at a minimum to parse them when inside other microformats and avoid errantly implying properties from one to the other (containment, [[mfo]] problem).&lt;br /&gt;
&lt;br /&gt;
==== naming conventions for generic parsing ====&lt;br /&gt;
I think there is a fairly simple solution to #1 and #2 from the above list, and we can make progress towards minimizing #3.  In short:&lt;br /&gt;
&lt;br /&gt;
'''Proposal: a set of naming conventions for microformat root class names and properties that make it obvious when:'''&lt;br /&gt;
* a class name represents a microformat root class name&lt;br /&gt;
* a class name represents a microformat property name&lt;br /&gt;
* a class name represents a microformat property that needs special parsing (specific type of property).&lt;br /&gt;
&lt;br /&gt;
In particular - derived from the real world examples of existing proven microformats (rather than any abstraction of what a schema should have)&lt;br /&gt;
* '''&amp;quot;h-*&amp;quot; for root class names''', e.g. &amp;quot;h-card&amp;quot;, &amp;quot;h-event&amp;quot;, &amp;quot;h-entry&amp;quot;&lt;br /&gt;
** The 'h-' prefix is based on the existing microformats naming pattern of starting with 'h'.&lt;br /&gt;
* '''&amp;quot;p-*&amp;quot; for simple (text) properties''', e.g. &amp;quot;p-fn&amp;quot;, &amp;quot;p-summary&amp;quot;&lt;br /&gt;
** vocabulary generic parsing, element text in general, treat certain HTML element/attribute combination as special and use those first, e.g. img/alt, abbr/title.&lt;br /&gt;
** The 'p-' prefix is based on the word &amp;quot;property&amp;quot; starting with 'p'.&lt;br /&gt;
* '''&amp;quot;u-*&amp;quot; for URL properties''', e.g. &amp;quot;u-url&amp;quot;, &amp;quot;u-photo&amp;quot;, &amp;quot;u-logo&amp;quot;&lt;br /&gt;
** special parsing required: prefer a/href, img/src, object/data etc. attributes to element contents.&lt;br /&gt;
** The 'u-' prefix is based on URL/URI starting with the letter 'u', which is the type of most of these related properties.&lt;br /&gt;
* '''&amp;quot;dt-*&amp;quot; for datetime properties''', e.g. &amp;quot;dt-start&amp;quot;, &amp;quot;dt-end&amp;quot;, &amp;quot;dt-bday&amp;quot;&lt;br /&gt;
** special parsing required: [[value-class-pattern]], in particular separate date time value parsing for better human readabillity / DRY balance.&lt;br /&gt;
** The 'dt-' prefix is based on &amp;quot;date time&amp;quot; having the initials &amp;quot;dt&amp;quot; and the preponderance of existing date time properties starting with &amp;quot;dt&amp;quot;, e.g. dtstart, dtend, dtstamp, dtreviewed.&lt;br /&gt;
* '''&amp;quot;e-*&amp;quot; for element tree properties''' where the entire contained element hierarchy is the value, e.g. &amp;quot;e-content&amp;quot; (formerly &amp;quot;entry-content&amp;quot;) for [[hAtom]]. The 'e-' prefix can also be mnemonically remembered as &amp;quot;element tree&amp;quot;, &amp;quot;embedded markup&amp;quot;, or &amp;quot;encapsulated markup&amp;quot;.&lt;br /&gt;
** special parsing required: follow the [http://www.whatwg.org/specs/web-apps/current-work/multipage/the-end.html#serializing-html-fragments HTML spec: Serializing HTML Fragments algorithm] to create a serialization.&lt;br /&gt;
&lt;br /&gt;
This provides a simpler transition/education story for existing microformats authors/publishers: &lt;br /&gt;
* &amp;quot;h*&amp;quot; to &amp;quot;h-*&amp;quot;, &amp;quot;dt*&amp;quot; to &amp;quot;dt-*&amp;quot;, url-like properties to &amp;quot;u-*&amp;quot;, entire embedded markup to &amp;quot;e-*&amp;quot;, and &amp;quot;p-*&amp;quot; for all &amp;quot;plain text&amp;quot; properties.&lt;br /&gt;
&lt;br /&gt;
See [[microformats-2-prefixes]] for further thoughts and discussions on these and other class prefixes.&lt;br /&gt;
&lt;br /&gt;
Example: taking that simple heading hCard example forward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;h-card&amp;quot;&amp;gt;Chris Messina&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As part of microformats 2 we would immediately define root class names and property names for all existing microformats and drafts consistent with this naming convention, and require support thereof from all new implementations, as well as strongly encouraging existing implementations to adopt the simplified microformats 2 syntax and mechanism. Question: which microformats deserve explicit backward compatibility?&lt;br /&gt;
&lt;br /&gt;
As a community we would continue to use the microformats [[process]] both for researching and determining the need for new microformats, and for naming new microformat property names for maximum re-use and interoperability of a shared vocabulary.&lt;br /&gt;
&lt;br /&gt;
If it turns out we need a new property type in the future, we can use one of the remaining single-letter-prefixes to add it to microformats 2. This would require updating of parsers of course, but in practice the number of different types of properties has grown very slowly, and we know from other schema/programming languages that there's always some small limited number of scalar/atomic property types that you need, and using those you can create compound types/objects that represent richer / more complicated types of data. See [[microformats-2-prefixes]] for documentation of existing single-letter class name prefixes in practice.&lt;br /&gt;
&lt;br /&gt;
=== ADVANTAGES ===&lt;br /&gt;
This has numerous advantages:&lt;br /&gt;
* '''better maintainability''' - much more obvious to web authors/designers/publishers which class names are for/from microformats.&lt;br /&gt;
* '''no chance of collision''' - for all practical purposes with existing class names and thus avoiding any need to add more complex CSS style rules to prevent unintended styling effects.&lt;br /&gt;
* '''simpler parsing''' - parsers can now do a simple stream-parse (or in-order DOM tree walk) and parse out '''all''' microformat objects, properties, and values, without having to know anything about any specific microformats.&lt;br /&gt;
* '''separation of syntax and vocabulary''' - by abstracting microformats 2 syntax independent of any vocabulary, it allows and encourages development of shared vocabularies  that can work in alternative syntaxes.&lt;br /&gt;
&lt;br /&gt;
More examples: here is that same heading example with name components:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;p-fn&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-given-name&amp;quot;&amp;gt;Chris&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;abbr class=&amp;quot;p-additional-name&amp;quot;&amp;gt;R.&amp;lt;/abbr&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-family-name&amp;quot;&amp;gt;Messina&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with a hyperlink to Chris's URL:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;a class=&amp;quot;p-fn u-url&amp;quot; href=&amp;quot;http://factoryjoe.com/&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-given-name&amp;quot;&amp;gt;Chris&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;abbr class=&amp;quot;p-additional-name&amp;quot;&amp;gt;R.&amp;lt;/abbr&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-family-name&amp;quot;&amp;gt;Messina&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== COMPATIBILITY ===&lt;br /&gt;
&lt;br /&gt;
microformats 2 is backwards compatible in that in permits content authors to markup with both old and new class names for compatibility with old tools.&lt;br /&gt;
&lt;br /&gt;
Here is a simple example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;h-card vcard&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;fn&amp;quot;&amp;gt;Chris Messina&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a microformats 2 parser would see the class name &amp;quot;h-card&amp;quot; and imply the one required property from the contents, while a microformats 1.0 parser would find the class name &amp;quot;vcard&amp;quot; and then look for the class name &amp;quot;fn&amp;quot;. no data duplication is required. this is a very important continuing application of the &amp;lt;abbr title=&amp;quot;don't repeat yourself&amp;quot;&amp;gt;DRY&amp;lt;/abbr&amp;gt; [[principle]].&lt;br /&gt;
&lt;br /&gt;
And the above hyperlinked example with both sets of class names:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;h-card vcard&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;a class=&amp;quot;p-fn u-url n fn url&amp;quot; href=&amp;quot;http://factoryjoe.com/&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-given-name given-name&amp;quot;&amp;gt;Chris&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;abbr class=&amp;quot;p-additional-name additional-name&amp;quot;&amp;gt;R.&amp;lt;/abbr&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-family-name family-name&amp;quot;&amp;gt;Messina&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== VENDOR EXTENSIONS ===&lt;br /&gt;
&lt;br /&gt;
(this section was only discussed verbally and not written up during discussions - capturing here as it is topical)&lt;br /&gt;
&lt;br /&gt;
Proprietary extensions to formats have typically been shortlived experimental failures with one big recent exception.&lt;br /&gt;
&lt;br /&gt;
Proprietary or experimental CSS3 property implementations have been very successful.&lt;br /&gt;
&lt;br /&gt;
There has been much use of border radius properties and animations/transitions which use CSS properties with vendor-specific prefixes like:&lt;br /&gt;
&lt;br /&gt;
* -moz-border-radius&lt;br /&gt;
* -webkit-border-radius&lt;br /&gt;
&lt;br /&gt;
etc.&lt;br /&gt;
&lt;br /&gt;
Note that these are merely string '''prefixes''', not bound to any URL, and thus not namespaces in any practical sense of the word.  This is quite an important distinction, as avoiding the need to bind to a URL has made them easier to support and use.&lt;br /&gt;
&lt;br /&gt;
This use of vendor specific CSS properties has in recent years allowed the larger web design/development/implementor communities to experiment and iterate on new CSS features while the features were being developed and standardized.&lt;br /&gt;
&lt;br /&gt;
The benefits have been two-fold:&lt;br /&gt;
* designers have been able to make more attractive sites sooner (at least in some browsers)&lt;br /&gt;
* features have been market / real-world tested before being fully standardized, thus resulting in better features&lt;br /&gt;
&lt;br /&gt;
Implementers have used/introduced &amp;quot;x-&amp;quot; prefixes for IETF MIME/content-types for experimental content-types, MIME parameter extensions, and HTTP header extensions, per RFC 2045 Section 6.3, RFC 3798 section 3.3, and [https://secure.wikimedia.org/wikipedia/en/wiki/List_of_HTTP_header_fields#Common_non-standard_headers Wikipedia: HTTP header fields - non-standard headers] (could use RFC reference instead) respectively, like:&lt;br /&gt;
&lt;br /&gt;
* application/x-latex (per [https://secure.wikimedia.org/wikipedia/en/wiki/Internet_media_type#Type_x Wikipedia Internet media type: Type x])&lt;br /&gt;
* x-spam-score (in email headers)&lt;br /&gt;
* X-Pingback (per [http://en.wikipedia.org/wiki/Pingback Wikipedia:Pingback])&lt;br /&gt;
&lt;br /&gt;
Some standard types started as experimental &amp;quot;x-&amp;quot; types, thus demonstrating this experiment first, standardize later approach has worked for at least some cases:&lt;br /&gt;
&lt;br /&gt;
* image/x-png (standardized as image/png, both per [http://tools.ietf.org/html/rfc2083 RFC2083])&lt;br /&gt;
&lt;br /&gt;
There have been times when specific sites have wanted to extend microformats beyond what the set of properties in the microformat, and currently lack any '''experimental''' way to do so - to try and see if a feature (or even a whole format) is interesting in the real world before bothering to pursue researching and walking it through the microformats process.  Thus:&lt;br /&gt;
&lt;br /&gt;
'''Proposal:'''&lt;br /&gt;
* '*-x-' + '-' + meaningful name for root and property class names&lt;br /&gt;
** where &amp;quot;*&amp;quot; indicates the single-character-prefix as defined above&lt;br /&gt;
** where &amp;quot;x&amp;quot; indicates a literal 'x' for an experimental extension OR&lt;br /&gt;
** OR &amp;quot;x&amp;quot; indicates a vendor prefix (more than one character, e.g. like CSS vendor extension abbreviations, or some stock symbols, avoiding first words/phrases/abbreviations of microformats properties like dt-)&lt;br /&gt;
** e.g.&lt;br /&gt;
** &amp;quot;h-bigco-one-ring&amp;quot; - a hypothetical &amp;quot;bigco&amp;quot; vendor-specific &amp;quot;one-ring&amp;quot; microformat root class name.&lt;br /&gt;
** &amp;quot;p-goog-preptime&amp;quot; - to represent [http://www.google.com/support/webmasters/bin/answer.py?answer=173379 Google's &amp;quot;preptime&amp;quot; property extension] to [[hRecipe]] (aside: &amp;quot;duration&amp;quot; may be another property type to consider separate from &amp;quot;datetime&amp;quot; as it may be subject to different parsing rules.)&lt;br /&gt;
** &amp;quot;p-x-prep-time&amp;quot; - a possible experimental property name to be added to hRecipe upon consideration/documentation of real-world usage/uptake.&lt;br /&gt;
&lt;br /&gt;
Background - this proposal is a composition of the following (at least somewhat) successful vendor extension syntaxes&lt;br /&gt;
* [http://www.w3.org/TR/CSS21/syndata.html#vendor-keywords CSS 2.1 4.1.2.1 Vendor-specific extensions]&lt;br /&gt;
* IETF MIME/content-type &amp;quot;x-*&amp;quot; extensions per RFC 2045 Section 6.3. [http://en.wikipedia.org/wiki/Internet_media_type]&lt;br /&gt;
* IETF MIME experimental fields (e.g. x-spam-score)&lt;br /&gt;
* HTTP header extensions (e.g. x-pingback)&lt;br /&gt;
* note also [http://www.mnot.net/blog/2009/02/18/x- some critical thoughts from mnot]&lt;br /&gt;
&lt;br /&gt;
=== USERS ===&lt;br /&gt;
Need more tools and interfaces that:&lt;br /&gt;
* publish&lt;br /&gt;
* copy/paste&lt;br /&gt;
* right-click on a microformat&lt;br /&gt;
* share&lt;br /&gt;
* search results&lt;br /&gt;
&lt;br /&gt;
discussed some existing like: [[H2VX]] converts hCard to vCard, hCalendar to iCalendar&lt;br /&gt;
&lt;br /&gt;
how would we re-implement Live Clipboard today, making it easier for publishers and developers?&lt;br /&gt;
&lt;br /&gt;
=== SEE ALSO ===&lt;br /&gt;
* [[microformats2]]&lt;br /&gt;
* [[microformats2-brainstorming]] - moving more experimental / undeveloped / and rejected thoughts ideas here to simplify/progress *this* page further.&lt;br /&gt;
* [[microformats2-experimental-properties]] - listing experimental (-x- prefixed) properties and their use&lt;br /&gt;
* [[microformats2-prefixes]]&lt;br /&gt;
* [[microformats2-faq]]&lt;br /&gt;
* [[microformats2-parsing]]&lt;br /&gt;
* 2010-05-02 [[events/2010-05-02-microformats-2-0|microformats 2.0 discussion session at FOO East]]&lt;/div&gt;</summary>
		<author><name>Myfreeweb</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=gender-examples&amp;diff=65186</id>
		<title>gender-examples</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=gender-examples&amp;diff=65186"/>
		<updated>2015-08-22T20:16:10Z</updated>

		<summary type="html">&lt;p&gt;Myfreeweb: /* discussion elsewhere */ Add link to #genderUX&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;gender examples&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page documents how people currently publish [[gender]] information on the web (sometimes implicitly - so not easily machine parsable - such as names (Andrew, Andrea), titles (Mr, Mrs, Miss), relationships (husband, brother), pronouns (he, she), etc.)), and what gender terms are supported by current web user interfaces.  This research will hopefully be useful to the [[genealogy]] microformat effort, as well as efforts to [[vcard-suggestions|extend vCard]], and therefore [[hcard|hCard]].&lt;br /&gt;
&lt;br /&gt;
== examples ==&lt;br /&gt;
These examples are based on two primary sources of real world web site usage (e.g. on social network sites)&lt;br /&gt;
&lt;br /&gt;
* user interfaces for editing (and displaying) [[user profile]] information&lt;br /&gt;
* user interfaces for doing faceted (field-based) search based on value(s) of a gender (or sex) field.&lt;br /&gt;
&lt;br /&gt;
== sites and services ==&lt;br /&gt;
&lt;br /&gt;
Social network sites typically publish the gender of the individual.&lt;br /&gt;
&lt;br /&gt;
Sites and services that allow users to enter and publish their gender. Please add to this list.&lt;br /&gt;
&lt;br /&gt;
In alphabetical order:&lt;br /&gt;
* [https://bagcheck.com/blog/01-the-gender-question Bagcheck] chose to ask which pronoun you want to use:&lt;br /&gt;
** Preferred Possessive Pronoun: ( )Her ( )His ( )Their&lt;br /&gt;
* [http://crush3r.com/ Crusher]'s [http://crush3r.com/account Edit My Account](requires login) page combines gender and person vs organization distinction in an interesting type picker among girl, boy, band, or other with a field.&lt;br /&gt;
** Type: ( ) Girl  ( ) Boy  ( ) Band  ( ) Other: [______]&lt;br /&gt;
* Canada Council for the Arts (need citation to specific sign-up form URL) - [https://twitter.com/heathr/status/189492984188903424 according to Heather Gold]:&lt;br /&gt;
** Female, Male, Transgender, Other (please specify), No answer, Please specify [______]&lt;br /&gt;
** [http://twitter.com/#!/heathr/status/189492984188903424/photo/1/large http://p.twimg.com/AqE23XpCIAArFWA.png]&lt;br /&gt;
* [http://digg.com/ Digg]'s [http://digg.com/settings/about About Me settings page](requires login) has a Gender popup that appears to be inspired by Pownce's list:&lt;br /&gt;
** Guy, Girl, Dude, Lady, Fellow, Bird, Chap, grrrl, Gentleman, Damsel, Male, Female, Transgender, None of the Above&lt;br /&gt;
* [https://www.flirtbox.co.uk/hotornot.php?gender=f flirtbox]: &amp;quot;Women&amp;quot; and &amp;quot;girls&amp;quot;&lt;br /&gt;
* [http://www.eharmony.co.uk/ eHarmony]: &amp;quot;Woman&amp;quot; or &amp;quot;Man&amp;quot;&lt;br /&gt;
* [http://facebook.com facebook.com]: changed from &amp;quot;Male/Female&amp;quot; to Male/Female/Custom&amp;quot; on 2014-02-13&lt;br /&gt;
** custom must be from one of 56 choices, despite being a  free-entry text box - &lt;br /&gt;
** (Agender, Androgyne, Androgynous, Bigender, Cis, Cisgender, Cis Female, Cis Male, Cis Man, Cis Woman, Cisgender Female, Cisgender Male, Cisgender Man, Cisgender Woman, Female to Male, FTM, Gender Fluid, Gender Nonconforming, Gender Questioning, Gender Variant, Genderqueer, Intersex, Male to Female, MTF, Neither, Neutrois, Non-binary, Other, Pangender, Trans, Trans*, Trans Female, Trans* Female, Trans Male, Trans* Male, Trans Man, Trans* Man, Trans Person, Trans* Person, Trans Woman, Trans* Woman, Transfeminine, Transgender, Transgender Female, Transgender Male, Transgender Man, Transgender Person, Transgender Woman, Transmasculine, Transsexual, Transsexual Female, Transsexual Male, Transsexual Man, Transsexual Person, Transsexual Woman, Two-Spirit)&lt;br /&gt;
** list from [http://www.slate.com/blogs/future_tense/2014/02/13/facebook_custom_gender_options_here_are_all_56_custom_options.html Will Oremus at Slate]&lt;br /&gt;
* [http://www.gay.com/ gay.com]: &amp;quot;Male&amp;quot;, &amp;quot;Female&amp;quot;, &amp;quot;MTF&amp;quot; and &amp;quot;FTM&amp;quot;.&lt;br /&gt;
* http://www.adam4adam.com/: &amp;quot;Male&amp;quot;, &amp;quot;Female&amp;quot;&lt;br /&gt;
* [https://plus.google.com Google+]:&lt;br /&gt;
** before 2014-12-10: Male, Female, Other&lt;br /&gt;
** after 2014-12-10: Male, Female, Decline to State, Custom - if Custom selected, a freeform text field is enabled to put in your gender. [https://plus.google.com/app/basic/stream/z12iz5ajslvxe3mup23nud451xfqcfj4l04 Post by Rachael Bennett]&lt;br /&gt;
* [http://www.livejournal.com/ LiveJournal]'s [http://www.livejournal.com/manage/profile/ Edit Profile](requires login) page provides a popup menu for gender with the values in order:&lt;br /&gt;
** (Unspecified), Male, Female&lt;br /&gt;
* [http://ma.gnolia.com Ma.gnolia]'s [http://ma.gnolia.com/account/profile Edit Your Profile on Ma.gnolia](requires login) page provides a popup menu for gender with the values in order:&lt;br /&gt;
** Female, Male, Other&lt;br /&gt;
* MediaWiki.org&lt;br /&gt;
** Radio button choice on Preferences: &amp;quot;(I prefer not to say)&amp;quot;, &amp;quot;She edits wiki pages&amp;quot;, &amp;quot;He edits wiki pages&amp;quot;&lt;br /&gt;
** [https://phabricator.wikimedia.org/T61643 Phabricator thread on non-binary gender preferences]&lt;br /&gt;
*[http://metatalk.metafilter.com/20050/Gender-Go-nuts-Somebody-did#838160 Cortex histogrammed] [http://metafilter.com metafilter's] 10-year-old free-form gender field- [http://stuff.metafilter.com/genders/genderfield.txt data dump]&lt;br /&gt;
** The first entry is blank/null fields; the difference between that and &amp;quot;total records&amp;quot; is the number of people who have put anything at all in the field: 9,325 mefites have as of a few minutes ago put something in that field. Reckoning from the previous note, that means that something like 17-18% of users have actually elected to put something in that field at some point in their membership here. &lt;br /&gt;
** Of the folks who have something in that field, just over 60% use one of the top four options: &amp;quot;male&amp;quot;, &amp;quot;female&amp;quot;, &amp;quot;m&amp;quot;, or &amp;quot;f&amp;quot;.&lt;br /&gt;
** Of the top dozen or so unambiguous labels provided, male-identifying terms (male, m, dude, xy, boy, guy, man, mail) account for about 49% of total labels used; female-identifying terms (female, f, lady, girl, xx, femme, chick) account for about 18%.&lt;br /&gt;
*[http://myspace.com/ MySpace.com] used to only allow male or female. There was a protest on MySpace by some genderqueer users who would put the word &amp;quot;genderqueer&amp;quot; into irrelevant metadata fields as a form of symbolic protest (source: tommorris' memory, [http://www.reddit.com/r/genderqueer/comments/1xtkq5/facebook_recognizes_nonbinary_genders_now/cfestqf reddit comment from tommorris])&lt;br /&gt;
*[http://www.okcupid.com/ OKCupid] - &amp;quot;I'm male&amp;quot; and &amp;quot;I'm female&amp;quot;&lt;br /&gt;
** This has led to a change.org petition: [https://www.change.org/petitions/ensure-that-all-okcupid-users-are-able-to-comfortably-identify-their-gender-and-sexual-orientation Ensure that all OkCupid users are able to comfortably identify their gender and sexual orientation!]&lt;br /&gt;
** In 2014-11, OKCupid modified the gender and sexuality options. You can now select up to five from each of the following lists&lt;br /&gt;
*** Gender: Woman, Man, Agender, Androgynous, Bigender, Cis Man, Cis Woman, Genderfluid, Genderqueer, Gender Nonconforming, Hijra, Intersex, Non-binary, Other, Pangender, Transfeminine, Transgender, Transmasculine, Transsexual, Trans Man, Trans Woman, Two Spirit &lt;br /&gt;
*** Sexuality: Straight, Gay, Bisexual, Asexual, Demisexual, Heteroflexible, Homoflexible, Lesbian, Pansexual, Queer, Questioning, Sapiosexual&lt;br /&gt;
*** Source: [http://www.pinknews.co.uk/2014/11/16/okcupid-begins-rolling-out-new-sexuality-and-gender-options/ pinknews.co.uk]&lt;br /&gt;
*[http://openid.net/specs/openid-attribute-exchange-1_0.html OpenID's Attribute Exchange] includes gender&lt;br /&gt;
* [http://pof.com/ POF]: &amp;quot;Male&amp;quot; or &amp;quot;Female&amp;quot;&lt;br /&gt;
* [http://pownce.com/ Pownce]'s [http://pownce.com/settings/ Profile Settings](requires login) interface has a Gender popup with the following values in order:&lt;br /&gt;
** Guy, Girl, Dude, Chicky-poo, Bloke, Bird, Lady, Gentleman, Male, Female, Transgender, None of the Above&lt;br /&gt;
* [http://blog.xkcd.com/2010/05/06/sex-and-gender/ XKCD] used 'do you have a Y chromosome?' as they were studying colour blindness&lt;br /&gt;
&lt;br /&gt;
== government/healthcare ==&lt;br /&gt;
&lt;br /&gt;
* NHS Family doctor services registration form ([http://www.nhs.uk/servicedirectories/documents/gms1.pdf GMS1]): male, female&lt;br /&gt;
** Individual medical practices may supplement this form with their own registration form. Some allow for non-binary options for trans and intersex individuals...&lt;br /&gt;
** [http://www.belgravia-surgery-sw1.nhs.uk/website/E87005/files/Under_16s_New_Patient_Questionnaire_-The_Belgravia_Surgery.pdf Belgravia Surgery] (PDF) SW1: Male or Female&lt;br /&gt;
** [http://www.chelwest.nhs.uk/services/hiv-sexual-health/clinics/56-dean-street Dean Street sexual health clinic]: as part of their computerised registration process, they ask whether you are transgender. If you answer 'no', they then ask whether you are male or female. This is used to determine which medical tests are conducted.&lt;br /&gt;
** [http://www.marvenmedicalpractice.co.uk/ Marven Medical Practice], SW1V: &amp;quot;male&amp;quot;, &amp;quot;female&amp;quot;, &amp;quot;indeterminate&amp;quot;&lt;br /&gt;
** [http://www.northamsurgery.nhs.uk/website/L83050/files/NORTHAM_SURGERY_New_Born_Registration_Form.pdf Northam Surgery] (PDF): Male or Female&lt;br /&gt;
** [http://www.sexualhealthoxfordshire.nhs.uk/wp-content/uploads/2014/03/registration.pdf Sexual Health Oxfordshire] (PDF): Male or Female&lt;br /&gt;
** [http://www.gowerplacepractice.nhs.uk/website/F83043/files/UCL-Students-Health-Registration-Form-Protected.pdf UCL Students Health Registration Form] (PDF): Male or Female&lt;br /&gt;
** [http://www.yorksurgeryilford.nhs.uk/website/F86657/files/New_Patient_Registration_Form_2013.pdf York Surgery, Ilford] (PDF): Male or Female&lt;br /&gt;
&lt;br /&gt;
== discussion elsewhere ==&lt;br /&gt;
* [http://www.myspace.com/queering_gender Because gender isn't binary]&lt;br /&gt;
* [http://community.livejournal.com/feminist/2925885.html Social networking sites &amp;amp; gender identity]&lt;br /&gt;
* [https://meta.wikimedia.org/wiki/Survey_best_practices Survey best practices] on meta.wikimedia.org&lt;br /&gt;
* [http://www.glaad.org/transgender/trans101 Transgender 101], GLAAD&lt;br /&gt;
* [https://tranarchism.wordpress.com/2010/11/26/not-your-moms-trans-101/ Not Your Mom's Trans 101], Asher at Tranarchism&lt;br /&gt;
* [https://blog.wikimedia.org/2015/03/09/gender-as-a-text-field/ Gender as a text field: What Wikipedia can learn from Facebook], Amanda Menking, Wikimedia Blog, 2015-03-09&lt;br /&gt;
* [http://43epnd.axshare.com/gender.html #genderUX – Some guiding principles for handling gender on forms]&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[gender]]&lt;br /&gt;
* [[gender-formats]]&lt;br /&gt;
* [[gender-brainstorming]]&lt;br /&gt;
* [[profile-examples]]&lt;br /&gt;
&lt;br /&gt;
== related ==&lt;br /&gt;
* [[genealogy]]&lt;br /&gt;
* [[hcard|hCard]]&lt;br /&gt;
* [[vcard-suggestions]]&lt;/div&gt;</summary>
		<author><name>Myfreeweb</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=hatom&amp;diff=46005</id>
		<title>hatom</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=hatom&amp;diff=46005"/>
		<updated>2012-04-15T09:42:45Z</updated>

		<summary type="html">&lt;p&gt;Myfreeweb: /* Implementations */ The proxy is 410 Gone&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;hAtom 0.1&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
{{Template:DraftSpecification}}&lt;br /&gt;
&lt;br /&gt;
hAtom is a microformat for content that can be syndicated, primarily but not exclusively weblog postings. hAtom is based on a subset of the [http://www.atomenabled.org/ Atom] syndication format. hAtom will be one of several [[microformats]] open standards.&lt;br /&gt;
__TOC__&lt;br /&gt;
== Draft Specification ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;vcard&amp;quot;&amp;gt;&lt;br /&gt;
;&amp;lt;span class=&amp;quot;role&amp;quot;&amp;gt;Editor/Author&amp;lt;/span&amp;gt;&lt;br /&gt;
:&amp;lt;span class=&amp;quot;fn&amp;quot;&amp;gt;[http://blogmatrix.blogmatrix.com/ David Janes]&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;org&amp;quot;&amp;gt;([http://www.blogmatrix.com BlogMatrix, Inc.])&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Contributors&lt;br /&gt;
:&amp;lt;span class=&amp;quot;vcard&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fn&amp;quot;&amp;gt;[http://members.optusnet.com.au/benjamincarlyle/benjamin/blog/ Benjamin Carlyle]&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
:&amp;lt;span class=&amp;quot;vcard&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fn&amp;quot;&amp;gt;[[User:Tantek|Tantek Çelik]]&amp;lt;/span&amp;gt; (&amp;lt;span class=&amp;quot;url&amp;quot;&amp;gt;http://tantek.com/&amp;lt;/span&amp;gt; and before at [http://technorati.com Technorati, Inc.])&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[hatom#Copyright|copyright]] and [[hatom#Patents|patents]] statements apply.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
hAtom 0.1 is a microformats.org draft specification. Public discussion on hAtom takes place on [[hatom-feedback]], the #microformats [[irc]] channel on irc.freenode.net, and [http://microformats.org/discuss/mail/microformats-discuss/ microformats-discuss mailing list].&lt;br /&gt;
&lt;br /&gt;
=== Available languages ===&lt;br /&gt;
The English version of this specification is the only normative version. For translations of this document see the [[#translations]] section.&lt;br /&gt;
&lt;br /&gt;
=== Errata and Updates ===&lt;br /&gt;
Known errors and issues in this specification are corrected in [[hatom-issues-resolved|resolved]] and [[hatom-issues-closed|closed]] issues. Please check there before reporting [[hatom-issues|issues]].&lt;br /&gt;
&lt;br /&gt;
The hAtom 0.2 update is currently under development and incorporates known errata corrections as well as the [[value-class-pattern]].&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
hAtom is a [[microformat]] for identifying semantic information in weblog posts and practically any other place [http://www.atomenabled.org/ Atom] may be used, such as news articles. hAtom content is easily added to most blogs by simple modifications to the blog's template definitions.&lt;br /&gt;
&lt;br /&gt;
{{rfc-2119-intro}}&lt;br /&gt;
&lt;br /&gt;
== Semantic XHTML Design Principles ==&lt;br /&gt;
{{semantic-xhtml-design-principles}}&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
=== In General ===&lt;br /&gt;
The [http://atomenabled.org/developers/syndication/#person Atom Syndication Format] provides the conceptual basis for this microformat, with the following caveats:&lt;br /&gt;
&lt;br /&gt;
* Atom provides a lot more functionality than we need for a &amp;quot;blog post&amp;quot; microformat, so we've taken the minimal number of elements needed.&lt;br /&gt;
* the &amp;quot;logical&amp;quot; model of hAtom is that of Atom. If there is a conflict, Atom should be taken as correct.&lt;br /&gt;
* the &amp;quot;physical&amp;quot; model of hAtom -- the actual writing of elements -- is a lot more varied than Atom provides for, due to the variety of ways weblogs are actually produced in the wild. The hAtom microformat provides a number of rules for &amp;quot;bridging the gap&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Schema ===&lt;br /&gt;
Schema elements are based on the Atom nomenclature and follow the microformat pattern of prefixing a unique identifier (in this case, '&amp;lt;code&amp;gt;h&amp;lt;/code&amp;gt;') on the outermost container elements -- the Feed or Entry. The parts of this microformat are based on analysis of many weblog, bulletin board and media posts and can be read [[blog-post-brainstorming#Discovered_Elements]].&lt;br /&gt;
&lt;br /&gt;
The hAtom schema consists of the following:&lt;br /&gt;
&lt;br /&gt;
* hfeed ('''&amp;lt;code&amp;gt;hfeed&amp;lt;/code&amp;gt;'''). optional.&lt;br /&gt;
** '''&amp;lt;code&amp;gt;feed category&amp;lt;/code&amp;gt;'''. optional. keywords or phrases, using '''[[rel-tag]]'''.&lt;br /&gt;
** [[hentry]] ('''&amp;lt;code&amp;gt;hentry&amp;lt;/code&amp;gt;'''). &lt;br /&gt;
*** '''&amp;lt;code&amp;gt;entry-title&amp;lt;/code&amp;gt;'''. required. text.&lt;br /&gt;
*** '''&amp;lt;code&amp;gt;entry-content&amp;lt;/code&amp;gt;'''. optional (see field description). text. [*]&lt;br /&gt;
*** '''&amp;lt;code&amp;gt;entry-summary&amp;lt;/code&amp;gt;'''. optional. text.&lt;br /&gt;
*** '''&amp;lt;code&amp;gt;updated&amp;lt;/code&amp;gt;'''. required using [[datetime-design-pattern]]. [*]&lt;br /&gt;
*** '''&amp;lt;code&amp;gt;published&amp;lt;/code&amp;gt;'''. optional using [[datetime-design-pattern]].&lt;br /&gt;
*** '''&amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt;'''. required using '''[[hcard|hCard]]'''. [*]&lt;br /&gt;
*** '''&amp;lt;code&amp;gt;bookmark&amp;lt;/code&amp;gt;''' (permalink). optional, using '''[[rel-bookmark]]'''.&lt;br /&gt;
*** tags. optional. keywords or phrases, using '''[[rel-tag]]'''.&lt;br /&gt;
&lt;br /&gt;
[*] Some required elements have defaults if missing, see below.&lt;br /&gt;
&lt;br /&gt;
=== Field and Element Details ===&lt;br /&gt;
&lt;br /&gt;
===== Feed =====&lt;br /&gt;
* a Feed element is identified by the class name &amp;lt;code&amp;gt;hfeed&amp;lt;/code&amp;gt;&lt;br /&gt;
* a Feed element represents the concept of an [http://www.atomenabled.org/developers/syndication/atom-format-spec.php#rfc.section.4.1.1 Atom feed]&lt;br /&gt;
* the Feed element is optional and, if missing, is assumed to be the page&lt;br /&gt;
* hAtom documents {{may}} have multiple Feed elements&lt;br /&gt;
&lt;br /&gt;
===== Feed Category =====&lt;br /&gt;
* a Feed Category element is identified by [[rel-tag]]&lt;br /&gt;
* a Feed {{may}} have a Feed Category&lt;br /&gt;
* a Feed Category element represents the concept of an [http://www.atomenabled.org/developers/syndication/atom-format-spec.php#rfc.section.4.2.2 Atom category] inside a [http://www.atomenabled.org/developers/syndication/#optionalFeedElements feed]&lt;br /&gt;
* Feed Category elements {{must}} appear inside a Feed element but not inside an Entry element&lt;br /&gt;
* the [[rel-tag]] &amp;lt;code&amp;gt;href&amp;lt;/code&amp;gt; encodes the atom &amp;lt;code&amp;gt;category:term&amp;lt;/code&amp;gt;; the link text defines the atom &amp;lt;code&amp;gt;category:label&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Entry =====&lt;br /&gt;
* an Entry element is identified by class name &amp;lt;code&amp;gt;hentry&amp;lt;/code&amp;gt;&lt;br /&gt;
* an Entry element represents the concept of an [http://www.atomenabled.org/developers/syndication/atom-format-spec.php#rfc.section.4.1.2 Atom entry]&lt;br /&gt;
* any microformat content inside a &amp;lt;code&amp;gt;&amp;amp;lt;blockquote&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;amp;lt;q&amp;gt;&amp;lt;/code&amp;gt; element within the Entry should not be considered part of the Entry.&lt;br /&gt;
: ''This allows quoting other microformated data without worry of corrupting the model''&lt;br /&gt;
&lt;br /&gt;
===== Entry Category =====&lt;br /&gt;
* an Entry Category element is identified by [[rel-tag]]&lt;br /&gt;
* an Entry {{may}} have an Entry Category&lt;br /&gt;
* an Entry Category element represents the concept of an [http://www.atomenabled.org/developers/syndication/atom-format-spec.php#rfc.section.4.2.2 Atom category] inside an [http://www.atomenabled.org/developers/syndication/#optionalEntryElements entry]&lt;br /&gt;
* the [[rel-tag]] &amp;lt;code&amp;gt;href&amp;lt;/code&amp;gt; encodes the atom &amp;lt;code&amp;gt;category:term&amp;lt;/code&amp;gt;; the link text defines the atom &amp;lt;code&amp;gt;category:label&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Entry Title =====&lt;br /&gt;
* an Entry Title element is identified by the class name &amp;lt;code&amp;gt;entry-title&amp;lt;/code&amp;gt;&lt;br /&gt;
* an Entry {{should}} have an Entry Title&lt;br /&gt;
* an Entry Title element represents the concept of an [http://www.atomenabled.org/developers/syndication/atom-format-spec.php#rfc.section.4.2.14 Atom entry title]&lt;br /&gt;
* if the Entry Title is missing, use&lt;br /&gt;
** the first &amp;lt;code&amp;gt;&amp;amp;lt;h#&amp;gt;&amp;lt;/code&amp;gt; element in the Entry, or&lt;br /&gt;
** the &amp;lt;code&amp;gt;&amp;amp;lt;title&amp;gt;&amp;lt;/code&amp;gt; of the page, if there is no enclosing Feed element, or&lt;br /&gt;
** assume it is the empty string&lt;br /&gt;
&lt;br /&gt;
===== Entry Content =====&lt;br /&gt;
* an Entry Content element is identified by class name &amp;lt;code&amp;gt;entry-content&amp;lt;/code&amp;gt;&lt;br /&gt;
* an Entry {{should}} have Entry Content&lt;br /&gt;
* an Entry Content element represents the concept of an [http://www.atomenabled.org/developers/syndication/atom-format-spec.php#atomContent Atom content]&lt;br /&gt;
* an Entry {{may}} have 0 or more Entry Content elements. The &amp;quot;logical Entry Content&amp;quot; of an Entry is the concatenation, in order of appearance, of all the Entry Contents within the Entry&lt;br /&gt;
: ''Many web logs split content into multiple sections with a &amp;quot;Read More&amp;quot; link and JavaScript tricks. This is also needed in cases where Entry Titles are coded in-line and are considered part of the content.''&lt;br /&gt;
* if the Entry Content is missing, assume it is the empty string&lt;br /&gt;
&lt;br /&gt;
===== Entry Summary =====&lt;br /&gt;
* an Entry Summary element is identified by class name &amp;lt;code&amp;gt;entry-summary&amp;lt;/code&amp;gt;&lt;br /&gt;
* an Entry Summary element represents the concept of an [http://www.atomenabled.org/developers/syndication/atom-format-spec.php#rfc.section.4.2.13 Atom summary]&lt;br /&gt;
* an Entry {{may}} have 0 or more Entry Summary elements. The &amp;quot;logical Entry Summary&amp;quot; of an Entry is the concatenation, in order of appearance, of all the Entry Summarys within the Entry&lt;br /&gt;
&lt;br /&gt;
===== Entry Permalink =====&lt;br /&gt;
* an Entry Permalink element is identified by [[rel-bookmark]]&lt;br /&gt;
* an Entry {{should}} have an Entry Permalink&lt;br /&gt;
* an Entry Permalink element represents the concept of an [http://www.atomenabled.org/developers/syndication/atom-format-spec.php#rfc.section.4.2.7 Atom link in an entry]&lt;br /&gt;
* if the Entry Permalink is missing, use the URI of the page; if the Entry has an &amp;quot;id&amp;quot; attribute, add that as a fragment to the page URI to distinguish individual entries&lt;br /&gt;
&lt;br /&gt;
===== Entry Updated =====&lt;br /&gt;
* an Entry Updated element is identified by class name &amp;lt;code&amp;gt;updated&amp;lt;/code&amp;gt;&lt;br /&gt;
* an Entry Updated element represents the concept of [http://www.atomenabled.org/developers/syndication/atom-format-spec.php#rfc.section.4.2.15 Atom updated]&lt;br /&gt;
* an Entry {{should}} have an Entry Updated element&lt;br /&gt;
* use the [[datetime-design-pattern]] to encode the updated datetime&lt;br /&gt;
* if there is no Entry Updated element,&lt;br /&gt;
** use the Entry Published element, if present&lt;br /&gt;
** otherwise the page is invalid hAtom&lt;br /&gt;
&lt;br /&gt;
===== Entry Published =====&lt;br /&gt;
* an Entry Published element is identified by the class name &amp;lt;code&amp;gt;published&amp;lt;/code&amp;gt;&lt;br /&gt;
* an Entry Published element represents the concept of [http://www.atomenabled.org/developers/syndication/atom-format-spec.php#rfc.section.4.2.9 Atom published]&lt;br /&gt;
* use the [[datetime-design-pattern]] to encode the published datetime&lt;br /&gt;
&lt;br /&gt;
===== Entry Author =====&lt;br /&gt;
* an Entry Author element is represented by class name &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt;&lt;br /&gt;
* an Entry Author element represents the concept of an [http://www.atomenabled.org/developers/syndication/atom-format-spec.php#rfc.section.4.2.1 Atom author]&lt;br /&gt;
* an Entry Author element {{must}} be encoded in an [[hcard|hCard]]&lt;br /&gt;
* an Entry Author element {{should}} be encoded in an &amp;lt;code&amp;gt;&amp;amp;lt;address&amp;gt;&amp;lt;/code&amp;gt; element&lt;br /&gt;
* an Entry {{should}} have at least one Entry Author element&lt;br /&gt;
* an Entry {{may}} have more than one Entry Author elements&lt;br /&gt;
* if the Entry Author is missing&lt;br /&gt;
** find the [[algorithm-nearest-in-parent|Nearest In Parent]] &amp;lt;code&amp;gt;&amp;amp;lt;address&amp;gt;&amp;lt;/code&amp;gt; element(s) with class name &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; and that is/are a valid [[hcard|hCard]]&lt;br /&gt;
** otherwise the entry is invalid hAtom&lt;br /&gt;
&lt;br /&gt;
=== XMDP Profile ===&lt;br /&gt;
See [[hatom-profile]].&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
See [[hatom-examples]].&lt;br /&gt;
&lt;br /&gt;
=== Examples in the wild ===&lt;br /&gt;
&lt;br /&gt;
See [[hatom-examples-in-wild]].&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
This section is '''informative'''.&lt;br /&gt;
&lt;br /&gt;
The following implementations have been developed which either generate or parse hAtom links. If you have an hAtom implementation, feel free to add it to the '''top''' of this list. Once the list grows too big, we'll make a separate wiki page like [[hatom-implementations]].&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
    add new items to the TOP of this list&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* [http://code.google.com/p/spinn3r-client/ spinn3r-client] - implemented in [http://spinn3r.com Spinn3r] and part of [http://code.tailrank.com/feedparser FeedParser] and our announcement of [http://blog.spinn3r.com/2008/01/announcing-spin.html hAtom in Spinn3r 2.1]&lt;br /&gt;
* the [http://code.google.com/p/aump/ Almost Universal Microformat Parser] can extract hAtom content from webpages ([http://code.davidjanes.com/aumfp/demo/ demo])&lt;br /&gt;
* [http://rbach.priv.at/hAtom2Atom/ hAtom2Atom.xsl] transforms hAtom to Atom (as the name suggests.)&lt;br /&gt;
* [http://placenamehere.com/article/185/SubscribingTohAtomFeedsWithNetNewsWire Subscribe To hAtom] is a script that provides [http://ranchero.com/netnewswire/ NetNewsWire 2.x] users with the ability to subscribe to hAtom documents as they would any other feed. by [[User:ChrisCasciano|Chris Casciano]].&lt;br /&gt;
* [http://boxtheweb.mihopa.net/code/apis/#outlineclasses Outline Classes] - has GPL'ed PHP code for reading hAtom&lt;br /&gt;
* [http://boxtheweb.4x2.net/ BoxtheWeb] - supports subscribing to hAtom as a feed format&lt;br /&gt;
* There is a [http://code.google.com/p/transformr/downloads/detail?name=hatom%280.2%29.zip hAtom toolkit] that extracts hAtom, there is also a [http://transformr.co.uk/ demo here]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
    add new items to the TOP of this list&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
{{MicroFormatCopyrightStatement2005}}&lt;br /&gt;
* [[User:Tantek|Tantek]]: I release all my contributions to this specification into the public domain and I encourage the other authors to do so as well.&lt;br /&gt;
** When all authors/editors have done so, we can remove the MicroFormatCopyrightStatement template reference and replace it with the MicroFormatPublicDomainContributionStatement.&lt;br /&gt;
&lt;br /&gt;
== Patents ==&lt;br /&gt;
{{MicroFormatPatentStatement}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Normative References ===&lt;br /&gt;
* [http://www.w3.org/TR/2002/REC-xhtml1-20020801/ XHTML 1.0 SE]&lt;br /&gt;
* [http://www.ietf.org/rfc/rfc4287 RFC4287: The Atom Syndication Format]&lt;br /&gt;
* [[hcard-parsing]]&lt;br /&gt;
* [[rfc-2119|RFC 2119]]&lt;br /&gt;
* [[iso-8601|ISO8601]]&lt;br /&gt;
&lt;br /&gt;
=== Informative References ===&lt;br /&gt;
* [http://www.atomenabled.org/ atomenabled.org]&lt;br /&gt;
&lt;br /&gt;
== Further Reading ==&lt;br /&gt;
* [http://www.ablognotlimited.com/articles/getting-semantic-with-microformats-part-5-hatom/ Getting Semantic With Microformats, Part 5: hAtom] by [http://www.ablognotlimited.com/ Emily Lewis]&lt;br /&gt;
&lt;br /&gt;
== Work in progress ==&lt;br /&gt;
This specification is a work in progress. As additional aspects are discussed, understood, and written, they will be added. There is a separate document where we are keeping our brainstorms and other explorations relating to hAtom:&lt;br /&gt;
&lt;br /&gt;
* [[blog-post-brainstorming|blog-post Brainstorming]]&lt;br /&gt;
&lt;br /&gt;
=== Version 0.1 ===&lt;br /&gt;
&lt;br /&gt;
Version 0.1 was released 28 February 2006.&lt;br /&gt;
&lt;br /&gt;
== Discussions ==&lt;br /&gt;
&lt;br /&gt;
* See [http://www.technorati.com/cosmos/referer.html blogs discussing this page].&lt;br /&gt;
&lt;br /&gt;
=== Q&amp;amp;A ===&lt;br /&gt;
* If you have any questions about hAtom, check the [[hatom-faq|hAtom FAQ]], and if you don't find answers, add your questions!&lt;br /&gt;
&lt;br /&gt;
=== Issues ===&lt;br /&gt;
* Please add any issues with the specification to the separate [[hatom-issues|hAtom issues]] document.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
{{hatom-related-pages}}&lt;br /&gt;
* [[rel-enclosure]] - how to semantically reference enclosures (e.g. podcasts) in hAtom&lt;br /&gt;
* [[blog-post-brainstorming]]&lt;br /&gt;
* [[blog-post-formats]]&lt;br /&gt;
* [[blog-post-examples]]&lt;br /&gt;
* [[blog-post-feed-equivalence]]&lt;br /&gt;
* [[blog-description-format]] - how to describe a blog (as opposed to the individual entries, which is what we're doing here)&lt;br /&gt;
* [[xhtml-syndication]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Draft Specifications]]&lt;br /&gt;
[[Category:hAtom]]&lt;br /&gt;
&lt;br /&gt;
== Translations ==&lt;br /&gt;
Read the hAtom draft specification in additional &amp;lt;span id=&amp;quot;languages&amp;quot;&amp;gt;languages&amp;lt;/span&amp;gt;:&lt;br /&gt;
* [[hatom-fr|français]]&lt;/div&gt;</summary>
		<author><name>Myfreeweb</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=hatom-profile&amp;diff=46004</id>
		<title>hatom-profile</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=hatom-profile&amp;diff=46004"/>
		<updated>2012-04-15T09:41:57Z</updated>

		<summary type="html">&lt;p&gt;Myfreeweb: /* Usage */ HTML5&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;hAtom Profile&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following is an [http://gmpg.org/xmdp/ XMDP] profile for the [[hatom|hAtom]] specification.&lt;br /&gt;
&lt;br /&gt;
== URLs ==&lt;br /&gt;
This profile is hosted as a separate XMDP file on microformats.org:&lt;br /&gt;
* http://microformats.org/profile/hatom&lt;br /&gt;
* shortURL: http://ufs.cc/x/hatom&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
Profiles are referenced in (X)HTML files in the &amp;lt;code&amp;gt;&amp;amp;lt;head&amp;amp;gt;&amp;lt;/code&amp;gt; tag, e.g.:&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;head profile='http://microformats.org/profile/hatom'&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In HTML5, head[profile] has been deprecated:&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
  …&lt;br /&gt;
  &amp;lt;link rel='profile' href='http://microformats.org/profile/hatom'&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Profile ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;dl class=&amp;quot;profile&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;dt id=&amp;quot;rel&amp;quot;&amp;gt;rel&amp;lt;/dt&amp;gt;&lt;br /&gt;
 &amp;lt;dd&amp;gt;&amp;lt;p&amp;gt;&lt;br /&gt;
   &amp;lt;a rel=&amp;quot;help&amp;quot; href=&amp;quot;http://www.w3.org/TR/html401/struct/links.html#adef-rel&amp;quot;&amp;gt;&lt;br /&gt;
     HTML4 definition of the 'rel' attribute.&amp;lt;/a&amp;gt;  &lt;br /&gt;
   Here is an additional value as defined in the&lt;br /&gt;
   &amp;lt;a rel=&amp;quot;help start&amp;quot; href=&amp;quot;http://microformats.org/wiki/rel-tag&amp;quot;&amp;gt;&lt;br /&gt;
   rel-tag&amp;lt;/a&amp;gt; &lt;br /&gt;
   specification.&amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;dl&amp;gt;&lt;br /&gt;
   &amp;lt;dt id=&amp;quot;tag&amp;quot;&amp;gt;tag&amp;lt;/dt&amp;gt;&lt;br /&gt;
   &amp;lt;dd&amp;gt;Indicates that the referred resource serves as a &amp;quot;tag&amp;quot;, &lt;br /&gt;
       or keyword/subject, for the referring page, or some portion of the referring page (such as an hAtom).&amp;lt;/dd&amp;gt;&lt;br /&gt;
  &amp;lt;/dl&amp;gt;&lt;br /&gt;
 &amp;lt;/dd&amp;gt;&lt;br /&gt;
 &amp;lt;dt&amp;gt;class&amp;lt;/dt&amp;gt;&lt;br /&gt;
 &amp;lt;dd&amp;gt;&amp;lt;p&amp;gt;&lt;br /&gt;
   &amp;lt;a href=&amp;quot;http://www.w3.org/TR/html401/struct/global.html#adef-class&amp;quot;&amp;gt;&lt;br /&gt;
   HTML4 definition of the 'class' attribute.&amp;lt;/a&amp;gt;&lt;br /&gt;
   This meta data profile defines some 'class' attribute values (class names) &lt;br /&gt;
   and their meanings as suggested by a &lt;br /&gt;
   &amp;lt;a href=&amp;quot;http://www.w3.org/TR/WD-htmllink-970328#profile&amp;quot;&amp;gt;&lt;br /&gt;
   draft of &amp;quot;Hypertext Links in HTML&amp;quot;&amp;lt;/a&amp;gt;.&lt;br /&gt;
   All values are defined according to the semantics defined in the &lt;br /&gt;
   &amp;lt;a rel=&amp;quot;help start&amp;quot; href=&amp;quot;http://microformats.org/wiki/hatom&amp;quot;&amp;gt;&lt;br /&gt;
   hAtom specification&amp;lt;/a&amp;gt;.&lt;br /&gt;
  &amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;dl&amp;gt;&lt;br /&gt;
   &amp;lt;dt id=&amp;quot;hfeed&amp;quot;&amp;gt;hfeed&amp;lt;/dt&amp;gt;&lt;br /&gt;
    &amp;lt;dd&amp;gt;The root class name and container for a feed, based on the definition of atom:feed (section 4.1.1 of RFC 4287), &lt;br /&gt;
    constrained and modified as per the &amp;lt;a href=&amp;quot;http://microformats.org/wiki/hatom&amp;quot;&amp;gt;hAtom microformat spec&amp;lt;/a&amp;gt;.&lt;br /&gt;
   &amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;dt id=&amp;quot;hentry&amp;quot;&amp;gt;hentry&amp;lt;/dt&amp;gt;&lt;br /&gt;
    &amp;lt;dd&amp;gt;The root class name and container for an entry, based on the definition of atom:feed (section 4.1.2 of RFC 4287), &lt;br /&gt;
    constrained and modified as per the &amp;lt;a href=&amp;quot;http://microformats.org/wiki/hatom&amp;quot;&amp;gt;hAtom microformat spec&amp;lt;/a&amp;gt;.&lt;br /&gt;
   &amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;dt id=&amp;quot;entry-title&amp;quot;&amp;gt;entry-title&amp;lt;/dt&amp;gt;&lt;br /&gt;
    &amp;lt;dd&amp;gt;This optional property provides the title or name of an entry, based on the definition of atom:feed (section 4.2.14 of RFC 4287), &lt;br /&gt;
    constrained and modified as per the &amp;lt;a href=&amp;quot;http://microformats.org/wiki/hatom&amp;quot;&amp;gt;hAtom microformat spec&amp;lt;/a&amp;gt;.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;dt id=&amp;quot;entry-summary&amp;quot;&amp;gt;entry-summary&amp;lt;/dt&amp;gt;&lt;br /&gt;
    &amp;lt;dd&amp;gt;This optional property provides the  summary of an entry, based on the definition of atom:summary (section 4.2.13 of RFC 4287), &lt;br /&gt;
    constrained and modified as per the &amp;lt;a href=&amp;quot;http://microformats.org/wiki/hatom&amp;quot;&amp;gt;hAtom microformat spec&amp;lt;/a&amp;gt;.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;dt id=&amp;quot;entry-content&amp;quot;&amp;gt;entry-content&amp;lt;/dt&amp;gt;&lt;br /&gt;
    &amp;lt;dd&amp;gt;This optional property provides the contents of an entry, based on the definition of atom:content (section 4.1.3 of RFC 4287), &lt;br /&gt;
    constrained and modified as per the &amp;lt;a href=&amp;quot;http://microformats.org/wiki/hatom&amp;quot;&amp;gt;hAtom microformat spec&amp;lt;/a&amp;gt;.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;dt id=&amp;quot;author&amp;quot;&amp;gt;author&amp;lt;/dt&amp;gt;&lt;br /&gt;
    &amp;lt;dd&amp;gt;This optional property provides information about the person who wrote a feed or entry. If the value is provided then the same element that &lt;br /&gt;
    has the class name of &amp;quot;author&amp;quot; should use the class name of &amp;quot;vcard&amp;quot; and thus represent an embedded &amp;lt;a href=&amp;quot;http://microformats.org/wiki/hcard&amp;quot;&amp;gt;hCard&amp;lt;/a&amp;gt;.  This property is based loosely on the definition of atom:author (section 4.2.1 of RFC 4287), &lt;br /&gt;
    constrained and modified as per the &amp;lt;a href=&amp;quot;http://microformats.org/wiki/hatom&amp;quot;&amp;gt;hAtom microformat spec&amp;lt;/a&amp;gt;.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;dt id=&amp;quot;published&amp;quot;&amp;gt;published&amp;lt;/dt&amp;gt;&lt;br /&gt;
    &amp;lt;dd&amp;gt;This optional property specifies the date and time (in ISO8601 date or date-time) that an entry was originally published.&lt;br /&gt;
This property is based loosely on the definition of atom:published (section 4.2.9 of RFC 4287), &lt;br /&gt;
    constrained and modified as per the &amp;lt;a href=&amp;quot;http://microformats.org/wiki/hatom&amp;quot;&amp;gt;hAtom microformat spec&amp;lt;/a&amp;gt;.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;dt id=&amp;quot;updated&amp;quot;&amp;gt;updated&amp;lt;/dt&amp;gt;&lt;br /&gt;
    &amp;lt;dd&amp;gt;This optional property specifies the date and time (in ISO8601 date or date-time) that an entry was most recently updated.&lt;br /&gt;
This property is based loosely on the definition of atom:updated (section 4.2.15 of RFC 4287), &lt;br /&gt;
    constrained and modified as per the &amp;lt;a href=&amp;quot;http://microformats.org/wiki/hatom&amp;quot;&amp;gt;hAtom microformat spec&amp;lt;/a&amp;gt;.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;dt id=&amp;quot;category&amp;quot;&amp;gt;category&amp;lt;/dt&amp;gt;&lt;br /&gt;
   &amp;lt;dd&amp;gt;A category of the feed or entry.  Publishers should also use rel-tag to indicate the precise meaning of a category with a URL. &lt;br /&gt;
    Note: this property may be repeated (a feed or entry may belong in several categories). Re-used from hCalendar which re-uses it from iCalendar (section 4.8.1.2 of RFC 2445).&lt;br /&gt;
This property is also based loosely on the definition of atom:category (section 4.2.2 of RFC 4287), &lt;br /&gt;
    constrained and modified as per the &amp;lt;a href=&amp;quot;http://microformats.org/wiki/hatom&amp;quot;&amp;gt;hAtom microformat spec&amp;lt;/a&amp;gt;.&amp;lt;/dd&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
   &amp;lt;dt id=&amp;quot;value&amp;quot;&amp;gt;value&amp;lt;/dt&amp;gt;&lt;br /&gt;
    &amp;lt;dd&amp;gt;This class name is used to distinguish the &amp;lt;em&amp;gt;actual&amp;lt;/em&amp;gt; value&lt;br /&gt;
     of a property from any other cruft that may be in &lt;br /&gt;
     the containing element representing the property.&lt;br /&gt;
     See the &lt;br /&gt;
     &amp;lt;a href=&amp;quot;http://microformats.org/wiki/value-class-pattern&amp;quot;&amp;gt; &lt;br /&gt;
      value-class-pattern&amp;lt;/a&amp;gt; for details.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;dt id=&amp;quot;value-title&amp;quot;&amp;gt;value-title&amp;lt;/dt&amp;gt;&lt;br /&gt;
    &amp;lt;dd&amp;gt;This class name is used to distinguish the &amp;lt;em&amp;gt;actual&amp;lt;/em&amp;gt; value&lt;br /&gt;
     of a property, specifically in the 'title' attribute of the element,&lt;br /&gt;
     from the element contents and the element representing &lt;br /&gt;
     the containing property.&lt;br /&gt;
     See the &lt;br /&gt;
     &amp;lt;a href=&amp;quot;http://microformats.org/wiki/value-class-pattern#Parsing_value_from_a_title_attribute&amp;quot;&amp;gt; &lt;br /&gt;
      value-class-pattern value-title description&amp;lt;/a&amp;gt; for details.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/dl&amp;gt;&lt;br /&gt;
 &amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
{{hatom-related-pages}}&lt;/div&gt;</summary>
		<author><name>Myfreeweb</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=hcard&amp;diff=43520</id>
		<title>hcard</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=hcard&amp;diff=43520"/>
		<updated>2011-02-02T15:35:05Z</updated>

		<summary type="html">&lt;p&gt;Myfreeweb: head profile is deprecated&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;hCard 1.0&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&amp;lt;dfn style=&amp;quot;font-style:normal;font-weight:bold&amp;quot;&amp;gt;hCard&amp;lt;/dfn&amp;gt; is a simple, open, distributed format for representing people, companies, organizations, and places, using a 1:1 representation of vCard ([[rfc-2426|RFC2426]]) properties and values in [[semantic-xhtml|semantic HTML or XHTML]]. hCard is one of several open [[microformats|microformat]] standards suitable for embedding in HTML, XHTML, Atom, RSS, and arbitrary XML.&lt;br /&gt;
&lt;br /&gt;
'''Want to get started with writing an [[hcard|hCard]]?'''  Use the [http://microformats.org/code/hcard/creator hCard creator] to write up some contact information and publish it, or follow the [[hcard-authoring|hCard authoring tips]] to add hCard markup to your current contact page.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;vcard&amp;quot;&amp;gt;&lt;br /&gt;
; &amp;lt;span class=&amp;quot;role&amp;quot;&amp;gt;Editor&amp;lt;/span&amp;gt; &lt;br /&gt;
: &amp;lt;span class=&amp;quot;fn&amp;quot;&amp;gt;[[User:Tantek|Tantek Çelik]]&amp;lt;/span&amp;gt; (&amp;lt;span class=&amp;quot;url&amp;quot;&amp;gt;http://tantek.com/&amp;lt;/span&amp;gt;, and before at [http://technorati.com Technorati, Inc.], and at [http://microsoft.com/ Microsoft Corporation])&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
; Authors: [http://tantek.com/ Tantek Çelik] (affiliations above)&lt;br /&gt;
: &amp;lt;span class=&amp;quot;vcard&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fn&amp;quot;&amp;gt;[[User:Brian|Brian Suda]]&amp;lt;/span&amp;gt; (&amp;lt;span class=&amp;quot;url&amp;quot;&amp;gt;http://suda.co.uk/&amp;lt;/span&amp;gt;)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Acknowledgments: See [[hcard#Inspiration_and_Acknowledgments|acknowledgments]].&lt;br /&gt;
&lt;br /&gt;
[[hcard#Copyright|copyright]] and [[hcard#Patents|patents]] statements apply.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
hCard 1.0 is a microformats.org specification. Public discussion on hCard takes place on [[hcard-feedback]], the #microformats [[irc]] channel on irc.freenode.net, and [http://microformats.org/discuss/mail/microformats-discuss/ microformats-discuss mailing list].&lt;br /&gt;
&lt;br /&gt;
=== Available languages ===&lt;br /&gt;
The English version of this specification is the only normative version. For translations of this document see the [[#translations]] section.&lt;br /&gt;
&lt;br /&gt;
=== Errata and Updates ===&lt;br /&gt;
Known errors and issues in this specification are corrected in [[hcard-issues-resolved|resolved]] and [[hcard-issues-closed|closed]] issues. Please check there before reporting [[hcard-issues|issues]].&lt;br /&gt;
&lt;br /&gt;
The hCard 1.0.1 update is currently under development and incorporates known  errata corrections as well as the [[value-class-pattern]].&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The vCard standard ([[rfc-2426|RFC2426]]), has been broadly interoperably implemented (e.g. Apple's &amp;quot;Address Book&amp;quot; application built into MacOSX).&lt;br /&gt;
&lt;br /&gt;
In addition, many bloggers identify themselves by name and discuss their friends and family.  With just a tad bit of structure, bloggers can discuss people in their blog(s) in such a way that spiders and other aggregators can retrieve this information, automatically convert them to vCards, and use them in any vCard application or service.&lt;br /&gt;
&lt;br /&gt;
This specification introduces the '''hCard''' format, which uses a 1:1 representation of the properties and values of the aforementioned vCard standard, in semantic HTML.  Bloggers can both embed hCards directly in their web pages, and style them with CSS to make them appear as desired.  In addition, hCard enables applications to retrieve information directly from web pages without having to reference a separate file.&lt;br /&gt;
&lt;br /&gt;
Use the [http://microformats.org/code/hcard/creator hCard creator] and copy the HTML code it generates to your blog or website to publish your contact info.&lt;br /&gt;
&lt;br /&gt;
{{rfc-2119-intro}}&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
=== In General ===&lt;br /&gt;
The vCard standard ([[rfc-2426|RFC2426]]) forms the basis of hCard.&lt;br /&gt;
&lt;br /&gt;
The basic format of hCard is to use vCard object/property names in lower-case for class names, and to map the nesting of vCard objects directly into nested HTML elements.&lt;br /&gt;
&lt;br /&gt;
=== Root Class Name ===&lt;br /&gt;
The root class name for an hCard is &amp;quot;vcard&amp;quot;.  An element with a class name of &amp;quot;vcard&amp;quot; is itself called an ''hCard''.&lt;br /&gt;
&lt;br /&gt;
=== Properties and Sub-properties ===&lt;br /&gt;
The properties of an hCard are represented by elements inside the hCard.  Elements with class names of the listed properties represent the values of those properties.  Some properties have sub-properties, and those are represented by elements inside the elements for properties.&lt;br /&gt;
&lt;br /&gt;
=== Property List ===&lt;br /&gt;
hCard properties (sub-properties in parentheses like this)&lt;br /&gt;
&lt;br /&gt;
'''Required:'''&lt;br /&gt;
* '''fn'''&lt;br /&gt;
* &amp;lt;span id=&amp;quot;property-list-n&amp;quot;&amp;gt;'''n'''&amp;lt;sup style=&amp;quot;font-size:smaller&amp;quot;&amp;gt;[[#note1|1]]&amp;lt;/sup&amp;gt; (family-name, given-name, additional-name, honorific-prefix, honorific-suffix)&amp;lt;/span&amp;gt;&lt;br /&gt;
Optional:&lt;br /&gt;
* adr (post-office-box, extended-address, street-address, locality, region, postal-code, country-name, type, value)&lt;br /&gt;
* agent&lt;br /&gt;
* bday&lt;br /&gt;
* category&lt;br /&gt;
* class&lt;br /&gt;
* email (type, value)&lt;br /&gt;
* geo (latitude, longitude)&lt;br /&gt;
* key&lt;br /&gt;
* label&lt;br /&gt;
* logo&lt;br /&gt;
* mailer&lt;br /&gt;
* nickname&lt;br /&gt;
* note&lt;br /&gt;
* org (organization-name, organization-unit)&lt;br /&gt;
* photo&lt;br /&gt;
* rev&lt;br /&gt;
* role&lt;br /&gt;
* sort-string&lt;br /&gt;
* sound&lt;br /&gt;
* &amp;lt;span id=&amp;quot;property-list-tel&amp;quot;&amp;gt;tel&amp;lt;sup style=&amp;quot;font-size:smaller&amp;quot;&amp;gt;[[#note2|2]]&amp;lt;/sup&amp;gt; (type, value)&amp;lt;/span&amp;gt;&lt;br /&gt;
* title&lt;br /&gt;
* tz&lt;br /&gt;
* uid&lt;br /&gt;
* url&lt;br /&gt;
&lt;br /&gt;
=== Property Notes ===&lt;br /&gt;
&amp;lt;span id=&amp;quot;note1&amp;quot;&amp;gt;[[#property-list-n|1. ^]]&amp;lt;/span&amp;gt;: The 'n' property is {{optional}} if any [[hcard#Implied_.22n.22_Optimization|implied 'n' optimization rules]] are in effect.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;note2&amp;quot;&amp;gt;[[#property-list-tel|2. ^]]&amp;lt;/span&amp;gt;: tel - Authors {{may}} follow the [http://en.wikipedia.org/wiki/E.123 E.123] standard for writing values of telephone numbers. Letter values (e.g. +1-555-FORMATS) {{must}} be converted to numbers. Use an &amp;lt;code&amp;gt;abbr&amp;lt;/code&amp;gt; to display letters and provide a numerical value simultaneously, e.g. &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;abbr title=&amp;quot;+15553676287&amp;quot;&amp;gt;+1-555-FORMATS&amp;lt;/abbr&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Singular vs. Plural Properties ===&lt;br /&gt;
Singular properties: 'fn', 'n', 'bday', 'tz', 'geo', 'sort-string', 'uid', 'class', 'rev'.  For properties which are singular, the first descendant element with that class {{should}} take effect, any others being ignored.&lt;br /&gt;
&lt;br /&gt;
All other properties {{may}} be plural. Each class instance of such properties creates a new instance of that property.&lt;br /&gt;
&lt;br /&gt;
=== Human vs. Machine readable ===&lt;br /&gt;
The human visible text contents of an element for a property represents the value of that property, with a few exceptions:&lt;br /&gt;
&lt;br /&gt;
If an &amp;lt;code&amp;gt;&amp;amp;lt;abbr&amp;amp;gt;&amp;lt;/code&amp;gt; element is used for a property, then the '&amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;' attribute (if present) of the &amp;lt;code&amp;gt;&amp;amp;lt;abbr&amp;gt;&amp;lt;/code&amp;gt; element is the value of the property, instead of the contents of the element, which instead provide a more human presentable version of the value.&lt;br /&gt;
&lt;br /&gt;
If an &amp;lt;code&amp;gt;&amp;amp;lt;a&amp;amp;gt;&amp;lt;/code&amp;gt; element is used for one or more properties, it {{must}} be treated as follows:&lt;br /&gt;
# For the 'photo' property and any other property that takes a URL as its value, the &amp;lt;code&amp;gt;href=&amp;quot;...&amp;quot;&amp;lt;/code&amp;gt; attribute provides the property value.&lt;br /&gt;
# For other properties, the element's content is the value of the property.&lt;br /&gt;
&lt;br /&gt;
If an &amp;lt;code&amp;gt;&amp;amp;lt;img&amp;amp;gt;&amp;lt;/code&amp;gt; element is used for one or more properties, it {{must}} be treated as follows:&lt;br /&gt;
# For the 'photo' property and any other property that takes a URL as its value, the &amp;lt;code&amp;gt;src=&amp;quot;...&amp;quot;&amp;lt;/code&amp;gt; attribute provides the property value.&lt;br /&gt;
# For other properties, the &amp;lt;code&amp;gt;&amp;amp;lt;img&amp;gt;&amp;lt;/code&amp;gt; element's '&amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt;' attribute is the value of the property.&lt;br /&gt;
&lt;br /&gt;
If an &amp;lt;code&amp;gt;&amp;amp;lt;object&amp;amp;gt;&amp;lt;/code&amp;gt; element is used for one or more properties, it {{must}} be treated as follows:&lt;br /&gt;
# For the 'photo' property and any other property that takes a URL as its value, the &amp;lt;code&amp;gt;data=&amp;quot;...&amp;quot;&amp;lt;/code&amp;gt; attribute provides the property value.&lt;br /&gt;
# For other properties, the element's content is the value of the property.&lt;br /&gt;
&lt;br /&gt;
=== Value excerpting ===&lt;br /&gt;
Sometimes only part of an element which is the equivalent for a property is used for the value of the property.  This typically occurs when a property has a subtype, like 'tel'. For this purpose, the special class name &amp;quot;&amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;&amp;quot; is used to excerpt out the subset of the element that is the value of the property. E.g. here is an hCard fragment for marking up a home phone number:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
vCard:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
TEL;TYPE=HOME:+1.415.555.1212&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
hCard:&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;tel&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;type&amp;quot;&amp;gt;home&amp;lt;/span&amp;gt;:&lt;br /&gt;
 &amp;lt;span class=&amp;quot;value&amp;quot;&amp;gt;+1.415.555.1212&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This hCard fragment could be displayed as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: thin dashed black; width: 95%; padding: .5em 1em;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;tel&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;type&amp;quot;&amp;gt;home&amp;lt;/span&amp;gt;:&lt;br /&gt;
&amp;lt;span class=&amp;quot;value&amp;quot;&amp;gt;+1.415.555.1212&amp;lt;/span&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;!-- note for Tantek: review/edit property casing from here on --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Property Exceptions ===&lt;br /&gt;
vCard has several properties which either do not make sense on, or are already implied within the context of a web page.  This section explains what to (not) do with them.&lt;br /&gt;
&lt;br /&gt;
# vCard's '''NAME''', '''PROFILE''', '''SOURCE''', '''PRODID''', '''VERSION''' properties are defined in Sections 2.1.2, 2.1.3, 2.1.4, 3.6.3, 3.6.9 of [[rfc-2426|RFC2426]].  Content publishers {{must-not}} use these properties in their hCards, and as such, hCard consumers/parsers {{must}} IGNORE these properties if they are found within an hCard. Instead. hCard to vCard converters {{should}} use the title of the page where the hCard is found (e.g. the &amp;lt;code&amp;gt;&amp;lt;title&amp;gt;&amp;lt;/code&amp;gt; element in HTML documents) to construct the NAME property, {{may}} output a PROFILE value of &amp;quot;&amp;lt;code&amp;gt;VCARD&amp;lt;/code&amp;gt;&amp;quot; per [[rfc-2426|RFC2426]], {{should}} use the URL of the page where the hCard is found to construct the SOURCE property (e.g. perhaps as a parameter to a URL/service that converts hCards to vCards), for an output vCard stream (e.g. a .vcf file). Only services/applications that output actual vCards should write the PRODID property, with the product identifier for said service/application. Similarly, only such services/applications should write the VERSION property, with the value &amp;quot;3.0&amp;quot; (without quotes) per [[rfc-2426|RFC2426]] Section 3.6.9.&lt;br /&gt;
&lt;br /&gt;
=== Organization Contact Info ===&lt;br /&gt;
If the &amp;quot;FN&amp;quot; and &amp;quot;ORG&amp;quot; (organization) properties have the exact same value (typically because they are set on the same element, e.g. class=&amp;quot;fn org&amp;quot;), then the hCard represents contact information for a company, organization or place and {{should}} be treated as such. In this case the author also {{must-not}} set the &amp;quot;N&amp;quot; property, or set it (and any sub-properties) explicitly to the empty string &amp;quot;&amp;quot;. Thus parsers {{should}} handle the missing &amp;quot;N&amp;quot; property, in this case by implying empty values for all the &amp;quot;N&amp;quot; sub-properties.&lt;br /&gt;
&lt;br /&gt;
=== Implied &amp;quot;N&amp;quot; Optimization ===&lt;br /&gt;
Although vCard requires that the &amp;quot;N&amp;quot; property be present, the authors of the vCard specification ([[rfc-2426|RFC2426]]) themselves do not include &amp;quot;N&amp;quot; properties in their vCards near the end of the spec (p.38).  This apparent contradiction can be resolved by simply allowing the &amp;quot;FN&amp;quot; property to imply &amp;quot;N&amp;quot; property values in typical cases provided in the spec. We do so explicitly in hCard.&lt;br /&gt;
&lt;br /&gt;
If &amp;quot;FN&amp;quot; and &amp;quot;ORG&amp;quot; are not the same (see previous section), and the value of the &amp;quot;FN&amp;quot; property is exactly two words (separated by whitespace), and there is no explicit &amp;quot;N&amp;quot; property, then the &amp;quot;N&amp;quot; property is inferred from the &amp;quot;FN&amp;quot; property.  For &amp;quot;FN&amp;quot;s with either one word see below, and for three or more, the author {{must}} explicitly markup the &amp;quot;N&amp;quot;, except for the organization contact info case, [http://microformats.org/wiki/hcard#Organization_Contact_Info see above] for that.&lt;br /&gt;
&lt;br /&gt;
# The content of &amp;quot;FN&amp;quot; is broken into two &amp;quot;words&amp;quot; separated by whitespace.&lt;br /&gt;
# The ''first'' word of the &amp;quot;FN&amp;quot; is interpreted as the &amp;quot;given-name&amp;quot; for the &amp;quot;N&amp;quot; property.&lt;br /&gt;
# The ''second/last'' word of the &amp;quot;FN&amp;quot; is interpreted as the &amp;quot;family-name&amp;quot; for the &amp;quot;N&amp;quot; property.&lt;br /&gt;
# Exception: If the first word ends in a &amp;quot;,&amp;quot; comma, then the first word (minus the comma at the end) is interpreted as the &amp;quot;family-name&amp;quot; and the second word is interpreted as the &amp;quot;given-name&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This allows simplification in the typical case of people stating:&lt;br /&gt;
* given-name (space) family-name&lt;br /&gt;
* family-name (comma) given-name&lt;br /&gt;
&lt;br /&gt;
=== Implied &amp;quot;nickname&amp;quot; Optimization ===&lt;br /&gt;
Due to the prevalence of the use of nicknames/handles/usernames in actual content published on the Web (e.g. authors of [[hReview|reviews]]), hCard also has an implied &amp;quot;nickname&amp;quot; optimization to handle this.&lt;br /&gt;
&lt;br /&gt;
Similar to the implied &amp;quot;n&amp;quot; optimization, if &amp;quot;FN&amp;quot; and &amp;quot;ORG&amp;quot; are not the same, and the value of the &amp;quot;FN&amp;quot; property is exactly one word, and there is no explicit &amp;quot;N&amp;quot; property, then:&lt;br /&gt;
&lt;br /&gt;
# The content of the &amp;quot;FN&amp;quot; {{must}} be treated as a &amp;quot;nickname&amp;quot; property value.&lt;br /&gt;
# Parsers {{should}} handle the missing &amp;quot;N&amp;quot; property by implying empty values for all the &amp;quot;N&amp;quot; sub-properties.&lt;br /&gt;
&lt;br /&gt;
Though parsers {{must}} follow the implied nickname optimization, publishers {{should}} explicitly indicate the &amp;quot;nickname&amp;quot; even in this case, e.g.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;vcard&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;fn nickname&amp;quot;&amp;gt;daveman692&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The hCard {{may}} have additional explicit &amp;quot;nickname&amp;quot; property values in addition to the implied nickname.&lt;br /&gt;
&lt;br /&gt;
=== Implied &amp;quot;organization-name&amp;quot; Optimization ===&lt;br /&gt;
The &amp;quot;ORG&amp;quot; property has two subproperties, organization-name and organization-unit. Very often authors only publish the organization-name.  Thus if an &amp;quot;ORG&amp;quot; property has no &amp;quot;organization-name&amp;quot; inside it, then its entire contents {{must}} be treated as the &amp;quot;organization-name&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Tags as Categories ===&lt;br /&gt;
Categories in hCard {{may}} be represented by tags with [[rel-tag]]. When a category property is a rel-tag, the tag (as defined by rel-tag) is used for that category.&lt;br /&gt;
&lt;br /&gt;
=== type subproperty values ===&lt;br /&gt;
The 'type' subproperty in particular takes different values depending on which property it is a subproperty of.  These 'type' subproperty values are case-INSENSITIVE, meaning &amp;quot;Home&amp;quot; is the same as &amp;quot;home&amp;quot;, as well as multivalued, e.g. a tel can be home and preferred:&lt;br /&gt;
&lt;br /&gt;
vCard:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
TEL;TYPE=HOME,PREF:+1.415.555.1212&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
hCard:&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;tel&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;type&amp;quot;&amp;gt;Home&amp;lt;/span&amp;gt; (&amp;lt;span class=&amp;quot;type&amp;quot;&amp;gt;pref&amp;lt;/span&amp;gt;erred):&lt;br /&gt;
 &amp;lt;span class=&amp;quot;value&amp;quot;&amp;gt;+1.415.555.1212&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This could be displayed as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: thin dashed black; width: 95%; padding: .5em 1em; &amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;tel&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;type&amp;quot;&amp;gt;Home&amp;lt;/span&amp;gt; (&amp;lt;span class=&amp;quot;type&amp;quot;&amp;gt;pref&amp;lt;/span&amp;gt;erred):&lt;br /&gt;
&amp;lt;span class=&amp;quot;value&amp;quot;&amp;gt;+1.415.555.1212&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== type with unspecified value ====&lt;br /&gt;
When the type of a property is specified, and there is no explicit value specified, then everything in the property except for the type is considered the value of the property. E.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;tel&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;type&amp;quot;&amp;gt;Home&amp;lt;/span&amp;gt; +1.415.555.1212&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
is equivalent to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;tel&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;type&amp;quot;&amp;gt;Home&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;value&amp;quot;&amp;gt; +1.415.555.1212&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And thus the type is &amp;quot;home&amp;quot; and the value is &amp;quot;+1.415.555.1212&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== adr tel email types ====&lt;br /&gt;
The following lists are ''informative''. See [[rfc-2426|RFC2426]] sections 3.2.1 ADR, 3.3.1 TEL, and 3.3.2 EMAIL respectively for normative type values.  They are repeated here for convenience. Default type subproperty value(s) is(are) first in each list and indicated in ALL CAPS.  types may be multivalued.&lt;br /&gt;
&lt;br /&gt;
* adr type: INTL, POSTAL, PARCEL, WORK, dom, home, pref&lt;br /&gt;
* tel type: VOICE, home, msg, work, pref, fax, cell, video, pager, bbs, modem, [http://flickr.com/photos/tags/carcellphone/ car], isdn, pcs&lt;br /&gt;
* email type: INTERNET, x400, pref&lt;br /&gt;
&lt;br /&gt;
=== Profile ===&lt;br /&gt;
The hCard &amp;lt;span id=&amp;quot;XMDP_Profile&amp;quot;&amp;gt;XMDP profile&amp;lt;/span&amp;gt; is at http://microformats.org/profile/hcard&lt;br /&gt;
&lt;br /&gt;
Content that uses hCard {{should}} reference this profile, e.g.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;profile&amp;quot; href=&amp;quot;http://microformats.org/profile/hcard&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
This content uses &amp;lt;a rel=&amp;quot;profile&amp;quot; href=&amp;quot;http://microformats.org/profile/hcard&amp;quot;&amp;gt;hCard&amp;lt;/a&amp;gt;.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;head profile=&amp;quot;http://microformats.org/profile/hcard&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
(profile attribute is deprecated in HTML5)&lt;br /&gt;
Content may combine the above methods as well.&lt;br /&gt;
&lt;br /&gt;
=== Parsing Details ===&lt;br /&gt;
&lt;br /&gt;
See [[hcard-parsing|hCard parsing]].&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
This section is informative.&lt;br /&gt;
&lt;br /&gt;
=== Sample vCard ===&lt;br /&gt;
&lt;br /&gt;
Here is a sample vCard:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
BEGIN:VCARD&lt;br /&gt;
VERSION:3.0&lt;br /&gt;
N:Çelik;Tantek&lt;br /&gt;
FN:Tantek Çelik&lt;br /&gt;
URL:http://tantek.com/&lt;br /&gt;
END:VCARD&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and an equivalent in hCard with various elements optimized appropriately.  See [[hcard-example1-steps| hCard Example 1]] for the derivation. &lt;br /&gt;
&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;a class=&amp;quot;url fn&amp;quot; href=&amp;quot;http://tantek.com/&amp;quot;&amp;gt;Tantek Çelik&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;
This hCard might be displayed as:&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: thin dashed black; width: 95%; padding: .5em 1em;&amp;quot;&amp;gt;&lt;br /&gt;
[http://tantek.com/ Tantek Çelik]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: The version information is unnecessary in hCard markup directly since the version will be defined by the profile of hCard that is used/referred to in the 'profile' attribute of the &amp;lt;head&amp;gt; element.&lt;br /&gt;
&lt;br /&gt;
===Live example===&lt;br /&gt;
&lt;br /&gt;
Here is [http://www.commerce.net/ Commercenet]'s contact details, as a live hCard which will be detected, on this page, by microformat parsing tools:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;vcard&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;fn org&amp;quot;&amp;gt;'''CommerceNet'''&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;url&amp;quot;&amp;gt;'''&amp;lt;nowiki&amp;gt;http://www.commerce.net/&amp;lt;/nowiki&amp;gt;'''&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;adr&amp;quot;&amp;gt;'''&amp;lt;span class=&amp;quot;type&amp;quot;&amp;gt;Work&amp;lt;/span&amp;gt;:'''&lt;br /&gt;
&amp;lt;div class=&amp;quot;street-address&amp;quot;&amp;gt;'''169 University Avenue'''&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;locality&amp;quot;&amp;gt;'''Palo Alto'''&amp;lt;/span&amp;gt;, &amp;lt;span class=&amp;quot;region&amp;quot;&amp;gt;'''CA'''&amp;lt;/span&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span class=&amp;quot;postal-code&amp;quot;&amp;gt;'''94301'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;country-name&amp;quot;&amp;gt;'''USA'''&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tel&amp;quot;&amp;gt;'''&amp;lt;span class=&amp;quot;type&amp;quot;&amp;gt;Work&amp;lt;/span&amp;gt; +1-650-289-4040'''&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tel&amp;quot;&amp;gt;'''&amp;lt;span class=&amp;quot;type&amp;quot;&amp;gt;Fax&amp;lt;/span&amp;gt; +1-650-289-4041'''&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;'''Email &amp;lt;span class=&amp;quot;email&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;info@commerce.net&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;'''&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The mark-up, emboldening omitted for clarity, with the following semantic improvements:&lt;br /&gt;
* &amp;lt;code&amp;gt;abbr&amp;lt;/code&amp;gt; to expand abbreviations&lt;br /&gt;
* hyperlinking the org name with the url&lt;br /&gt;
&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;a class=&amp;quot;fn org url&amp;quot; href=&amp;quot;http://www.commerce.net/&amp;quot;&amp;gt;CommerceNet&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;adr&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;type&amp;quot;&amp;gt;Work&amp;lt;/span&amp;gt;:&lt;br /&gt;
    &amp;lt;div class=&amp;quot;street-address&amp;quot;&amp;gt;169 University Avenue&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;locality&amp;quot;&amp;gt;Palo Alto&amp;lt;/span&amp;gt;,  &lt;br /&gt;
    &amp;lt;abbr class=&amp;quot;region&amp;quot; title=&amp;quot;California&amp;quot;&amp;gt;CA&amp;lt;/abbr&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;postal-code&amp;quot;&amp;gt;94301&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;country-name&amp;quot;&amp;gt;USA&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;tel&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;type&amp;quot;&amp;gt;Work&amp;lt;/span&amp;gt; +1-650-289-4040&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;tel&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;type&amp;quot;&amp;gt;Fax&amp;lt;/span&amp;gt; +1-650-289-4041&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div&amp;gt;Email: &lt;br /&gt;
   &amp;lt;span class=&amp;quot;email&amp;quot;&amp;gt;info@commerce.net&amp;lt;/span&amp;gt;&lt;br /&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;
=== More Examples ===&lt;br /&gt;
See [[hcard-examples|hCard examples]] for more examples, including all examples from vCard [[rfc-2426|RFC2426]] converted into hCard.&lt;br /&gt;
&lt;br /&gt;
== Examples in the wild ==&lt;br /&gt;
This section is '''informative'''. The number of hCard examples in the wild has expanded far beyond the capacity of being kept inline in this specification. They have been moved to a [[hcard-examples-in-wild|separate page]].&lt;br /&gt;
&lt;br /&gt;
See [[hcard-examples-in-wild|hCard Examples in the wild]].&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
This section is '''informative'''. The number of hCard implementations has also expanded beyond the capacity of keeping them inline. They have been moved to a [[hcard-implementations|separate page]].&lt;br /&gt;
&lt;br /&gt;
See [[hcard-implementations|hCard Implementations]].&lt;br /&gt;
&lt;br /&gt;
== Articles ==&lt;br /&gt;
This section is &amp;lt;strong&amp;gt;informative&amp;lt;/strong&amp;gt;. For &amp;lt;span id=&amp;quot;Further_Reading&amp;quot;&amp;gt;further reading&amp;lt;/span&amp;gt; on hCard see [[hcard-articles]].&lt;br /&gt;
&lt;br /&gt;
==Buttons==&lt;br /&gt;
You can use these buttons on pages with hCards. See [[buttons#hCard]] for any recent additions.&lt;br /&gt;
&lt;br /&gt;
* http://www.crowley.nl/images/hcard.png (mirror: http://www.davidjanes.com/images/mf_hcard.png)&lt;br /&gt;
* http://rbach.priv.at/2006/buttons/hcard.png&lt;br /&gt;
* http://www.boogdesign.com/images/buttons/microformat_hcard.png&lt;br /&gt;
* CSS-powered button, as evidenced at [http://re-run.com/about/microformat-badges microformat badges @ re-run]&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
Per the public domain release on the authors' user pages ([[User:Tantek|Tantek Çelik]], [[User:Brian|Brian Suda]]) this specification is released into the public domain.&lt;br /&gt;
&lt;br /&gt;
{{MicroFormatPublicDomainContributionStatement}}&lt;br /&gt;
&lt;br /&gt;
== Patents ==&lt;br /&gt;
{{MicroFormatPatentStatement}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Normative References ===&lt;br /&gt;
* [http://www.w3.org/TR/2002/REC-xhtml1-20020801/ XHTML 1.0 SE]&lt;br /&gt;
* [http://www.ietf.org/rfc/rfc2426.txt vCard RFC2426]&lt;br /&gt;
* [http://www.itu.int/rec/T-REC-E.123-200102-I/en ITU recommendation E.123] format of telephone numbers (chargeable document)&lt;br /&gt;
* [[rfc-2119|RFC 2119]]&lt;br /&gt;
&lt;br /&gt;
=== Informative References ===&lt;br /&gt;
This section is '''informative'''.&lt;br /&gt;
* [[hcard-history|hCard history]]&lt;br /&gt;
** [http://wiki.oreillynet.com/foocamp04/index.cgi?SimpleSemanticFormats FOO Camp 2004 Simple Semantic Formats presentation, 2004-09-10]&lt;br /&gt;
** [http://tantek.com/log/2004/09.html#hcard hCard term introduced and defined on the Web, 2004-09-30]&lt;br /&gt;
** Contributed from http://developers.technorati.com/wiki/hCard 2005-06-20&lt;br /&gt;
* [http://www.dante.net/np/ds/osi/9594-6-X.520.A4.ps X.520 in Postscript] ([http://72.14.253.104/search?q=cache:FjqzsFu4h20J:www.dante.net/np/ds/osi/9594-6-X.520.A4.ps HTMLization courtesy of Google Cache]) - vCard refers to ROLE as being &amp;quot;based on the X.520 Business Category explanatory attribute&amp;quot;.&lt;br /&gt;
* [http://www.w3.org/2002/12/cal/rfc2426 HTML reformatted version of RFC2426]&lt;br /&gt;
* [http://w3.org/TR/REC-CSS1 CSS1]&lt;br /&gt;
* [http://www.w3.org/TR/xhtml11 XHTML 1.1]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/E.123 Wikipedia summary of ITU-T Recommendation E.123] - for &amp;quot;TEL&amp;quot; values.&lt;br /&gt;
* [http://www.imc.org/pdi/ Internet Mail Consortium Personal Data Interchange vCard and vCalendar]&lt;br /&gt;
* [[iso-8601|ISO8601]]&lt;br /&gt;
&lt;br /&gt;
==== Specifications That Use hCard ====&lt;br /&gt;
* [[adr]]&lt;br /&gt;
* [[geo]]&lt;br /&gt;
* [[hcalendar|hCalendar]]&lt;br /&gt;
* [[hreview|hReview]]&lt;br /&gt;
&lt;br /&gt;
==== Similar Work ====&lt;br /&gt;
This section is '''informative'''.&lt;br /&gt;
* [http://www.intertwingly.net/wiki/pie/PaceBetterPersonElement Atom PaceBetterPersonElement]&lt;br /&gt;
* [http://www.jabber.org/jeps/jep-0054.html JEP-0054: vcard-temp]&lt;br /&gt;
&lt;br /&gt;
== Inspiration and Acknowledgments ==&lt;br /&gt;
This section is '''informative'''.&lt;br /&gt;
Thanks to: my good friend [http://vadim.com/ Vadim] who introduced me to vCard ''many'' years ago, and if I'd only paid more attention then, perhaps I could have helped a lot of people avoid wasting a lot of time reinventing various standards wheels.&lt;br /&gt;
&lt;br /&gt;
== Notes on derivation from vCard ==&lt;br /&gt;
This section is ''informative''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Semantic_XHTML_Design_Principles&amp;quot;&amp;gt;See: [[hcard-design-methodology]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== More Semantic Equivalents ===&lt;br /&gt;
For some properties there are HTML elements which better match and convey their semantics.  The following properties SHOULD be encoded with the following HTML:&lt;br /&gt;
* &amp;lt;code&amp;gt;URL&amp;lt;/code&amp;gt; in vCard becomes  &amp;lt;code&amp;gt;&amp;lt;a class=&amp;quot;url&amp;quot; href=&amp;quot;...&amp;quot;&amp;gt;...&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt; inside the element with &amp;lt;code&amp;gt;class=&amp;quot;vcard&amp;quot;&amp;lt;/code&amp;gt; in hCard.&lt;br /&gt;
* Similarly, &amp;lt;code&amp;gt;EMAIL&amp;lt;/code&amp;gt; in vCard becomes &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;a class=&amp;quot;email&amp;quot; href=&amp;quot;mailto:...&amp;quot;&amp;gt;...&amp;lt;/a&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;PHOTO&amp;lt;/code&amp;gt; in vCard becomes &amp;lt;code&amp;gt;&amp;lt;img class=&amp;quot;photo&amp;quot; src=&amp;quot;...&amp;quot; alt=&amp;quot;Photo of ...&amp;quot; /&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;lt;object class=&amp;quot;photo&amp;quot; data=&amp;quot;...&amp;quot; type=&amp;quot;...&amp;quot;&amp;gt;Photo of ...&amp;lt;/object&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UID&amp;lt;/code&amp;gt; in vCard simply becomes another semantic applied to a specific URL (or EMAIL) for an hCard.&lt;br /&gt;
&lt;br /&gt;
=== Singular and Plural derivations ===&lt;br /&gt;
The [[hcard#Singular_vs._Plural_Properties|lists of singular and plural properties]] have been derived by analyzing the semantics of the individual properties in vCard RFC2426 and determining logically that they MUST be singular per their semantics.  See [[hcard-singular-properties]] for explanations.&lt;br /&gt;
&lt;br /&gt;
==== Plural Properties Singularized ====&lt;br /&gt;
Since plural property names become their singular equivalents, even if the original plural property permitted only a single value with multiple components, those multiple components are represented each with their own singularly named property and the the property is effectively multivalued and subject to the above treatment of multivalued properties.&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
{{hcard-related-pages}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Specifications]]&lt;br /&gt;
[[Category:hCard]]&lt;br /&gt;
&lt;br /&gt;
== Translations ==&lt;br /&gt;
Read the hCard specification in additional &amp;lt;span id=&amp;quot;languages&amp;quot;&amp;gt;languages&amp;lt;/span&amp;gt;:&lt;br /&gt;
* [[hcard-fr|français]]&lt;br /&gt;
* [[hcard-ru|Русский]]&lt;br /&gt;
* [[hcard-ja|日本語]]&lt;br /&gt;
* [[hcard-zh|漢語]]&lt;/div&gt;</summary>
		<author><name>Myfreeweb</name></author>
	</entry>
</feed>