<?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=DimitriGlazkov</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=DimitriGlazkov"/>
	<link rel="alternate" type="text/html" href="https://microformats.org/wiki/Special:Contributions/DimitriGlazkov"/>
	<updated>2026-04-15T06:05:24Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=User:DimitriGlazkov&amp;diff=27705</id>
		<title>User:DimitriGlazkov</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=User:DimitriGlazkov&amp;diff=27705"/>
		<updated>2007-12-30T23:08:17Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: Update Public Domain Release&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://glazkov.com/&lt;br /&gt;
&lt;br /&gt;
{{cc-public-domain-release}}&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=presentational-html&amp;diff=33042</id>
		<title>presentational-html</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=presentational-html&amp;diff=33042"/>
		<updated>2007-12-12T03:36:30Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: Reverting Spam&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt; Presentational (X)HTML &amp;lt;/h1&amp;gt;&lt;br /&gt;
{{TOC-right}}&lt;br /&gt;
Presentational (X)HTML refers to:&lt;br /&gt;
# The presentational elements and attributes of (X)HTML (as opposed to the [[semantic-html|semantic HTML]] elements and attributes)&lt;br /&gt;
# (X)HTML documents that are written using presentational (X)HTML.&lt;br /&gt;
# The practice of writing presentational (X)HTML&lt;br /&gt;
&lt;br /&gt;
== Contributors ==&lt;br /&gt;
* [http://tantek.com/ Tantek]&lt;br /&gt;
&lt;br /&gt;
== Presentational Elements ==&lt;br /&gt;
&lt;br /&gt;
Presentational elements sensu lato can be divided into two groups. &amp;quot;Deliberate&amp;quot; presentational elements (b, i, small, …) have no semantic meaning and were deliberately designed/created for presentational purposes. &amp;quot;Abused&amp;quot; presentational elements (table, blockquote, …) have a semantic meaning, but are abused because of their default appearance in browsers (the blockquote element could be used for indenting text, for example).&lt;br /&gt;
&lt;br /&gt;
=== Deliberate ===&lt;br /&gt;
Deprecated:&lt;br /&gt;
* basefont&lt;br /&gt;
* center&lt;br /&gt;
* font&lt;br /&gt;
* hr&lt;br /&gt;
* s&lt;br /&gt;
* strike&lt;br /&gt;
* tt&lt;br /&gt;
* u&lt;br /&gt;
&lt;br /&gt;
Frames:&lt;br /&gt;
* frame&lt;br /&gt;
* frameset&lt;br /&gt;
* iframe&lt;br /&gt;
&lt;br /&gt;
Strict but mostly presentational:&lt;br /&gt;
* b&lt;br /&gt;
* br (when used for spacing, or when used inappropriately where a div or p would have been semantically correct)&lt;br /&gt;
* big&lt;br /&gt;
* i&lt;br /&gt;
* small&lt;br /&gt;
* sub&lt;br /&gt;
* sup&lt;br /&gt;
&lt;br /&gt;
=== Abused ===&lt;br /&gt;
&lt;br /&gt;
* blockquote (when used for indenting text)&lt;br /&gt;
* table (when used for layout)&lt;br /&gt;
&lt;br /&gt;
== Presentational Attributes ==&lt;br /&gt;
(This list is incomplete, please add!)&lt;br /&gt;
* align&lt;br /&gt;
* alink&lt;br /&gt;
* bgcolor&lt;br /&gt;
* color&lt;br /&gt;
* face&lt;br /&gt;
* height&lt;br /&gt;
* link (on body)&lt;br /&gt;
* size (on font element)&lt;br /&gt;
* valign&lt;br /&gt;
* vlink&lt;br /&gt;
* width&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[POSH]]&lt;br /&gt;
* [[semantic-html]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* [http://w3.org/TR/xhtml1 XHTML 1.0]&lt;br /&gt;
* [http://w3.org/TR/html401 HTML 4.01]&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=reltag&amp;diff=31337</id>
		<title>reltag</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=reltag&amp;diff=31337"/>
		<updated>2007-11-23T14:34:26Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: /* Reverting Spam Edits */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[rel-tag]]&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=review-formats-fr&amp;diff=24499</id>
		<title>review-formats-fr</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=review-formats-fr&amp;diff=24499"/>
		<updated>2007-10-08T13:44:08Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: /* Spam */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Formats Actuels de Critiques  =&lt;br /&gt;
&lt;br /&gt;
Il y a eu plusieurs efforts pour définir les formats de données pour poster des &amp;quot;critiques&amp;quot; de produits, services, etc. sur le web.&lt;br /&gt;
&lt;br /&gt;
Cette page sert à documenter la liste actuelle des schémas de critiques, formats et efforts tout comme l'historique pour la conception d'un [[microformat-fr|microformat]] simple pour les critiques. - [http://tantek.com/log/ Tantek]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Contributeurs ==&lt;br /&gt;
&lt;br /&gt;
Copié à partir de [[reviews-formats-fr]] qui lui même a été contribué sur [http://developers.technorati.com/wiki/ReviewsFormats Technorati Developer's Wiki: ReviewsFormats])&lt;br /&gt;
&lt;br /&gt;
* Tantek Çelik&lt;br /&gt;
* Niall Kennedy&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
* [[review-examples-fr|exemples review]]&lt;br /&gt;
* [[review-brainstorming-fr|brainstorming review]]&lt;br /&gt;
* [[hreview-fr|hReview]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
Notez que '''auteur''' apparaît plusieurs fois dans les listes ci-dessous, &lt;br /&gt;
et que cela fait référence quelques fois à l'auteur de la critique, et d'autres fois &lt;br /&gt;
à l'auteur du livre en train d'être critiqué. &lt;br /&gt;
Une parenthèse sera désormais utilisée pour les distinguer.&lt;br /&gt;
&lt;br /&gt;
== Schémas et Formats Précédents  ==&lt;br /&gt;
=== Générique pour n'importe quel type de critique ===&lt;br /&gt;
==== RVW ====&lt;br /&gt;
* http://www.pmbrowser.info/rvw/0.2/&lt;br /&gt;
** http://hublog.hubmed.org/archives/000307.html &amp;lt;- c'est vraiment une version vieille et démodée&lt;br /&gt;
** http://www.pmbrowser.info/wiki.pl?RVW&lt;br /&gt;
* variantes pour embarquement dans Atom, RSS2, RSS1, RDF&lt;br /&gt;
* schéma apparent&lt;br /&gt;
** auteur de la critique&lt;br /&gt;
** contenu de la critique&lt;br /&gt;
** créateur du travail&lt;br /&gt;
*** exemple : auteur du livre, réalisateur du film&lt;br /&gt;
** notation score en pourcentage&lt;br /&gt;
** identifiants multiples&lt;br /&gt;
*** exemple : ISBN, ASIN, UPC, LOC&lt;br /&gt;
** lien pour acheter&lt;br /&gt;
* semble être vaguement connecté avec le terme &amp;quot;!OpenReviews&amp;quot; (a aussi fait référence à d'autres efforts) qui apparaissent eux-mêmes pour être encore &lt;br /&gt;
un autre buzzword OpenBlahBlah sans substance derrière (comme un terme pour tenir une place).&lt;br /&gt;
==== Vocabulaire Review RDF ====&lt;br /&gt;
* RDF Review Vocabulary: http://www.purl.org/stuff/rev&lt;br /&gt;
** Déployé dans [http://trust.mindswap.org/FilmTrust/ FilmTrust], voir par ex. [http://trust.mindswap.org/cgi-bin/FilmTrust/foaf.cgi?user=thejrnf user profile]&lt;br /&gt;
** Version étendue utilisée pour transformation StructuredBlogging/RDF (voir par ex. [http://incredibooks.com/index.php/2005/12/17/the-muffin-fiend/ sample review] il y a une référence vers  [http://structuredblogging.org/subnode-to-rdf-interpreter.xsl subnode-to-rdf-interpreter.xsl] dans le source).&lt;br /&gt;
** Utilisé dans [http://www.ldodds.com/blog/archives/000126.html AllConsuming Reading Lists in RDF]&lt;br /&gt;
** Utilisé dans [http://www.ldodds.com/blog/archives/000087.html FOAF-a-matic Mark 2]&lt;br /&gt;
&lt;br /&gt;
==== Simple-Review XML ====&lt;br /&gt;
* Embarque XML dans &amp;lt;script type=&amp;quot;application/x-subnode&amp;quot;&amp;gt;&lt;br /&gt;
* [http://structuredblogging.org/xmlns/simple-review.xsd XSD]&lt;br /&gt;
* schéma apparent&lt;br /&gt;
** review-title&lt;br /&gt;
** item&lt;br /&gt;
*** name/title&lt;br /&gt;
*** type&lt;br /&gt;
*** URL&lt;br /&gt;
*** image URL&lt;br /&gt;
** rating (user visible, max, normalized to 0..1 value)&lt;br /&gt;
** comments/description&lt;br /&gt;
&lt;br /&gt;
=== Pour des domaines spécifiques ===&lt;br /&gt;
==== Films ====&lt;br /&gt;
* [http://www.millikin.edu/mr/Entertainment/howto2.html How to Write a Movie Review]&lt;br /&gt;
==== Livres ====&lt;br /&gt;
* schéma RDF pour critiques de livres : http://www.amk.ca/xml/reviews.html&lt;br /&gt;
&lt;br /&gt;
* voir aussi [[book-info-examples-fr|exemples information de livres]]&lt;br /&gt;
&lt;br /&gt;
== Voir aussi  ==&lt;br /&gt;
* [[review-examples-fr|exemples critiques]]&lt;br /&gt;
* [[review-brainstorming-fr|rewiew-brainstorming]]&lt;br /&gt;
* [[hreview-fr|hReview]]&lt;br /&gt;
&lt;br /&gt;
Voir [[hreview-fr|hReview]] pour le résultat et une évolution de ces pensées sur un microformat.&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=old-json-serializations&amp;diff=22270</id>
		<title>old-json-serializations</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=old-json-serializations&amp;diff=22270"/>
		<updated>2007-10-04T19:43:02Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: /* stub created */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== JSON Serialization of Microformats ==&lt;br /&gt;
&lt;br /&gt;
Placeholder page to document the methods of expressing microformatted content in JSON.&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=user-interface&amp;diff=22158</id>
		<title>user-interface</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=user-interface&amp;diff=22158"/>
		<updated>2007-09-05T13:05:08Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: Added Margin Marks&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt; User Interface &amp;lt;/h1&amp;gt;&lt;br /&gt;
Recently there have been many really good user interface ideas and suggestions for working with microformats.  This page serves to collect and document them so that we may be inspired by and iterate on each others' works.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
See [[implementations]], and document examples of good UI from there, here.&lt;br /&gt;
* [[Miffy]] inserts a green square into the document to represent the presence of microformat&lt;br /&gt;
* Some [[Greasemonkey]] scripts use a separate iFrame for microformat content&lt;br /&gt;
* Other [[Greasemonkey]] scripts insert an icon inline into the page&lt;br /&gt;
* [https://addons.mozilla.org/firefox/2240/ Tails Export] (Firefox extension) can display and export some microformats.&lt;br /&gt;
&lt;br /&gt;
== Design Guidelines ==&lt;br /&gt;
These are some suggested design guidelines for Web designers and developers by [http://blog.mozilla.com/faaborg/ Alex Faaborg], a user experience designer at Mozilla:&lt;br /&gt;
*Design based on actions, not data.  A button that says &amp;quot;Send to Calendar&amp;quot; is considerably more useable than a green button that simply says &amp;quot;hCalendar&amp;quot;&lt;br /&gt;
*Use iconic images instead of acronyms.  In addition to being more descriptive, they localize better.  Here are some I've been showing in various talks: [http://people.mozilla.com/~faaborg/files/20061213-fundamentalTypes/fundamentalTypesStatic.jpg_large.jpg microformat icons].  These are still very preliminary. Mozilla will likely release all of the source artwork for our microformat icons under a creative commons license around the launch of Firefox 3.  This will enable Web designers to integrate the icons into their sites, and other Web browsers can consider using a similar set of icons.&lt;br /&gt;
&lt;br /&gt;
== Challenges ==&lt;br /&gt;
* Chris Messina: &amp;quot;What kind of solutions can we come up with that are single click only?&amp;quot;&lt;br /&gt;
* Andy Mabbett - How can we make them [[accessibility|accessible]] to people with (for instance) visual disabilities?&lt;br /&gt;
* Alex Faaborg: Mozilla has had inquiries from reporters in the mainstream media (Wired and Business Week) who wanted to cover microformats in stories about the future of the Web browser, but they then later backed out because they felt the term &amp;quot;microformats&amp;quot; would only appeal to developers, and not the average reader.  These types of mainstream stories need to focus on the user experience, and not the underlying technology, but what term should reporters use to describe the overall feature?&lt;br /&gt;
&lt;br /&gt;
== Social Network Portability ==&lt;br /&gt;
See the separate [[social-network-portability]] page.&lt;br /&gt;
&lt;br /&gt;
== Browser Integration ==&lt;br /&gt;
From screenshot brainstorms to working plugins, there is a lot going on with browser integration of microformats support.&lt;br /&gt;
&lt;br /&gt;
=== Screen Shots ===&lt;br /&gt;
* [http://blog.mozilla.com/faaborg/2007/02/04/microformats-part-4-the-user-interface-of-microformat-detection/ Conceptual Mockups of Microformat Detection in Firefox 3]&lt;br /&gt;
* [http://www.hicksdesign.co.uk/journal/a-proposal-for-a-safari-microformats-plugin Jon Hicks: Proposal for a Safari Microformats plugin] &amp;lt;br /&amp;gt; [http://www.hicksdesign.co.uk/journal/a-proposal-for-a-safari-microformats-plugin http://www.hicksdesign.co.uk/images/txp/197t.png]&lt;br /&gt;
* [http://ben-ward.co.uk/journal/microformats-ui/ Ben Ward: Microformats in Web Browsers] &amp;lt;br /&amp;gt; [http://ben-ward.co.uk/journal/microformats-ui/ http://ben-ward.co.uk/res/posts/uf-web-browser/autodiscovery.png]&lt;br /&gt;
* [http://blog.wilsonet.com/archives/2006/04/30/microformats-in-flock/ Microformats in Flock] &amp;lt;br /&amp;gt; [http://blog.wilsonet.com/archives/2006/04/30/microformats-in-flock/ http://blog.wilsonet.com/mockups/Flock/Flock-PickContacts_thumbnail.png]&lt;br /&gt;
* [http://glazkov.com/blog/margin-marks/ Margin Marks UI Concept], [http://flickr.com/photos/dglazkov/sets/72157601860335196/ Margin Marks Comps on Flickr]&lt;br /&gt;
&lt;br /&gt;
=== Plugins ===&lt;br /&gt;
* The microformat [[implementations]] page has some Greasemonkey scripts.&lt;br /&gt;
* http://greasemonkey.makedatamakesense.com/callto_tel/ by Scott Reynen&lt;br /&gt;
* [https://addons.mozilla.org/firefox/2240/ Tails Export] (Firefox extension) by Robert de Bruin.&lt;br /&gt;
* Jon Hicks has written [http://www.hicksdesign.co.uk/journal/highlight-microformats-with-css a user stylesheet for Mac browsers] that highlights hCard and hCalendar data.&lt;br /&gt;
&lt;br /&gt;
=== Planning and Discussion ===&lt;br /&gt;
*[http://wiki.mozilla.org/Microformats Discussion of microformat detection in Firefox 3]&lt;br /&gt;
*[http://wiki.mozilla.org/Microformats/UE/ideas UI brainstorming on the Mozilla Wiki]&lt;br /&gt;
* The [http://wiki.caminobrowser.org/Development:Planning:Microformats Camino Wiki has a page] where future microformats support is being discussed and organized&lt;br /&gt;
&lt;br /&gt;
== Simpler Markup Languages ==&lt;br /&gt;
There are plenty of [[wiki-formats]] that attempt to make it easier for more people author semantic markup, often with textually decorative punctuation.&lt;br /&gt;
&lt;br /&gt;
As these simpler markup languages are something that *users* are expected to type, they are user interface.&lt;br /&gt;
&lt;br /&gt;
=== Markdown extension for hCalendar ===&lt;br /&gt;
See [http://article.gmane.org/gmane.text.markdown.general/2027 Markdown and the hCal microformat] which proposes an extension to the Markdown text markup language to capture and represent hCalendar event semantics in a human editable form.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[hcard-user-interface]]&lt;br /&gt;
* [[data-portability]]&lt;br /&gt;
* [[social-network-portability]]&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=audio-info&amp;diff=20881</id>
		<title>audio-info</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=audio-info&amp;diff=20881"/>
		<updated>2007-08-23T17:23:10Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: oy.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;see&lt;br /&gt;
*[[audio-info-brainstorming]]&lt;br /&gt;
*[[audio-info-examples]]&lt;br /&gt;
*[[audio-info-issues]]&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=audio-info&amp;diff=20111</id>
		<title>audio-info</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=audio-info&amp;diff=20111"/>
		<updated>2007-08-23T17:22:55Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: Reverting Spam&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; see&lt;br /&gt;
*[[audio-info-brainstorming]]&lt;br /&gt;
*[[audio-info-examples]]&lt;br /&gt;
*[[audio-info-issues]]&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=xoxo-brainstorming&amp;diff=19499</id>
		<title>xoxo-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=xoxo-brainstorming&amp;diff=19499"/>
		<updated>2007-08-08T16:35:32Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: /* Parsing Properties */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= XOXO brainstorming =&lt;br /&gt;
&lt;br /&gt;
== Authors ==&lt;br /&gt;
&lt;br /&gt;
* [http://tantek.com/log Tantek Çelik]&lt;br /&gt;
* [[DimitriGlazkov]]&lt;br /&gt;
&lt;br /&gt;
== Example Uses ==&lt;br /&gt;
&lt;br /&gt;
XOXO Lists and outlines are used for numerous special purposes across the web.  This section is here to document both best practices and recommendations.&lt;br /&gt;
&lt;br /&gt;
=== Blogrolls ===&lt;br /&gt;
&lt;br /&gt;
Background: See L.M. Orchard's post &amp;quot;[http://decafbad.com/blog/2005/11/27/subscriptions-are-attention-but-what-about-blogrolls Subscriptions Are Attention But What About Blogrolls]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Nearly all blogrolls are already published as XOXO on blog, but there is no obvious way to distinguish the XOXO blogroll from other lists in the content/header/footer of the blog.&lt;br /&gt;
&lt;br /&gt;
XOXO standardizes (see [[xoxo-profile]]) the class name &amp;quot;blogroll&amp;quot; for blogroll lists.  E.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;ul class=&amp;quot;xoxo blogroll&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;...&amp;quot;&amp;gt;...&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;...&amp;quot;&amp;gt;...&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that a blogroll is a superset of a subscription list.&lt;br /&gt;
&lt;br /&gt;
==== Subscription information ====&lt;br /&gt;
Some blogrolls contain feed information -- it would be nice if XOXO blogrolls could capture this information also. This, in and of itself, would be a nice step up from OPML.&lt;br /&gt;
&lt;br /&gt;
* An [http://www.opmlmanager.com/outliner/neuraxon77 example] of OPML to a XOXO list w/ expand/collapse folders&lt;br /&gt;
&lt;br /&gt;
===== Possible XOXO blogs+feeds markup =====&lt;br /&gt;
&lt;br /&gt;
Here is one example of how you could publish blogs+feeds in XOXO.  Note that since a XOXO parser will only treat the first hyperlink as the info for the list item, the blog names and URLs will be parsed, and the feeds will be ignored.  In reality, the blogs themselves should contain the necessary auto-discovery links to their own feeds, which is more reliable anyway.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;ul class=&amp;quot;xoxo blogroll&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;blogURL1&amp;quot;&amp;gt;Blog Name 1&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;.../index.xml&amp;quot; rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/atom+xml&amp;quot;&amp;gt;RSS&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;blogURL2&amp;quot;&amp;gt;Blog Name 2&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;.../index.xml&amp;quot; rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/rss+xml&amp;quot;&amp;gt;RSS&amp;lt;/&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;.../index.atom&amp;quot; rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/atom+xml&amp;quot;&amp;gt;Atom&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CSS styling could make this as pretty or not as desired.&lt;br /&gt;
&lt;br /&gt;
See also [[blog-info-examples]], [[blog-info-formats]], [[blog-info-brainstorming]], [http://blogxoxo.blogspot.com/2006/01/xoxo-blogroll-format.html XOXO Blogroll Format]&lt;br /&gt;
&lt;br /&gt;
=== Wishlists ===&lt;br /&gt;
&lt;br /&gt;
Background: See L.M. Orchard's post: &amp;quot;[http://decafbad.com/blog/2005/11/27/i-wish-it-were-in-xoxo I wish it were in XOXO]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Similar to blogrolls, what if we used the class name &amp;quot;wishlist&amp;quot;?&lt;br /&gt;
&lt;br /&gt;
What are the distinguishing features of wishlists?&lt;br /&gt;
&lt;br /&gt;
Is a wishlist item the same as a listing that is looking for an item?&lt;br /&gt;
See: [[listing-examples]], [[listing-formats]], [[listing-brainstorming]]&lt;br /&gt;
&lt;br /&gt;
=== Tagged Links ===&lt;br /&gt;
&lt;br /&gt;
This one seems easier, because you could simply use a list of [[xfolk|xFolk]] items, which is recognizable.&lt;br /&gt;
&lt;br /&gt;
Alternatively we could also use the class name &amp;quot;linkroll&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
But how far can we successfully take that method (of adding a new class name for each specific use of XOXO) scale and continue working?&lt;br /&gt;
&lt;br /&gt;
=== Applying &amp;quot;compact&amp;quot;, Presentation Caveats ===&lt;br /&gt;
&lt;br /&gt;
Currently, setting DOM property &amp;lt;code&amp;gt;compact&amp;lt;/code&amp;gt; to &amp;lt;var&amp;gt;true&amp;lt;/var&amp;gt; in Gecko produces an empty-value &amp;lt;code&amp;gt;compact=&amp;quot;&amp;quot;&amp;lt;/code&amp;gt; attribute, rather than the valid &amp;lt;code&amp;gt;compact=&amp;quot;compact&amp;quot;&amp;lt;/code&amp;gt;. In order to account for this quirk/bug, the CSS2 selector should be:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ol[compact] { display: none; }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the XOXO item (represented by &amp;lt;code&amp;gt;li&amp;lt;/code&amp;gt; element) contains properties, the application of &amp;lt;code&amp;gt;compact&amp;lt;/code&amp;gt; may require more work to provide desired presentation. Since &amp;lt;code&amp;gt;compact&amp;lt;/code&amp;gt; applies to the list, not the item, the properties of the item remain unaffected by changing the value of the attribute on the list (which is a peer of the property bag, represented by &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt; element). For example, consider this XOXO fragment:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;select&lt;br /&gt;
		&amp;lt;dl&amp;gt;&lt;br /&gt;
			&amp;lt;dt&amp;gt;show-title&amp;lt;/dt&amp;gt;&lt;br /&gt;
			&amp;lt;dd&amp;gt;false&amp;lt;/dd&amp;gt;&lt;br /&gt;
		&amp;lt;/dl&amp;gt;&lt;br /&gt;
		&amp;lt;ol compact&amp;gt;&lt;br /&gt;
			&amp;lt;li&amp;gt;title&amp;lt;/li&amp;gt;&lt;br /&gt;
			&amp;lt;li&amp;gt;abstract&amp;lt;/li&amp;gt;&lt;br /&gt;
		&amp;lt;/ol&amp;gt;&lt;br /&gt;
	&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the desired presentation effect is to only show &amp;lt;var&amp;gt;select&amp;lt;/var&amp;gt; when the nested list is collapsed, additional information (like a class name, assigned to &amp;lt;code&amp;gt;li&amp;lt;/code&amp;gt; element) is necessary to hide &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt; element. In [http://www.w3.org/TR/2005/WD-css3-selectors-20051215/ CSS3], there is a way to somewhat address it using [http://www.w3.org/TR/2005/WD-css3-selectors-20051215/#general-sibling-combinators general sibling selectors]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ol[compact],&lt;br /&gt;
ol[compact] ~ dl { &lt;br /&gt;
   display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Parsing Properties ===&lt;br /&gt;
&lt;br /&gt;
* From HTML spec, the content of both [http://www.w3.org/TR/html4/struct/lists.html#h-10.3 dl], and [http://www.w3.org/TR/html4/struct/lists.html#h-10.2 li] can contain block or inline elements.&lt;br /&gt;
** this implies that special properties can include markup.&lt;br /&gt;
** naturally, &amp;lt;var&amp;gt;url&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;type&amp;lt;/var&amp;gt;, and &amp;lt;var&amp;gt;rel&amp;lt;/var&amp;gt; properties don't fit into this rule logically, but that's a reasonable exception.&lt;br /&gt;
* First &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; element specifies &amp;lt;var&amp;gt;text&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;url&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;title&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;type&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;rel&amp;lt;/var&amp;gt; properties&lt;br /&gt;
** If these properties are also defined using &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt;, they:&lt;br /&gt;
*** a. override values, specified in hyperlink&lt;br /&gt;
*** b. are ignored -- I ([[DimitriGlazkov]]) am leaning toward this choice&lt;br /&gt;
* First &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt; is treated as a special property set&lt;br /&gt;
** how to escape in case &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt; is content, not property set?&lt;br /&gt;
*** possibly like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul class=&amp;quot;xoxo&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
		&amp;lt;dl&amp;gt;&lt;br /&gt;
			&amp;lt;dt&amp;gt;text&amp;lt;/dt&amp;gt;&lt;br /&gt;
			&amp;lt;dd&amp;gt;&lt;br /&gt;
				&amp;lt;!-- escaped --&amp;gt;&lt;br /&gt;
				&amp;lt;dl class=&amp;quot;dictionary&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;dt&amp;gt;term&amp;lt;/dt&amp;gt;&lt;br /&gt;
					&amp;lt;dd&amp;gt;definition&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;/dl&amp;gt;&lt;br /&gt;
	&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Based on preliminary research, all parsers mentioned in [[xoxo-sample-code]] use property bag or dictionary to collect properties, which means that last value specified wins (overrides previously specified). This means that this bit of markup:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul class=&amp;quot;xoxo&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
		&amp;lt;a href=&amp;quot;http://microformats.org&amp;quot;&amp;gt;Microformats&amp;lt;/a&amp;gt;&lt;br /&gt;
		&amp;lt;dl&amp;gt;&lt;br /&gt;
			&amp;lt;dt&amp;gt;text&amp;lt;/dt&amp;gt;&lt;br /&gt;
			&amp;lt;dd&amp;gt;XOXO&amp;lt;/dd&amp;gt;&lt;br /&gt;
		&amp;lt;/dl&amp;gt;&lt;br /&gt;
	&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Will parse the value of &amp;lt;var&amp;gt;text&amp;lt;/var&amp;gt; property as &amp;lt;code&amp;gt;XOXO&amp;lt;/code&amp;gt;, not &amp;lt;code&amp;gt;Microformats&amp;lt;/code&amp;gt;. Not sure yet whether this this the right thing.&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=xoxo-brainstorming&amp;diff=19427</id>
		<title>xoxo-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=xoxo-brainstorming&amp;diff=19427"/>
		<updated>2007-08-07T18:41:30Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: Added Gecko DOM attribute quirk/bug note&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= XOXO brainstorming =&lt;br /&gt;
&lt;br /&gt;
== Authors ==&lt;br /&gt;
&lt;br /&gt;
* [http://tantek.com/log Tantek Çelik]&lt;br /&gt;
* [[DimitriGlazkov]]&lt;br /&gt;
&lt;br /&gt;
== Example Uses ==&lt;br /&gt;
&lt;br /&gt;
XOXO Lists and outlines are used for numerous special purposes across the web.  This section is here to document both best practices and recommendations.&lt;br /&gt;
&lt;br /&gt;
=== Blogrolls ===&lt;br /&gt;
&lt;br /&gt;
Background: See L.M. Orchard's post &amp;quot;[http://decafbad.com/blog/2005/11/27/subscriptions-are-attention-but-what-about-blogrolls Subscriptions Are Attention But What About Blogrolls]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Nearly all blogrolls are already published as XOXO on blog, but there is no obvious way to distinguish the XOXO blogroll from other lists in the content/header/footer of the blog.&lt;br /&gt;
&lt;br /&gt;
XOXO standardizes (see [[xoxo-profile]]) the class name &amp;quot;blogroll&amp;quot; for blogroll lists.  E.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;ul class=&amp;quot;xoxo blogroll&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;...&amp;quot;&amp;gt;...&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;...&amp;quot;&amp;gt;...&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that a blogroll is a superset of a subscription list.&lt;br /&gt;
&lt;br /&gt;
==== Subscription information ====&lt;br /&gt;
Some blogrolls contain feed information -- it would be nice if XOXO blogrolls could capture this information also. This, in and of itself, would be a nice step up from OPML.&lt;br /&gt;
&lt;br /&gt;
* An [http://www.opmlmanager.com/outliner/neuraxon77 example] of OPML to a XOXO list w/ expand/collapse folders&lt;br /&gt;
&lt;br /&gt;
===== Possible XOXO blogs+feeds markup =====&lt;br /&gt;
&lt;br /&gt;
Here is one example of how you could publish blogs+feeds in XOXO.  Note that since a XOXO parser will only treat the first hyperlink as the info for the list item, the blog names and URLs will be parsed, and the feeds will be ignored.  In reality, the blogs themselves should contain the necessary auto-discovery links to their own feeds, which is more reliable anyway.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;ul class=&amp;quot;xoxo blogroll&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;blogURL1&amp;quot;&amp;gt;Blog Name 1&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;.../index.xml&amp;quot; rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/atom+xml&amp;quot;&amp;gt;RSS&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;blogURL2&amp;quot;&amp;gt;Blog Name 2&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;.../index.xml&amp;quot; rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/rss+xml&amp;quot;&amp;gt;RSS&amp;lt;/&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;.../index.atom&amp;quot; rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/atom+xml&amp;quot;&amp;gt;Atom&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CSS styling could make this as pretty or not as desired.&lt;br /&gt;
&lt;br /&gt;
See also [[blog-info-examples]], [[blog-info-formats]], [[blog-info-brainstorming]], [http://blogxoxo.blogspot.com/2006/01/xoxo-blogroll-format.html XOXO Blogroll Format]&lt;br /&gt;
&lt;br /&gt;
=== Wishlists ===&lt;br /&gt;
&lt;br /&gt;
Background: See L.M. Orchard's post: &amp;quot;[http://decafbad.com/blog/2005/11/27/i-wish-it-were-in-xoxo I wish it were in XOXO]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Similar to blogrolls, what if we used the class name &amp;quot;wishlist&amp;quot;?&lt;br /&gt;
&lt;br /&gt;
What are the distinguishing features of wishlists?&lt;br /&gt;
&lt;br /&gt;
Is a wishlist item the same as a listing that is looking for an item?&lt;br /&gt;
See: [[listing-examples]], [[listing-formats]], [[listing-brainstorming]]&lt;br /&gt;
&lt;br /&gt;
=== Tagged Links ===&lt;br /&gt;
&lt;br /&gt;
This one seems easier, because you could simply use a list of [[xfolk|xFolk]] items, which is recognizable.&lt;br /&gt;
&lt;br /&gt;
Alternatively we could also use the class name &amp;quot;linkroll&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
But how far can we successfully take that method (of adding a new class name for each specific use of XOXO) scale and continue working?&lt;br /&gt;
&lt;br /&gt;
=== Applying &amp;quot;compact&amp;quot;, Presentation Caveats ===&lt;br /&gt;
&lt;br /&gt;
Currently, setting DOM property &amp;lt;code&amp;gt;compact&amp;lt;/code&amp;gt; to &amp;lt;var&amp;gt;true&amp;lt;/var&amp;gt; in Gecko produces an empty-value &amp;lt;code&amp;gt;compact=&amp;quot;&amp;quot;&amp;lt;/code&amp;gt; attribute, rather than the valid &amp;lt;code&amp;gt;compact=&amp;quot;compact&amp;quot;&amp;lt;/code&amp;gt;. In order to account for this quirk/bug, the CSS2 selector should be:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ol[compact] { display: none; }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the XOXO item (represented by &amp;lt;code&amp;gt;li&amp;lt;/code&amp;gt; element) contains properties, the application of &amp;lt;code&amp;gt;compact&amp;lt;/code&amp;gt; may require more work to provide desired presentation. Since &amp;lt;code&amp;gt;compact&amp;lt;/code&amp;gt; applies to the list, not the item, the properties of the item remain unaffected by changing the value of the attribute on the list (which is a peer of the property bag, represented by &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt; element). For example, consider this XOXO fragment:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;select&lt;br /&gt;
		&amp;lt;dl&amp;gt;&lt;br /&gt;
			&amp;lt;dt&amp;gt;show-title&amp;lt;/dt&amp;gt;&lt;br /&gt;
			&amp;lt;dd&amp;gt;false&amp;lt;/dd&amp;gt;&lt;br /&gt;
		&amp;lt;/dl&amp;gt;&lt;br /&gt;
		&amp;lt;ol compact&amp;gt;&lt;br /&gt;
			&amp;lt;li&amp;gt;title&amp;lt;/li&amp;gt;&lt;br /&gt;
			&amp;lt;li&amp;gt;abstract&amp;lt;/li&amp;gt;&lt;br /&gt;
		&amp;lt;/ol&amp;gt;&lt;br /&gt;
	&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the desired presentation effect is to only show &amp;lt;var&amp;gt;select&amp;lt;/var&amp;gt; when the nested list is collapsed, additional information (like a class name, assigned to &amp;lt;code&amp;gt;li&amp;lt;/code&amp;gt; element) is necessary to hide &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt; element. In [http://www.w3.org/TR/2005/WD-css3-selectors-20051215/ CSS3], there is a way to somewhat address it using [http://www.w3.org/TR/2005/WD-css3-selectors-20051215/#general-sibling-combinators general sibling selectors]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ol[compact],&lt;br /&gt;
ol[compact] ~ dl { &lt;br /&gt;
   display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Parsing Properties ===&lt;br /&gt;
&lt;br /&gt;
* From HTML spec, the content of both [http://www.w3.org/TR/html4/struct/lists.html#h-10.3 dl], and [http://www.w3.org/TR/html4/struct/lists.html#h-10.2 li] can contain block or inline elements.&lt;br /&gt;
** this implies that special properties can include markup.&lt;br /&gt;
** naturally, &amp;lt;var&amp;gt;url&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;type&amp;lt;/var&amp;gt;, and &amp;lt;var&amp;gt;rel&amp;lt;/var&amp;gt; properties don't fit into this rule logically, but that's a reasonable exception.&lt;br /&gt;
* First &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; element specifies &amp;lt;var&amp;gt;text&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;url&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;title&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;type&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;rel&amp;lt;/var&amp;gt; properties&lt;br /&gt;
** If these properties are also defined using &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt;, they:&lt;br /&gt;
*** a. override values, specified in hyperlink&lt;br /&gt;
*** b. are ignored -- I ([[DimitriGlazkov]]) am leaning toward this choice&lt;br /&gt;
* First &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt; is treated as a special property set&lt;br /&gt;
** how to escape in case &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt; is content, not property set?&lt;br /&gt;
*** possibly like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
		&amp;lt;dl&amp;gt;&lt;br /&gt;
			&amp;lt;a href=&amp;quot;http://microformats.org&amp;quot;&amp;gt;Microformats&amp;lt;/a&amp;gt;&lt;br /&gt;
			&amp;lt;dt&amp;gt;text&amp;lt;/dt&amp;gt;&lt;br /&gt;
			&amp;lt;dd&amp;gt;XOXO&amp;lt;/dd&amp;gt;&lt;br /&gt;
		&amp;lt;/dl&amp;gt;&lt;br /&gt;
	&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Based on preliminary research, all parsers mentioned in [[xoxo-sample-code]] use property bag or dictionary to collect properties, which means that last value specified wins (overrides previously specified). This means that this bit of markup:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
		&amp;lt;dl&amp;gt;&lt;br /&gt;
			&amp;lt;a href=&amp;quot;http://microformats.org&amp;quot;&amp;gt;Microformats&amp;lt;/a&amp;gt;&lt;br /&gt;
			&amp;lt;dt&amp;gt;text&amp;lt;/dt&amp;gt;&lt;br /&gt;
			&amp;lt;dd&amp;gt;XOXO&amp;lt;/dd&amp;gt;&lt;br /&gt;
	&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Will parse the value of &amp;lt;var&amp;gt;text&amp;lt;/var&amp;gt; property as &amp;lt;code&amp;gt;XOXO&amp;lt;/code&amp;gt;, not &amp;lt;code&amp;gt;Microformats&amp;lt;/code&amp;gt;. Not sure yet whether this this the right thing.&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=xoxo-brainstorming&amp;diff=19402</id>
		<title>xoxo-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=xoxo-brainstorming&amp;diff=19402"/>
		<updated>2007-08-07T18:36:14Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: added CSS3 selector example&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= XOXO brainstorming =&lt;br /&gt;
&lt;br /&gt;
== Authors ==&lt;br /&gt;
&lt;br /&gt;
* [http://tantek.com/log Tantek Çelik]&lt;br /&gt;
* [[DimitriGlazkov]]&lt;br /&gt;
&lt;br /&gt;
== Example Uses ==&lt;br /&gt;
&lt;br /&gt;
XOXO Lists and outlines are used for numerous special purposes across the web.  This section is here to document both best practices and recommendations.&lt;br /&gt;
&lt;br /&gt;
=== Blogrolls ===&lt;br /&gt;
&lt;br /&gt;
Background: See L.M. Orchard's post &amp;quot;[http://decafbad.com/blog/2005/11/27/subscriptions-are-attention-but-what-about-blogrolls Subscriptions Are Attention But What About Blogrolls]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Nearly all blogrolls are already published as XOXO on blog, but there is no obvious way to distinguish the XOXO blogroll from other lists in the content/header/footer of the blog.&lt;br /&gt;
&lt;br /&gt;
XOXO standardizes (see [[xoxo-profile]]) the class name &amp;quot;blogroll&amp;quot; for blogroll lists.  E.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;ul class=&amp;quot;xoxo blogroll&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;...&amp;quot;&amp;gt;...&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;...&amp;quot;&amp;gt;...&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that a blogroll is a superset of a subscription list.&lt;br /&gt;
&lt;br /&gt;
==== Subscription information ====&lt;br /&gt;
Some blogrolls contain feed information -- it would be nice if XOXO blogrolls could capture this information also. This, in and of itself, would be a nice step up from OPML.&lt;br /&gt;
&lt;br /&gt;
* An [http://www.opmlmanager.com/outliner/neuraxon77 example] of OPML to a XOXO list w/ expand/collapse folders&lt;br /&gt;
&lt;br /&gt;
===== Possible XOXO blogs+feeds markup =====&lt;br /&gt;
&lt;br /&gt;
Here is one example of how you could publish blogs+feeds in XOXO.  Note that since a XOXO parser will only treat the first hyperlink as the info for the list item, the blog names and URLs will be parsed, and the feeds will be ignored.  In reality, the blogs themselves should contain the necessary auto-discovery links to their own feeds, which is more reliable anyway.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;ul class=&amp;quot;xoxo blogroll&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;blogURL1&amp;quot;&amp;gt;Blog Name 1&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;.../index.xml&amp;quot; rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/atom+xml&amp;quot;&amp;gt;RSS&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;blogURL2&amp;quot;&amp;gt;Blog Name 2&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;.../index.xml&amp;quot; rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/rss+xml&amp;quot;&amp;gt;RSS&amp;lt;/&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;.../index.atom&amp;quot; rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/atom+xml&amp;quot;&amp;gt;Atom&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CSS styling could make this as pretty or not as desired.&lt;br /&gt;
&lt;br /&gt;
See also [[blog-info-examples]], [[blog-info-formats]], [[blog-info-brainstorming]], [http://blogxoxo.blogspot.com/2006/01/xoxo-blogroll-format.html XOXO Blogroll Format]&lt;br /&gt;
&lt;br /&gt;
=== Wishlists ===&lt;br /&gt;
&lt;br /&gt;
Background: See L.M. Orchard's post: &amp;quot;[http://decafbad.com/blog/2005/11/27/i-wish-it-were-in-xoxo I wish it were in XOXO]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Similar to blogrolls, what if we used the class name &amp;quot;wishlist&amp;quot;?&lt;br /&gt;
&lt;br /&gt;
What are the distinguishing features of wishlists?&lt;br /&gt;
&lt;br /&gt;
Is a wishlist item the same as a listing that is looking for an item?&lt;br /&gt;
See: [[listing-examples]], [[listing-formats]], [[listing-brainstorming]]&lt;br /&gt;
&lt;br /&gt;
=== Tagged Links ===&lt;br /&gt;
&lt;br /&gt;
This one seems easier, because you could simply use a list of [[xfolk|xFolk]] items, which is recognizable.&lt;br /&gt;
&lt;br /&gt;
Alternatively we could also use the class name &amp;quot;linkroll&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
But how far can we successfully take that method (of adding a new class name for each specific use of XOXO) scale and continue working?&lt;br /&gt;
&lt;br /&gt;
=== Applying &amp;quot;compact&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
If the XOXO item (represented by &amp;lt;code&amp;gt;li&amp;lt;/code&amp;gt; element) contains properties, the application of &amp;lt;code&amp;gt;compact&amp;lt;/code&amp;gt; may require more work to provide desired presentation. Since &amp;lt;code&amp;gt;compact&amp;lt;/code&amp;gt; applies to the list, not the item, the properties of the item remain unaffected by changing the value of the attribute on the list (which is a peer of the property bag, represented by &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt; element). For example, consider this XOXO fragment:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;select&lt;br /&gt;
		&amp;lt;dl&amp;gt;&lt;br /&gt;
			&amp;lt;dt&amp;gt;show-title&amp;lt;/dt&amp;gt;&lt;br /&gt;
			&amp;lt;dd&amp;gt;false&amp;lt;/dd&amp;gt;&lt;br /&gt;
		&amp;lt;/dl&amp;gt;&lt;br /&gt;
		&amp;lt;ol compact&amp;gt;&lt;br /&gt;
			&amp;lt;li&amp;gt;title&amp;lt;/li&amp;gt;&lt;br /&gt;
			&amp;lt;li&amp;gt;abstract&amp;lt;/li&amp;gt;&lt;br /&gt;
		&amp;lt;/ol&amp;gt;&lt;br /&gt;
	&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the desired presentation effect is to only show &amp;lt;var&amp;gt;select&amp;lt;/var&amp;gt; when the nested list is collapsed, additional information (like a class name, assigned to &amp;lt;code&amp;gt;li&amp;lt;/code&amp;gt; element) is necessary to hide &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt; element. In [http://www.w3.org/TR/2005/WD-css3-selectors-20051215/ CSS3], there is a way to somewhat address it using [http://www.w3.org/TR/2005/WD-css3-selectors-20051215/#general-sibling-combinators general sibling selectors]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ol[compact=&amp;quot;&amp;quot;],&lt;br /&gt;
ol[compact=&amp;quot;compact&amp;quot;], &lt;br /&gt;
ol[compact=&amp;quot;&amp;quot;] ~ dl,&lt;br /&gt;
ol[compact=&amp;quot;compact&amp;quot;] ~ dl { &lt;br /&gt;
   display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Parsing Properties ===&lt;br /&gt;
&lt;br /&gt;
* From HTML spec, the content of both [http://www.w3.org/TR/html4/struct/lists.html#h-10.3 dl], and [http://www.w3.org/TR/html4/struct/lists.html#h-10.2 li] can contain block or inline elements.&lt;br /&gt;
** this implies that special properties can include markup.&lt;br /&gt;
** naturally, &amp;lt;var&amp;gt;url&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;type&amp;lt;/var&amp;gt;, and &amp;lt;var&amp;gt;rel&amp;lt;/var&amp;gt; properties don't fit into this rule logically, but that's a reasonable exception.&lt;br /&gt;
* First &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; element specifies &amp;lt;var&amp;gt;text&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;url&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;title&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;type&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;rel&amp;lt;/var&amp;gt; properties&lt;br /&gt;
** If these properties are also defined using &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt;, they:&lt;br /&gt;
*** a. override values, specified in hyperlink&lt;br /&gt;
*** b. are ignored -- I ([[DimitriGlazkov]]) am leaning toward this choice&lt;br /&gt;
* First &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt; is treated as a special property set&lt;br /&gt;
** how to escape in case &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt; is content, not property set?&lt;br /&gt;
*** possibly like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
		&amp;lt;dl&amp;gt;&lt;br /&gt;
			&amp;lt;a href=&amp;quot;http://microformats.org&amp;quot;&amp;gt;Microformats&amp;lt;/a&amp;gt;&lt;br /&gt;
			&amp;lt;dt&amp;gt;text&amp;lt;/dt&amp;gt;&lt;br /&gt;
			&amp;lt;dd&amp;gt;XOXO&amp;lt;/dd&amp;gt;&lt;br /&gt;
		&amp;lt;/dl&amp;gt;&lt;br /&gt;
	&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Based on preliminary research, all parsers mentioned in [[xoxo-sample-code]] use property bag or dictionary to collect properties, which means that last value specified wins (overrides previously specified). This means that this bit of markup:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
		&amp;lt;dl&amp;gt;&lt;br /&gt;
			&amp;lt;a href=&amp;quot;http://microformats.org&amp;quot;&amp;gt;Microformats&amp;lt;/a&amp;gt;&lt;br /&gt;
			&amp;lt;dt&amp;gt;text&amp;lt;/dt&amp;gt;&lt;br /&gt;
			&amp;lt;dd&amp;gt;XOXO&amp;lt;/dd&amp;gt;&lt;br /&gt;
	&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Will parse the value of &amp;lt;var&amp;gt;text&amp;lt;/var&amp;gt; property as &amp;lt;code&amp;gt;XOXO&amp;lt;/code&amp;gt;, not &amp;lt;code&amp;gt;Microformats&amp;lt;/code&amp;gt;. Not sure yet whether this this the right thing.&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=xoxo-brainstorming&amp;diff=19401</id>
		<title>xoxo-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=xoxo-brainstorming&amp;diff=19401"/>
		<updated>2007-08-07T17:09:12Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: Applying compact and its use in presentation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= XOXO brainstorming =&lt;br /&gt;
&lt;br /&gt;
== Authors ==&lt;br /&gt;
&lt;br /&gt;
* [http://tantek.com/log Tantek Çelik]&lt;br /&gt;
* [[DimitriGlazkov]]&lt;br /&gt;
&lt;br /&gt;
== Example Uses ==&lt;br /&gt;
&lt;br /&gt;
XOXO Lists and outlines are used for numerous special purposes across the web.  This section is here to document both best practices and recommendations.&lt;br /&gt;
&lt;br /&gt;
=== Blogrolls ===&lt;br /&gt;
&lt;br /&gt;
Background: See L.M. Orchard's post &amp;quot;[http://decafbad.com/blog/2005/11/27/subscriptions-are-attention-but-what-about-blogrolls Subscriptions Are Attention But What About Blogrolls]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Nearly all blogrolls are already published as XOXO on blog, but there is no obvious way to distinguish the XOXO blogroll from other lists in the content/header/footer of the blog.&lt;br /&gt;
&lt;br /&gt;
XOXO standardizes (see [[xoxo-profile]]) the class name &amp;quot;blogroll&amp;quot; for blogroll lists.  E.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;ul class=&amp;quot;xoxo blogroll&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;...&amp;quot;&amp;gt;...&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;...&amp;quot;&amp;gt;...&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that a blogroll is a superset of a subscription list.&lt;br /&gt;
&lt;br /&gt;
==== Subscription information ====&lt;br /&gt;
Some blogrolls contain feed information -- it would be nice if XOXO blogrolls could capture this information also. This, in and of itself, would be a nice step up from OPML.&lt;br /&gt;
&lt;br /&gt;
* An [http://www.opmlmanager.com/outliner/neuraxon77 example] of OPML to a XOXO list w/ expand/collapse folders&lt;br /&gt;
&lt;br /&gt;
===== Possible XOXO blogs+feeds markup =====&lt;br /&gt;
&lt;br /&gt;
Here is one example of how you could publish blogs+feeds in XOXO.  Note that since a XOXO parser will only treat the first hyperlink as the info for the list item, the blog names and URLs will be parsed, and the feeds will be ignored.  In reality, the blogs themselves should contain the necessary auto-discovery links to their own feeds, which is more reliable anyway.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;ul class=&amp;quot;xoxo blogroll&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;blogURL1&amp;quot;&amp;gt;Blog Name 1&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;.../index.xml&amp;quot; rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/atom+xml&amp;quot;&amp;gt;RSS&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;blogURL2&amp;quot;&amp;gt;Blog Name 2&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;.../index.xml&amp;quot; rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/rss+xml&amp;quot;&amp;gt;RSS&amp;lt;/&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;.../index.atom&amp;quot; rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/atom+xml&amp;quot;&amp;gt;Atom&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CSS styling could make this as pretty or not as desired.&lt;br /&gt;
&lt;br /&gt;
See also [[blog-info-examples]], [[blog-info-formats]], [[blog-info-brainstorming]], [http://blogxoxo.blogspot.com/2006/01/xoxo-blogroll-format.html XOXO Blogroll Format]&lt;br /&gt;
&lt;br /&gt;
=== Wishlists ===&lt;br /&gt;
&lt;br /&gt;
Background: See L.M. Orchard's post: &amp;quot;[http://decafbad.com/blog/2005/11/27/i-wish-it-were-in-xoxo I wish it were in XOXO]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Similar to blogrolls, what if we used the class name &amp;quot;wishlist&amp;quot;?&lt;br /&gt;
&lt;br /&gt;
What are the distinguishing features of wishlists?&lt;br /&gt;
&lt;br /&gt;
Is a wishlist item the same as a listing that is looking for an item?&lt;br /&gt;
See: [[listing-examples]], [[listing-formats]], [[listing-brainstorming]]&lt;br /&gt;
&lt;br /&gt;
=== Tagged Links ===&lt;br /&gt;
&lt;br /&gt;
This one seems easier, because you could simply use a list of [[xfolk|xFolk]] items, which is recognizable.&lt;br /&gt;
&lt;br /&gt;
Alternatively we could also use the class name &amp;quot;linkroll&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
But how far can we successfully take that method (of adding a new class name for each specific use of XOXO) scale and continue working?&lt;br /&gt;
&lt;br /&gt;
=== Applying &amp;quot;compact&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
If the XOXO item (represented by &amp;lt;code&amp;gt;li&amp;lt;/code&amp;gt; element) contains properties, the application of &amp;lt;code&amp;gt;compact&amp;lt;/code&amp;gt; may require more work to provide desired presentation. Since &amp;lt;code&amp;gt;compact&amp;lt;/code&amp;gt; applies to the list, not the item, the properties of the item remain unaffected by changing the value of the attribute on the list (which is a peer of the property bag, represented by &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt; element). For example, consider this XOXO fragment:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;select&lt;br /&gt;
		&amp;lt;dl&amp;gt;&lt;br /&gt;
			&amp;lt;dt&amp;gt;show-title&amp;lt;/dt&amp;gt;&lt;br /&gt;
			&amp;lt;dd&amp;gt;false&amp;lt;/dd&amp;gt;&lt;br /&gt;
		&amp;lt;/dl&amp;gt;&lt;br /&gt;
		&amp;lt;ol compact&amp;gt;&lt;br /&gt;
			&amp;lt;li&amp;gt;title&amp;lt;/li&amp;gt;&lt;br /&gt;
			&amp;lt;li&amp;gt;abstract&amp;lt;/li&amp;gt;&lt;br /&gt;
		&amp;lt;/ol&amp;gt;&lt;br /&gt;
	&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the desired presentation effect is to only show &amp;lt;var&amp;gt;select&amp;lt;/var&amp;gt; when the nested list is collapsed, additional information (like a class name, assigned to &amp;lt;code&amp;gt;li&amp;lt;/code&amp;gt; element) is necessary to hide &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt; element. In [http://www.w3.org/TR/2005/WD-css3-selectors-20051215/ CSS3], there is a way to somewhat address it using [http://www.w3.org/TR/2005/WD-css3-selectors-20051215/#general-sibling-combinators general sibling selectors].&lt;br /&gt;
&lt;br /&gt;
=== Parsing Properties ===&lt;br /&gt;
&lt;br /&gt;
* From HTML spec, the content of both [http://www.w3.org/TR/html4/struct/lists.html#h-10.3 dl], and [http://www.w3.org/TR/html4/struct/lists.html#h-10.2 li] can contain block or inline elements.&lt;br /&gt;
** this implies that special properties can include markup.&lt;br /&gt;
** naturally, &amp;lt;var&amp;gt;url&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;type&amp;lt;/var&amp;gt;, and &amp;lt;var&amp;gt;rel&amp;lt;/var&amp;gt; properties don't fit into this rule logically, but that's a reasonable exception.&lt;br /&gt;
* First &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; element specifies &amp;lt;var&amp;gt;text&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;url&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;title&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;type&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;rel&amp;lt;/var&amp;gt; properties&lt;br /&gt;
** If these properties are also defined using &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt;, they:&lt;br /&gt;
*** a. override values, specified in hyperlink&lt;br /&gt;
*** b. are ignored -- I ([[DimitriGlazkov]]) am leaning toward this choice&lt;br /&gt;
* First &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt; is treated as a special property set&lt;br /&gt;
** how to escape in case &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt; is content, not property set?&lt;br /&gt;
*** possibly like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
		&amp;lt;dl&amp;gt;&lt;br /&gt;
			&amp;lt;a href=&amp;quot;http://microformats.org&amp;quot;&amp;gt;Microformats&amp;lt;/a&amp;gt;&lt;br /&gt;
			&amp;lt;dt&amp;gt;text&amp;lt;/dt&amp;gt;&lt;br /&gt;
			&amp;lt;dd&amp;gt;XOXO&amp;lt;/dd&amp;gt;&lt;br /&gt;
		&amp;lt;/dl&amp;gt;&lt;br /&gt;
	&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Based on preliminary research, all parsers mentioned in [[xoxo-sample-code]] use property bag or dictionary to collect properties, which means that last value specified wins (overrides previously specified). This means that this bit of markup:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
		&amp;lt;dl&amp;gt;&lt;br /&gt;
			&amp;lt;a href=&amp;quot;http://microformats.org&amp;quot;&amp;gt;Microformats&amp;lt;/a&amp;gt;&lt;br /&gt;
			&amp;lt;dt&amp;gt;text&amp;lt;/dt&amp;gt;&lt;br /&gt;
			&amp;lt;dd&amp;gt;XOXO&amp;lt;/dd&amp;gt;&lt;br /&gt;
	&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Will parse the value of &amp;lt;var&amp;gt;text&amp;lt;/var&amp;gt; property as &amp;lt;code&amp;gt;XOXO&amp;lt;/code&amp;gt;, not &amp;lt;code&amp;gt;Microformats&amp;lt;/code&amp;gt;. Not sure yet whether this this the right thing.&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=xoxo-brainstorming&amp;diff=19400</id>
		<title>xoxo-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=xoxo-brainstorming&amp;diff=19400"/>
		<updated>2007-08-06T16:27:34Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= XOXO brainstorming =&lt;br /&gt;
&lt;br /&gt;
== Authors ==&lt;br /&gt;
&lt;br /&gt;
* [http://tantek.com/log Tantek Çelik]&lt;br /&gt;
* [[DimitriGlazkov]]&lt;br /&gt;
&lt;br /&gt;
== Example Uses ==&lt;br /&gt;
&lt;br /&gt;
XOXO Lists and outlines are used for numerous special purposes across the web.  This section is here to document both best practices and recommendations.&lt;br /&gt;
&lt;br /&gt;
=== Blogrolls ===&lt;br /&gt;
&lt;br /&gt;
Background: See L.M. Orchard's post &amp;quot;[http://decafbad.com/blog/2005/11/27/subscriptions-are-attention-but-what-about-blogrolls Subscriptions Are Attention But What About Blogrolls]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Nearly all blogrolls are already published as XOXO on blog, but there is no obvious way to distinguish the XOXO blogroll from other lists in the content/header/footer of the blog.&lt;br /&gt;
&lt;br /&gt;
XOXO standardizes (see [[xoxo-profile]]) the class name &amp;quot;blogroll&amp;quot; for blogroll lists.  E.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;ul class=&amp;quot;xoxo blogroll&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;...&amp;quot;&amp;gt;...&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;...&amp;quot;&amp;gt;...&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that a blogroll is a superset of a subscription list.&lt;br /&gt;
&lt;br /&gt;
==== Subscription information ====&lt;br /&gt;
Some blogrolls contain feed information -- it would be nice if XOXO blogrolls could capture this information also. This, in and of itself, would be a nice step up from OPML.&lt;br /&gt;
&lt;br /&gt;
* An [http://www.opmlmanager.com/outliner/neuraxon77 example] of OPML to a XOXO list w/ expand/collapse folders&lt;br /&gt;
&lt;br /&gt;
===== Possible XOXO blogs+feeds markup =====&lt;br /&gt;
&lt;br /&gt;
Here is one example of how you could publish blogs+feeds in XOXO.  Note that since a XOXO parser will only treat the first hyperlink as the info for the list item, the blog names and URLs will be parsed, and the feeds will be ignored.  In reality, the blogs themselves should contain the necessary auto-discovery links to their own feeds, which is more reliable anyway.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;ul class=&amp;quot;xoxo blogroll&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;blogURL1&amp;quot;&amp;gt;Blog Name 1&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;.../index.xml&amp;quot; rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/atom+xml&amp;quot;&amp;gt;RSS&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;blogURL2&amp;quot;&amp;gt;Blog Name 2&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;.../index.xml&amp;quot; rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/rss+xml&amp;quot;&amp;gt;RSS&amp;lt;/&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;.../index.atom&amp;quot; rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/atom+xml&amp;quot;&amp;gt;Atom&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CSS styling could make this as pretty or not as desired.&lt;br /&gt;
&lt;br /&gt;
See also [[blog-info-examples]], [[blog-info-formats]], [[blog-info-brainstorming]], [http://blogxoxo.blogspot.com/2006/01/xoxo-blogroll-format.html XOXO Blogroll Format]&lt;br /&gt;
&lt;br /&gt;
=== Wishlists ===&lt;br /&gt;
&lt;br /&gt;
Background: See L.M. Orchard's post: &amp;quot;[http://decafbad.com/blog/2005/11/27/i-wish-it-were-in-xoxo I wish it were in XOXO]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Similar to blogrolls, what if we used the class name &amp;quot;wishlist&amp;quot;?&lt;br /&gt;
&lt;br /&gt;
What are the distinguishing features of wishlists?&lt;br /&gt;
&lt;br /&gt;
Is a wishlist item the same as a listing that is looking for an item?&lt;br /&gt;
See: [[listing-examples]], [[listing-formats]], [[listing-brainstorming]]&lt;br /&gt;
&lt;br /&gt;
=== Tagged Links ===&lt;br /&gt;
&lt;br /&gt;
This one seems easier, because you could simply use a list of [[xfolk|xFolk]] items, which is recognizable.&lt;br /&gt;
&lt;br /&gt;
Alternatively we could also use the class name &amp;quot;linkroll&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
But how far can we successfully take that method (of adding a new class name for each specific use of XOXO) scale and continue workng?&lt;br /&gt;
&lt;br /&gt;
=== Parsing Properties ===&lt;br /&gt;
&lt;br /&gt;
* From HTML spec, the content of both [http://www.w3.org/TR/html4/struct/lists.html#h-10.3 dl], and [http://www.w3.org/TR/html4/struct/lists.html#h-10.2 li] can contain block or inline elements.&lt;br /&gt;
** this implies that special properties can include markup.&lt;br /&gt;
** naturally, &amp;lt;var&amp;gt;url&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;type&amp;lt;/var&amp;gt;, and &amp;lt;var&amp;gt;rel&amp;lt;/var&amp;gt; properties don't fit into this rule logically, but that's a reasonable exception.&lt;br /&gt;
* First &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; element specifies &amp;lt;var&amp;gt;text&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;url&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;title&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;type&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;rel&amp;lt;/var&amp;gt; properties&lt;br /&gt;
** If these properties are also defined using &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt;, they:&lt;br /&gt;
*** a. override values, specified in hyperlink&lt;br /&gt;
*** b. are ignored -- I ([[DimitriGlazkov]]) am leaning toward this choice&lt;br /&gt;
* First &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt; is treated as a special property set&lt;br /&gt;
** how to escape in case &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt; is content, not property set?&lt;br /&gt;
*** possibly like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
		&amp;lt;dl&amp;gt;&lt;br /&gt;
			&amp;lt;a href=&amp;quot;http://microformats.org&amp;quot;&amp;gt;Microformats&amp;lt;/a&amp;gt;&lt;br /&gt;
			&amp;lt;dt&amp;gt;text&amp;lt;/dt&amp;gt;&lt;br /&gt;
			&amp;lt;dd&amp;gt;XOXO&amp;lt;/dd&amp;gt;&lt;br /&gt;
		&amp;lt;/dl&amp;gt;&lt;br /&gt;
	&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Based on preliminary research, all parsers mentioned in [[xoxo-sample-code]] use property bag or dictionary to collect properties, which means that last value specified wins (overrides previously specified). This means that this bit of markup:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
		&amp;lt;dl&amp;gt;&lt;br /&gt;
			&amp;lt;a href=&amp;quot;http://microformats.org&amp;quot;&amp;gt;Microformats&amp;lt;/a&amp;gt;&lt;br /&gt;
			&amp;lt;dt&amp;gt;text&amp;lt;/dt&amp;gt;&lt;br /&gt;
			&amp;lt;dd&amp;gt;XOXO&amp;lt;/dd&amp;gt;&lt;br /&gt;
	&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Will parse the value of &amp;lt;var&amp;gt;text&amp;lt;/var&amp;gt; property as &amp;lt;code&amp;gt;XOXO&amp;lt;/code&amp;gt;, not &amp;lt;code&amp;gt;Microformats&amp;lt;/code&amp;gt;. Not sure yet whether this this the right thing.&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=xoxo-brainstorming&amp;diff=19377</id>
		<title>xoxo-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=xoxo-brainstorming&amp;diff=19377"/>
		<updated>2007-08-06T16:26:47Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: spelling is not my forte&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= XOXO brainstorming =&lt;br /&gt;
&lt;br /&gt;
== Authors ==&lt;br /&gt;
&lt;br /&gt;
* [http://tantek.com/log Tantek Çelik]&lt;br /&gt;
* [[DimitriGlazkov]]&lt;br /&gt;
&lt;br /&gt;
== Example Uses ==&lt;br /&gt;
&lt;br /&gt;
XOXO Lists and outlines are used for numerous special purposes across the web.  This section is here to document both best practices and recommendations.&lt;br /&gt;
&lt;br /&gt;
=== Blogrolls ===&lt;br /&gt;
&lt;br /&gt;
Background: See L.M. Orchard's post &amp;quot;[http://decafbad.com/blog/2005/11/27/subscriptions-are-attention-but-what-about-blogrolls Subscriptions Are Attention But What About Blogrolls]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Nearly all blogrolls are already published as XOXO on blog, but there is no obvious way to distinguish the XOXO blogroll from other lists in the content/header/footer of the blog.&lt;br /&gt;
&lt;br /&gt;
XOXO standardizes (see [[xoxo-profile]]) the class name &amp;quot;blogroll&amp;quot; for blogroll lists.  E.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;ul class=&amp;quot;xoxo blogroll&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;...&amp;quot;&amp;gt;...&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;...&amp;quot;&amp;gt;...&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that a blogroll is a superset of a subscription list.&lt;br /&gt;
&lt;br /&gt;
==== Subscription information ====&lt;br /&gt;
Some blogrolls contain feed information -- it would be nice if XOXO blogrolls could capture this information also. This, in and of itself, would be a nice step up from OPML.&lt;br /&gt;
&lt;br /&gt;
* An [http://www.opmlmanager.com/outliner/neuraxon77 example] of OPML to a XOXO list w/ expand/collapse folders&lt;br /&gt;
&lt;br /&gt;
===== Possible XOXO blogs+feeds markup =====&lt;br /&gt;
&lt;br /&gt;
Here is one example of how you could publish blogs+feeds in XOXO.  Note that since a XOXO parser will only treat the first hyperlink as the info for the list item, the blog names and URLs will be parsed, and the feeds will be ignored.  In reality, the blogs themselves should contain the necessary auto-discovery links to their own feeds, which is more reliable anyway.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;ul class=&amp;quot;xoxo blogroll&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;blogURL1&amp;quot;&amp;gt;Blog Name 1&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;.../index.xml&amp;quot; rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/atom+xml&amp;quot;&amp;gt;RSS&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;blogURL2&amp;quot;&amp;gt;Blog Name 2&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;.../index.xml&amp;quot; rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/rss+xml&amp;quot;&amp;gt;RSS&amp;lt;/&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;.../index.atom&amp;quot; rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/atom+xml&amp;quot;&amp;gt;Atom&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CSS styling could make this as pretty or not as desired.&lt;br /&gt;
&lt;br /&gt;
See also [[blog-info-examples]], [[blog-info-formats]], [[blog-info-brainstorming]], [http://blogxoxo.blogspot.com/2006/01/xoxo-blogroll-format.html XOXO Blogroll Format]&lt;br /&gt;
&lt;br /&gt;
=== Wishlists ===&lt;br /&gt;
&lt;br /&gt;
Background: See L.M. Orchard's post: &amp;quot;[http://decafbad.com/blog/2005/11/27/i-wish-it-were-in-xoxo I wish it were in XOXO]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Similar to blogrolls, what if we used the class name &amp;quot;wishlist&amp;quot;?&lt;br /&gt;
&lt;br /&gt;
What are the distinguishing features of wishlists?&lt;br /&gt;
&lt;br /&gt;
Is a wishlist item the same as a listing that is looking for an item?&lt;br /&gt;
See: [[listing-examples]], [[listing-formats]], [[listing-brainstorming]]&lt;br /&gt;
&lt;br /&gt;
=== Tagged Links ===&lt;br /&gt;
&lt;br /&gt;
This one seems easier, because you could simply use a list of [[xfolk|xFolk]] items, which is recognizable.&lt;br /&gt;
&lt;br /&gt;
Alternatively we could also use the class name &amp;quot;linkroll&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
But how far can we successfully take that method (of adding a new class name for each specific use of XOXO) scale and continue workng?&lt;br /&gt;
&lt;br /&gt;
=== Parsing Properties ===&lt;br /&gt;
&lt;br /&gt;
* From HTML spec, the content of both [http://www.w3.org/TR/html4/struct/lists.html#h-10.3 dl], and [http://www.w3.org/TR/html4/struct/lists.html#h-10.2 li] can contain block or inline elements.&lt;br /&gt;
** this implies that special properties can include markup.&lt;br /&gt;
** naturally, &amp;lt;var&amp;gt;url&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;type&amp;lt;/var&amp;gt;, and &amp;lt;var&amp;gt;rel&amp;lt;/var&amp;gt; properties don't fit into this rule logically, but that's a reasonable exception.&lt;br /&gt;
* First &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; element specifies &amp;lt;var&amp;gt;text&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;url&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;title&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;type&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;rel&amp;lt;/var&amp;gt; properties&lt;br /&gt;
** If these properties are also defined using &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt;, they:&lt;br /&gt;
*** a. override values, specified in hyperlink&lt;br /&gt;
*** b. are ignored -- I ([[DimitriGlazkov]]) am leaning toward this choice&lt;br /&gt;
* First &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt; is treated as a special property set&lt;br /&gt;
** how to escape in case &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt; is content, not property set?&lt;br /&gt;
*** possibly like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
		&amp;lt;dl&amp;gt;&lt;br /&gt;
			&amp;lt;a href=&amp;quot;http://microformats.org&amp;quot;&amp;gt;Microformats&amp;lt;/a&amp;gt;&lt;br /&gt;
			&amp;lt;dt&amp;gt;text&amp;lt;/dt&amp;gt;&lt;br /&gt;
			&amp;lt;dd&amp;gt;XOXO&amp;lt;/dd&amp;gt;&lt;br /&gt;
		&amp;lt;/dl&amp;gt;&lt;br /&gt;
	&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Based on preliminary research, all parsers mentioned in [[xoxo-sample-code]] use property bag or dictionary to collect properties, which means that last value specified wins (overrides previously specified). This means that this bit of markup:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
		&amp;lt;dl&amp;gt;&lt;br /&gt;
			&amp;lt;a href=&amp;quot;http://microformats.org&amp;quot;&amp;gt;Microformats&amp;lt;/a&amp;gt;&lt;br /&gt;
			&amp;lt;dt&amp;gt;text&amp;lt;/dt&amp;gt;&lt;br /&gt;
			&amp;lt;dd&amp;gt;XOXO&amp;lt;/dd&amp;gt;&lt;br /&gt;
	&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Will parse the value of &amp;lt;var&amp;gt;text&amp;lt;/var&amp;gt; property as &amp;lt;code&amp;gt;XOXO&amp;lt;/code&amp;gt;, not &amp;lt;code&amp;gt;Microformats&amp;lt;/code&amp;gt;. Not sure yet whether this this th _right thing_.&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=xoxo-brainstorming&amp;diff=19376</id>
		<title>xoxo-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=xoxo-brainstorming&amp;diff=19376"/>
		<updated>2007-08-06T16:24:49Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: Code-reading results&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= XOXO brainstorming =&lt;br /&gt;
&lt;br /&gt;
== Authors ==&lt;br /&gt;
&lt;br /&gt;
* [http://tantek.com/log Tantek Çelik]&lt;br /&gt;
* [[DimitriGlazkov]]&lt;br /&gt;
&lt;br /&gt;
== Example Uses ==&lt;br /&gt;
&lt;br /&gt;
XOXO Lists and outlines are used for numerous special purposes across the web.  This section is here to document both best practices and recommendations.&lt;br /&gt;
&lt;br /&gt;
=== Blogrolls ===&lt;br /&gt;
&lt;br /&gt;
Background: See L.M. Orchard's post &amp;quot;[http://decafbad.com/blog/2005/11/27/subscriptions-are-attention-but-what-about-blogrolls Subscriptions Are Attention But What About Blogrolls]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Nearly all blogrolls are already published as XOXO on blog, but there is no obvious way to distinguish the XOXO blogroll from other lists in the content/header/footer of the blog.&lt;br /&gt;
&lt;br /&gt;
XOXO standardizes (see [[xoxo-profile]]) the class name &amp;quot;blogroll&amp;quot; for blogroll lists.  E.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;ul class=&amp;quot;xoxo blogroll&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;...&amp;quot;&amp;gt;...&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;...&amp;quot;&amp;gt;...&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that a blogroll is a superset of a subscription list.&lt;br /&gt;
&lt;br /&gt;
==== Subscription information ====&lt;br /&gt;
Some blogrolls contain feed information -- it would be nice if XOXO blogrolls could capture this information also. This, in and of itself, would be a nice step up from OPML.&lt;br /&gt;
&lt;br /&gt;
* An [http://www.opmlmanager.com/outliner/neuraxon77 example] of OPML to a XOXO list w/ expand/collapse folders&lt;br /&gt;
&lt;br /&gt;
===== Possible XOXO blogs+feeds markup =====&lt;br /&gt;
&lt;br /&gt;
Here is one example of how you could publish blogs+feeds in XOXO.  Note that since a XOXO parser will only treat the first hyperlink as the info for the list item, the blog names and URLs will be parsed, and the feeds will be ignored.  In reality, the blogs themselves should contain the necessary auto-discovery links to their own feeds, which is more reliable anyway.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;ul class=&amp;quot;xoxo blogroll&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;blogURL1&amp;quot;&amp;gt;Blog Name 1&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;.../index.xml&amp;quot; rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/atom+xml&amp;quot;&amp;gt;RSS&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;blogURL2&amp;quot;&amp;gt;Blog Name 2&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;.../index.xml&amp;quot; rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/rss+xml&amp;quot;&amp;gt;RSS&amp;lt;/&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;.../index.atom&amp;quot; rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/atom+xml&amp;quot;&amp;gt;Atom&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CSS styling could make this as pretty or not as desired.&lt;br /&gt;
&lt;br /&gt;
See also [[blog-info-examples]], [[blog-info-formats]], [[blog-info-brainstorming]], [http://blogxoxo.blogspot.com/2006/01/xoxo-blogroll-format.html XOXO Blogroll Format]&lt;br /&gt;
&lt;br /&gt;
=== Wishlists ===&lt;br /&gt;
&lt;br /&gt;
Background: See L.M. Orchard's post: &amp;quot;[http://decafbad.com/blog/2005/11/27/i-wish-it-were-in-xoxo I wish it were in XOXO]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Similar to blogrolls, what if we used the class name &amp;quot;wishlist&amp;quot;?&lt;br /&gt;
&lt;br /&gt;
What are the distinguishing features of wishlists?&lt;br /&gt;
&lt;br /&gt;
Is a wishlist item the same as a listing that is looking for an item?&lt;br /&gt;
See: [[listing-examples]], [[listing-formats]], [[listing-brainstorming]]&lt;br /&gt;
&lt;br /&gt;
=== Tagged Links ===&lt;br /&gt;
&lt;br /&gt;
This one seems easier, because you could simply use a list of [[xfolk|xFolk]] items, which is recognizable.&lt;br /&gt;
&lt;br /&gt;
Alternatively we could also use the class name &amp;quot;linkroll&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
But how far can we successfully take that method (of adding a new class name for each specific use of XOXO) scale and continue workng?&lt;br /&gt;
&lt;br /&gt;
=== Parsing Properties ===&lt;br /&gt;
&lt;br /&gt;
* From HTML spec, the content of both [http://www.w3.org/TR/html4/struct/lists.html#h-10.3 dl], and [http://www.w3.org/TR/html4/struct/lists.html#h-10.2 li] can contain block or inline elements.&lt;br /&gt;
** this implies that special properties can include markup.&lt;br /&gt;
** naturally, &amp;lt;var&amp;gt;url&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;type&amp;lt;/var&amp;gt;, and &amp;lt;var&amp;gt;rel&amp;lt;/var&amp;gt; properties don't fit into this rule logically, but that's a reasonable exception.&lt;br /&gt;
* First &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; element specifies &amp;lt;var&amp;gt;text&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;url&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;title&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;type&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;rel&amp;lt;/var&amp;gt; properties&lt;br /&gt;
** If these properties are also defined using &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt;, they:&lt;br /&gt;
*** a. override values, specified in hyperlink&lt;br /&gt;
*** b. are ignored -- I ([[DimitriGlazkov]]) am leaning toward this choice&lt;br /&gt;
* First &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt; is treated as a special property set&lt;br /&gt;
** how to escape in case &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt; is content, not property set?&lt;br /&gt;
*** possibly like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
		&amp;lt;dl&amp;gt;&lt;br /&gt;
			&amp;lt;dt&amp;gt;text&amp;lt;/dt&amp;gt;&lt;br /&gt;
			&amp;lt;dd&amp;gt;&lt;br /&gt;
				&amp;lt;dl&amp;gt;&lt;br /&gt;
					&amp;lt;dt&amp;gt;escaped&amp;lt;/dt&amp;gt;&lt;br /&gt;
					&amp;lt;dd&amp;gt;not a property set&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;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Based on preliminary research, all parser mentioned in [[xoxo-sample-code]] use property bag or dictionary to collect properties, which means that last value specified wins (overrides previously specified). This means that this bit of markup:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
		&amp;lt;dl&amp;gt;&lt;br /&gt;
			&amp;lt;a href=&amp;quot;http://microformats.org&amp;quot;&amp;gt;Microformats&amp;lt;/a&amp;gt;&lt;br /&gt;
			&amp;lt;dt&amp;gt;text&amp;lt;/dt&amp;gt;&lt;br /&gt;
			&amp;lt;dd&amp;gt;XOXO&amp;lt;/dd&amp;gt;&lt;br /&gt;
	&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Will parse the value of &amp;lt;var&amp;gt;text&amp;lt;/var&amp;gt; property as &amp;lt;code&amp;gt;XOXO&amp;lt;/code&amp;gt;.&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=xoxo&amp;diff=19432</id>
		<title>xoxo</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=xoxo&amp;diff=19432"/>
		<updated>2007-08-06T16:16:26Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: Added multi-value properties&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt; XOXO 1.0: Extensible Open XHTML Outlines &amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
XOXO is a simple, open outline format written in standard XHTML and suitable for embedding in (X)HTML, Atom, RSS, and arbitrary XML. XOXO is one of several [[microformats|microformat]] open standards. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Draft Specification 2004-10-01 ==&lt;br /&gt;
&lt;br /&gt;
=== Editor ===&lt;br /&gt;
[http://tantek.com/ Tantek Çelik] ([http://technorati.com Technorati, Inc])&lt;br /&gt;
&lt;br /&gt;
=== Authors ===&lt;br /&gt;
* [http://epeus.blogspot.com/ Kevin Marks] ([http://technorati.com Technorati, Inc])&lt;br /&gt;
* [http://tantek.com/ Tantek Çelik] ([http://technorati.com Technorati, Inc], formerly of [http://microsoft.com/ Microsoft Corporation])&lt;br /&gt;
* [http://diveintomark.org/ Mark Pilgrim] ([http://ibm.com IBM])&lt;br /&gt;
* [http://www.blogologue.com/ Morten W. Petersen]&lt;br /&gt;
&lt;br /&gt;
=== Copyright ===&lt;br /&gt;
{{MicroFormatCopyrightStatement2003}}&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;
== Preamble ==&lt;br /&gt;
When we were discussing [http://developers.technorati.com/wiki/attentionxml Attention.xml], Tantek pointed out that XHTML has everything necessary for semantically expressing outlines and blogroll-like subscriptions in an XML format that is both interactively renderable by browsers and parsable by strict XML engines. This page is here to discuss this idea.&lt;br /&gt;
&lt;br /&gt;
=== Name ===&lt;br /&gt;
XOXO stands for eXtensible Open XHTML Outlines, and is pronounced variously as 'ecks oh ecks oh', 'zho-zho', or 'sho-sho'.&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
XOXO is one of several [[microformats]].  This specification defines a new XHTML document type that is based upon the module framework and modules defined in Modularization of XHTML ([http://www.w3.org/TR/xhtml-modularization XHTMLMOD]). The purpose of the XOXO document type is to serve as the basis for XHTML friendly outlines for processing by XML engines and for easy interactive rendering by browsers.&lt;br /&gt;
&lt;br /&gt;
== The XOXO Document Type ==&lt;br /&gt;
The XOXO document type is made up of the following XHTML modules. The elements, attributes, and minimal content models associated with these modules are defined in &amp;quot;Modularization of XHTML&amp;quot; ([http://www.w3.org/TR/xhtml-modularization XHTMLMOD]). The elements are listed here for information purposes, but the definitions in &amp;quot;Modularization of XHTML&amp;quot; should be considered definitive. In the on-line version of this document, the module names in the list below link into the definitions of the modules within the current version of &amp;quot;Modularization of XHTML&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_structuremodule Structure Module]&lt;br /&gt;
  body, head, html, title&lt;br /&gt;
[http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_hypertextmodule Hypertext Module]&lt;br /&gt;
  a&lt;br /&gt;
[http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_listmodule List Module]&lt;br /&gt;
  dl, dt, dd, ol, ul, li&lt;br /&gt;
[http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_metamodule Metainformation Module]&lt;br /&gt;
  meta&lt;br /&gt;
[http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_stylemodule Stylesheet Module]&lt;br /&gt;
  style element&lt;br /&gt;
[http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_styleattributemodule Style Attribute Module]&lt;br /&gt;
  style attribute&lt;br /&gt;
[http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_linkmodule Link Module]&lt;br /&gt;
  link&lt;br /&gt;
[http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_legacymodule Legacy Module]&lt;br /&gt;
  Attribute compact on ol and ul&lt;br /&gt;
&lt;br /&gt;
=== The XOXO Profile ===&lt;br /&gt;
&lt;br /&gt;
See [[xoxo-profile]] for the [http://gmpg.org/xmdp XMDP] profile of XOXO which defines the XOXO values for the class attribute.&lt;br /&gt;
&lt;br /&gt;
== Simple XOXO Fragment ==&lt;br /&gt;
&lt;br /&gt;
=== Markup ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;ol class='xoxo'&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Subject 1&lt;br /&gt;
    &amp;lt;ol&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;subpoint a&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;subpoint b&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Subject 2&lt;br /&gt;
    &amp;lt;ol compact=&amp;quot;compact&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;subpoint c&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;subpoint d&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Subject 3&lt;br /&gt;
    &amp;lt;ol&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;subpoint e&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sample Rendering ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
   1. Subject 1&lt;br /&gt;
      a. subpoint a&lt;br /&gt;
      b. subpoint b&lt;br /&gt;
   2. Subject 2&lt;br /&gt;
   3. Subject 3&lt;br /&gt;
      a. subpoint e&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Usage of 'compact' attribute ===&lt;br /&gt;
&lt;br /&gt;
Note the use of the 'compact' attribute to indicate that the subpoints of the headline &amp;quot;Subject 2&amp;quot; are not in an expanded state.  The absence of the 'compact' attribute elsewhere indicates that the other headlines are in an expanded state.&lt;br /&gt;
&lt;br /&gt;
=== Possible Default Style Rules for Sample Rendering ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
ol.xoxo { list-style:decimal; }&lt;br /&gt;
ol.xoxo ol { list-style:lower-latin; }&lt;br /&gt;
ol[compact=&amp;quot;compact&amp;quot;] { display:none; }&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== More Simple Examples ==&lt;br /&gt;
&lt;br /&gt;
MarkP has a set of examples that demonstrates both the simplicity of the markup and the presentational richness that is possible:&lt;br /&gt;
&lt;br /&gt;
* [http://diveintomark.org/public/2004/01/xo-flat.xo simple XO file that can be embedded directly into an XHTML page]&lt;br /&gt;
* [http://diveintomark.org/public/2004/01/xo-embeddable.xo XO with nested groups, also directly embeddedable in XHTML]&lt;br /&gt;
* [http://diveintomark.org/public/2004/01/xo-standalone.xo XO as a standalone XHTML page] ([http://validator.w3.org/check?uri=http%3A%2F%2Fdiveintomark.org%2Fpublic%2F2004%2F01%2Fxo-standalone.xo valid XHTML])&lt;br /&gt;
* [http://diveintomark.org/public/2004/01/xo-with-style.xo XO as a standalone XHTML page, styled with CSS] ([http://validator.w3.org/check?uri=http%3A%2F%2Fdiveintomark.org%2Fpublic%2F2004%2F01%2Fxo-with-style.xo also valid XHTML])&lt;br /&gt;
* [http://homepage.mac.com/ctholland/thelab/outlines/ Chris Holland Outline Helper]: tweaked one of above samples, yanked CSS for simplicity, added reference to [http://homepage.mac.com/ctholland/thelab/outlines/outlines.css outlines.css] and [http://homepage.mac.com/ctholland/thelab/outlines/outlines.js outlines.js], pasted a few different combinations of ul/ol/li with the compact attribute.&lt;br /&gt;
** in trying to comply with semantic principles the &amp;quot;compact&amp;quot; attribute to ol and ul elements is what drives the display state. Via scripting, i'm setting classes on containing li element for added styling flexibility, though CSS Gurus might be able to replace &amp;quot;li.expanded&amp;quot; in outlines.css with some other CSS selector that says &amp;quot;select an li node that contains an ol node with a 'compact' attribute set&amp;quot;.&lt;br /&gt;
*** The CSS selector for &amp;quot;an li node that contains an ol node with a 'compact' attribute set&amp;quot; would be 'li ol[compact=&amp;quot;compact&amp;quot;]'.&lt;br /&gt;
&lt;br /&gt;
== Properties of Outline Items ==&lt;br /&gt;
Outlines typically consist of a hierarchy of points and subpoints.  Each of those points (outline items) itself may have some properties (AKA attributes or metadata) that need to be represented.  Perhaps the most common additional property on outline items in practice is the URL as demonstrated in Mark Pilgrim's examples above.  Even the text label/title of an outline item could be considered a common property.  A few such common properties:&lt;br /&gt;
* text&lt;br /&gt;
* description&lt;br /&gt;
* url (often called xmlurl or htmlurl; sometimes called permalink)&lt;br /&gt;
* title&lt;br /&gt;
* type (hint of the MIME type of the resource indicated by the URL)&lt;br /&gt;
&lt;br /&gt;
In general, properties on an outline item &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;li&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; are represented by a nested definition list &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;dl&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.  Strictly speaking, it is the first &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;dl&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; inside the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;li&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and before any following &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;ol&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;amp;lt;ul&amp;amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;&amp;amp;lt;li&amp;amp;gt;&amp;lt;/code&amp;gt;, e.g. here is an item &amp;quot;item 1&amp;quot; with a description property (the subpoints are there purely as a point of reference to an earlier example).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;ol class='xoxo'&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;item 1&lt;br /&gt;
    &amp;lt;dl&amp;gt;&lt;br /&gt;
      &amp;lt;dt&amp;gt;description&amp;lt;/dt&amp;gt;&lt;br /&gt;
        &amp;lt;dd&amp;gt;This item represents the main point we're trying to make.&amp;lt;/dd&amp;gt;&lt;br /&gt;
    &amp;lt;/dl&amp;gt;&lt;br /&gt;
    &amp;lt;ol&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;subpoint a&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;subpoint b&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Special Properties ===&lt;br /&gt;
There are a handful of special properties which we are able to represent more directly and conveniently with the semantic XHTML building blocks that we have included, instead of terms in a definition list.  Mostly taken from the above list of common properties, these are:&lt;br /&gt;
* text, url, title, type, and rel (short for relationship)&lt;br /&gt;
&lt;br /&gt;
If we were to represent them simply as definition terms (including the &amp;quot;description&amp;quot; property from the previous example), they might look something like this:&lt;br /&gt;
&lt;br /&gt;
Example for the sake of discussion only / not a canonical XOXO example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;ol class='xoxo'&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;dl&amp;gt;&lt;br /&gt;
      &amp;lt;dt&amp;gt;text&amp;lt;/dt&amp;gt;&lt;br /&gt;
        &amp;lt;dd&amp;gt;item 1&amp;lt;/dd&amp;gt;&lt;br /&gt;
      &amp;lt;dt&amp;gt;description&amp;lt;/dt&amp;gt;&lt;br /&gt;
        &amp;lt;dd&amp;gt; This item represents the main point we're trying to make.&amp;lt;/dd&amp;gt;&lt;br /&gt;
      &amp;lt;dt&amp;gt;url&amp;lt;/dt&amp;gt;&lt;br /&gt;
        &amp;lt;dd&amp;gt;http://example.com/more.xoxo&amp;lt;/dd&amp;gt;&lt;br /&gt;
      &amp;lt;dt&amp;gt;title&amp;lt;/dt&amp;gt;&lt;br /&gt;
        &amp;lt;dd&amp;gt;title of item 1&amp;lt;/dd&amp;gt;&lt;br /&gt;
      &amp;lt;dt&amp;gt;type&amp;lt;/dt&amp;gt;&lt;br /&gt;
        &amp;lt;dd&amp;gt;text/xml&amp;lt;/dd&amp;gt;&lt;br /&gt;
      &amp;lt;dt&amp;gt;rel&amp;lt;/dt&amp;gt;&lt;br /&gt;
        &amp;lt;dd&amp;gt;help&amp;lt;/dd&amp;gt;&lt;br /&gt;
    &amp;lt;/dl&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, by taking advantage of the semantic &amp;lt;code&amp;gt;&amp;lt;a href&amp;gt;&amp;lt;/code&amp;gt; element, we are able to dramatically simplify the common cases that utilize these properties.  From a parser's perspective, this applies to the first  &amp;lt;code&amp;gt;&amp;lt;a href&amp;gt;&amp;lt;/code&amp;gt; element directly inside the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;amp;lt;li&amp;amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Actual XOXO Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;ol class='xoxo'&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://example.com/more.xoxo&amp;quot;&lt;br /&gt;
         title=&amp;quot;title of item 1&amp;quot;&lt;br /&gt;
         type=&amp;quot;text/xml&amp;quot;&lt;br /&gt;
         rel=&amp;quot;help&amp;quot;&amp;gt;item 1&amp;lt;/a&amp;gt; &lt;br /&gt;
&amp;lt;!-- note how the &amp;quot;text&amp;quot; property is simply the contents of the &amp;lt;a&amp;gt; element --&amp;gt;&lt;br /&gt;
      &amp;lt;dl&amp;gt;&lt;br /&gt;
        &amp;lt;dt&amp;gt;description&amp;lt;/dt&amp;gt;&lt;br /&gt;
          &amp;lt;dd&amp;gt;This item represents the main point we're trying to make.&amp;lt;/dd&amp;gt;&lt;br /&gt;
      &amp;lt;/dl&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Any other properties are simply added to the definition list in the same way as the &amp;quot;description&amp;quot; property.&lt;br /&gt;
&lt;br /&gt;
=== Multi-value Properties === &lt;br /&gt;
&lt;br /&gt;
Properties that have multiple values are added using a list, nested inside of the corresponding &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt; element:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;ol class='xoxo'&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;item 1&lt;br /&gt;
    &amp;lt;dl&amp;gt;&lt;br /&gt;
      &amp;lt;dt&amp;gt;multivalproperty1&amp;lt;/dt&amp;gt;&lt;br /&gt;
      &amp;lt;dd&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
       &amp;lt;li&amp;gt;value-a&amp;lt;/li&amp;gt;&lt;br /&gt;
       &amp;lt;li&amp;gt;value-b&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;/ul&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
    &amp;lt;/dl&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Publishing XOXO ==&lt;br /&gt;
&lt;br /&gt;
XOXO may be published in two forms, valid XHTML, and simple well-formed XML.&lt;br /&gt;
&lt;br /&gt;
=== Valid XHTML XOXO ===&lt;br /&gt;
&lt;br /&gt;
A valid XHTML XOXO page is a complete XHTML document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot;&lt;br /&gt;
        &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html; charset=utf-8&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;XOXO page&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
&amp;lt;ol class=&amp;quot;xoxo&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;URL-one&amp;quot;&amp;gt;TEXT-one&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;URL-two&amp;quot;&amp;gt;TEXT-two&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Content-Type ====&lt;br /&gt;
&lt;br /&gt;
Valid XHTML XOXO SHOULD be served with this Content-Type header for maximum browser compatibility.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Content-Type: text/html; charset=utf-8&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It MUST be served with one of these Content-Type headers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Content-Type: text/html; charset=utf-8&lt;br /&gt;
Content-Type: application/xhtml+xml&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Simple well-formed XML XOXO ===&lt;br /&gt;
&lt;br /&gt;
The root element of a simple well-formed XML XOXO page is either an &amp;lt;code&amp;gt;ol&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;ul&amp;lt;/code&amp;gt; with class name of &amp;quot;xoxo&amp;quot;.  This variant is ideal for syndication and transclusion into (X)HTML pages with [[rest/ahah|AHAH]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;ol class=&amp;quot;xoxo&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;URL-one&amp;quot;&amp;gt;TEXT-one&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;URL-two&amp;quot;&amp;gt;TEXT-two&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Content-Type ====&lt;br /&gt;
&lt;br /&gt;
Simple well-formed XML XOXO SHOULD be served with this Content-Type header:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Content-Type: text/xml; charset=utf-8&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It MUST be served with one of these Content-Type headers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Content-Type: text/xml; charset=utf-8&lt;br /&gt;
Content-Type: application/xml&lt;br /&gt;
Content-Type: application/xml; charset=utf-8&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples in the Wild ==&lt;br /&gt;
This section is '''informative'''.&lt;br /&gt;
&lt;br /&gt;
There are many wild examples. Nearly every blogroll on the Web can be parsed as XOXO, since they are typically an unordered list of list items of hyperlinks, which is within the XOXO profile. List examples here, when the list becomes too long we can move to a dedicated page.&lt;br /&gt;
&lt;br /&gt;
* [http://api.talis.com/bf/stores/ukbib/services/facet?query=feynman&amp;amp;fields=title%2Csubject&amp;amp;top=10&amp;amp;output=html HTML output from a faceting service for book data]&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
This section is '''informative'''.&lt;br /&gt;
&lt;br /&gt;
* [http://chneukirchen.org/blog/ Christian Neukirchen] has [http://chneukirchen.org/blog/archive/2006/01/xoxo-rb-0-1-released.html written a xoxo.rb, a XOXO parser and generator for Ruby]&lt;br /&gt;
* [http://odeo.com Odeo] publishes users' subscription lists in XOXO. See Ryan King's list [http://odeo.com/profile/RyanKing/xoxo here].&lt;br /&gt;
* [http://www.decafbad.com/blog/ Les Orchard] has [http://www.decafbad.com/blog/2005/07/12/xoxo_outliner_experiment written] a [http://www.decafbad.com/2005/07/map-test/tree2.html nice XOXO outline editor in javascript].&lt;br /&gt;
* http://homepage.mac.com/ctholland/thelab/outlines/ is a great demonstration of  dynamic interactive XOXO with use of &amp;quot;compact&amp;quot; and DHTML to collapse/expand.&lt;br /&gt;
* http://tool-man.org/examples/sorting.html is a great demonstration of drag and drop sortable XOXO lists with javascript and CSS.&lt;br /&gt;
* http://www.opendarwin.org/~drernie/xoxo-datatypes.html Mapping XOXO to [http://developer.apple.com/documentation/Cocoa/Conceptual/PropertyLists/Concepts/XMLPListsConcept.html Mac OS X property lists]&lt;br /&gt;
* [http://weblog.techno-weenie.net/2005/9/30/if_i_had_a_tumblelog single line of rails to convert XOXO to HTML]&lt;br /&gt;
&lt;br /&gt;
=== Sample Code ===&lt;br /&gt;
&lt;br /&gt;
* See the [[xoxo-sample-code]] page for open source sample code to read and write XOXO files.&lt;br /&gt;
* See also the [[xoxo-compact-sample]] page with source for CSS and JS that alters the look and feel of some very plain XOXO to have twiddlable triangles for nested lists that respect the compact attribute as well.&lt;br /&gt;
&lt;br /&gt;
== XOXO Schemas ==&lt;br /&gt;
This section is informative.&lt;br /&gt;
&lt;br /&gt;
Note: these may be out of date and require updating to reflect the use of &amp;amp;lt;dl&amp;amp;gt; for annotating XOXO items with arbitrary properties.&lt;br /&gt;
* [[DTDs]]&lt;br /&gt;
* [http://www.nidelven-it.no/projects/XOXO/xoxo-0.1.tgz Schemas (Relax NG and DTDs)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Normative References ===&lt;br /&gt;
* [http://www.w3.org/TR/xhtml1 XHTML 1.0]&lt;br /&gt;
* [http://www.w3.org/TR/xhtml-modularization XHTMLMOD]&lt;br /&gt;
* [http://gmpg.org/xmdp/ XMDP]&lt;br /&gt;
* [http://gmpg.org/xfn/ XFN]&lt;br /&gt;
&lt;br /&gt;
=== Informative References ===&lt;br /&gt;
This section is '''informative'''.&lt;br /&gt;
* [http://developers.technorati.com/wiki/attentionxml Attention.xml]&lt;br /&gt;
* [[VoteLinks]]&lt;br /&gt;
* [http://www.w3.org/TR/xhtml11 XHTML 1.1]&lt;br /&gt;
* [http://opml.scripting.com/spec OPML 1.0]&lt;br /&gt;
* Contributed from http://developers.technorati.com/wiki/XOXO&lt;br /&gt;
&lt;br /&gt;
=== Similar Work ===&lt;br /&gt;
* [http://dannyayers.com/archives/001961.html XHTML Outlines] - DannyAyers independently came up with idea in 2003 October (just a month or two before Kevin and Tantek independently came up with XOXO) to use a simple profile of XHTML to semantically represent outlines using existing building blocks from XHTML.&lt;br /&gt;
* [http://semtext.org/2004-02/ XOW] - making them editable, producing RDF and bookmark lists from them (DannyAyers)&lt;br /&gt;
&lt;br /&gt;
=== Related Reading ===&lt;br /&gt;
* [http://patricklogan.blogspot.com/2005/08/lists-really-can-we-expect-better.html Patrick Logan on why OPML and a Microsoft Lists extension are both unnecessary].&lt;br /&gt;
* [http://raybenchen.blogspot.com/2005/11/is-crappy-format-worth-saving.html Dr. Tao Chen on why it is better to use XOXO than OPML going forward]&lt;br /&gt;
&lt;br /&gt;
=== Unrelated Reading ===&lt;br /&gt;
* [http://www.questionablecontent.net/view.php?comic=493 Questionable Content comic #493] - apparently the Faye character is a fan of XOXO.&lt;br /&gt;
&lt;br /&gt;
=== Promotional Materials / Schwag ===&lt;br /&gt;
* There is an entire XOXO clothing and accessories line.  [http://www.xoxo.com/home.php Buy XOXO stuff online].&lt;br /&gt;
&lt;br /&gt;
== Discussions ==&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 XOXO:&lt;br /&gt;
&lt;br /&gt;
* See [[xoxo-brainstorming]] for additional thoughts on how to use XOXO for specific uses.&lt;br /&gt;
* See also [http://www.technorati.com/cosmos/referer.html blogs discussing this page].&lt;br /&gt;
** [http://blogxoxo.blogspot.com/ XOXO Blog]&lt;br /&gt;
&lt;br /&gt;
=== Q&amp;amp;A ===&lt;br /&gt;
* If you have any questions about XOXO, check the [[xoxo-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 [[xoxo-issues]] document.&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=xoxo-brainstorming&amp;diff=19375</id>
		<title>xoxo-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=xoxo-brainstorming&amp;diff=19375"/>
		<updated>2007-08-02T19:45:09Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: tweaking language&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= XOXO brainstorming =&lt;br /&gt;
&lt;br /&gt;
== Authors ==&lt;br /&gt;
&lt;br /&gt;
* [http://tantek.com/log Tantek Çelik]&lt;br /&gt;
* [[DimitriGlazkov]]&lt;br /&gt;
&lt;br /&gt;
== Example Uses ==&lt;br /&gt;
&lt;br /&gt;
XOXO Lists and outlines are used for numerous special purposes across the web.  This section is here to document both best practices and recommendations.&lt;br /&gt;
&lt;br /&gt;
=== Blogrolls ===&lt;br /&gt;
&lt;br /&gt;
Background: See L.M. Orchard's post &amp;quot;[http://decafbad.com/blog/2005/11/27/subscriptions-are-attention-but-what-about-blogrolls Subscriptions Are Attention But What About Blogrolls]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Nearly all blogrolls are already published as XOXO on blog, but there is no obvious way to distinguish the XOXO blogroll from other lists in the content/header/footer of the blog.&lt;br /&gt;
&lt;br /&gt;
XOXO standardizes (see [[xoxo-profile]]) the class name &amp;quot;blogroll&amp;quot; for blogroll lists.  E.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;ul class=&amp;quot;xoxo blogroll&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;...&amp;quot;&amp;gt;...&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;...&amp;quot;&amp;gt;...&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that a blogroll is a superset of a subscription list.&lt;br /&gt;
&lt;br /&gt;
==== Subscription information ====&lt;br /&gt;
Some blogrolls contain feed information -- it would be nice if XOXO blogrolls could capture this information also. This, in and of itself, would be a nice step up from OPML.&lt;br /&gt;
&lt;br /&gt;
* An [http://www.opmlmanager.com/outliner/neuraxon77 example] of OPML to a XOXO list w/ expand/collapse folders&lt;br /&gt;
&lt;br /&gt;
===== Possible XOXO blogs+feeds markup =====&lt;br /&gt;
&lt;br /&gt;
Here is one example of how you could publish blogs+feeds in XOXO.  Note that since a XOXO parser will only treat the first hyperlink as the info for the list item, the blog names and URLs will be parsed, and the feeds will be ignored.  In reality, the blogs themselves should contain the necessary auto-discovery links to their own feeds, which is more reliable anyway.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;ul class=&amp;quot;xoxo blogroll&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;blogURL1&amp;quot;&amp;gt;Blog Name 1&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;.../index.xml&amp;quot; rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/atom+xml&amp;quot;&amp;gt;RSS&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;blogURL2&amp;quot;&amp;gt;Blog Name 2&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;.../index.xml&amp;quot; rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/rss+xml&amp;quot;&amp;gt;RSS&amp;lt;/&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;.../index.atom&amp;quot; rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/atom+xml&amp;quot;&amp;gt;Atom&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CSS styling could make this as pretty or not as desired.&lt;br /&gt;
&lt;br /&gt;
See also [[blog-info-examples]], [[blog-info-formats]], [[blog-info-brainstorming]], [http://blogxoxo.blogspot.com/2006/01/xoxo-blogroll-format.html XOXO Blogroll Format]&lt;br /&gt;
&lt;br /&gt;
=== Wishlists ===&lt;br /&gt;
&lt;br /&gt;
Background: See L.M. Orchard's post: &amp;quot;[http://decafbad.com/blog/2005/11/27/i-wish-it-were-in-xoxo I wish it were in XOXO]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Similar to blogrolls, what if we used the class name &amp;quot;wishlist&amp;quot;?&lt;br /&gt;
&lt;br /&gt;
What are the distinguishing features of wishlists?&lt;br /&gt;
&lt;br /&gt;
Is a wishlist item the same as a listing that is looking for an item?&lt;br /&gt;
See: [[listing-examples]], [[listing-formats]], [[listing-brainstorming]]&lt;br /&gt;
&lt;br /&gt;
=== Tagged Links ===&lt;br /&gt;
&lt;br /&gt;
This one seems easier, because you could simply use a list of [[xfolk|xFolk]] items, which is recognizable.&lt;br /&gt;
&lt;br /&gt;
Alternatively we could also use the class name &amp;quot;linkroll&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
But how far can we successfully take that method (of adding a new class name for each specific use of XOXO) scale and continue workng?&lt;br /&gt;
&lt;br /&gt;
=== Parsing Properties ===&lt;br /&gt;
&lt;br /&gt;
* From HTML spec, the content of both [http://www.w3.org/TR/html4/struct/lists.html#h-10.3 dl], and [http://www.w3.org/TR/html4/struct/lists.html#h-10.2 li] can contain block or inline elements.&lt;br /&gt;
** this implies that special properties can include markup.&lt;br /&gt;
** naturally, &amp;lt;var&amp;gt;url&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;type&amp;lt;/var&amp;gt;, and &amp;lt;var&amp;gt;rel&amp;lt;/var&amp;gt; properties don't fit into this rule logically, but that's a reasonable exception.&lt;br /&gt;
* First &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; element specifies &amp;lt;var&amp;gt;text&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;url&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;title&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;type&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;rel&amp;lt;/var&amp;gt; properties&lt;br /&gt;
** If these properties are also defined using &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt;, they:&lt;br /&gt;
*** a. override values, specified in hyperlink&lt;br /&gt;
*** b. are ignored -- I ([[DimitriGlazkov]]) am leaning toward this choice&lt;br /&gt;
* First &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt; is treated as a special property set&lt;br /&gt;
** how to escape in case &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt; is content, not property set?&lt;br /&gt;
*** possibly like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
		&amp;lt;dl&amp;gt;&lt;br /&gt;
			&amp;lt;dt&amp;gt;text&amp;lt;/dt&amp;gt;&lt;br /&gt;
			&amp;lt;dd&amp;gt;&lt;br /&gt;
				&amp;lt;dl&amp;gt;&lt;br /&gt;
					&amp;lt;dt&amp;gt;escaped&amp;lt;/dt&amp;gt;&lt;br /&gt;
					&amp;lt;dd&amp;gt;not a property set&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;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=xoxo-brainstorming&amp;diff=19193</id>
		<title>xoxo-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=xoxo-brainstorming&amp;diff=19193"/>
		<updated>2007-08-02T19:05:20Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: bleh, fixing phraseology&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= XOXO brainstorming =&lt;br /&gt;
&lt;br /&gt;
== Authors ==&lt;br /&gt;
&lt;br /&gt;
* [http://tantek.com/log Tantek Çelik]&lt;br /&gt;
* [[DimitriGlazkov]]&lt;br /&gt;
&lt;br /&gt;
== Example Uses ==&lt;br /&gt;
&lt;br /&gt;
XOXO Lists and outlines are used for numerous special purposes across the web.  This section is here to document both best practices and recommendations.&lt;br /&gt;
&lt;br /&gt;
=== Blogrolls ===&lt;br /&gt;
&lt;br /&gt;
Background: See L.M. Orchard's post &amp;quot;[http://decafbad.com/blog/2005/11/27/subscriptions-are-attention-but-what-about-blogrolls Subscriptions Are Attention But What About Blogrolls]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Nearly all blogrolls are already published as XOXO on blog, but there is no obvious way to distinguish the XOXO blogroll from other lists in the content/header/footer of the blog.&lt;br /&gt;
&lt;br /&gt;
XOXO standardizes (see [[xoxo-profile]]) the class name &amp;quot;blogroll&amp;quot; for blogroll lists.  E.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;ul class=&amp;quot;xoxo blogroll&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;...&amp;quot;&amp;gt;...&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;...&amp;quot;&amp;gt;...&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that a blogroll is a superset of a subscription list.&lt;br /&gt;
&lt;br /&gt;
==== Subscription information ====&lt;br /&gt;
Some blogrolls contain feed information -- it would be nice if XOXO blogrolls could capture this information also. This, in and of itself, would be a nice step up from OPML.&lt;br /&gt;
&lt;br /&gt;
* An [http://www.opmlmanager.com/outliner/neuraxon77 example] of OPML to a XOXO list w/ expand/collapse folders&lt;br /&gt;
&lt;br /&gt;
===== Possible XOXO blogs+feeds markup =====&lt;br /&gt;
&lt;br /&gt;
Here is one example of how you could publish blogs+feeds in XOXO.  Note that since a XOXO parser will only treat the first hyperlink as the info for the list item, the blog names and URLs will be parsed, and the feeds will be ignored.  In reality, the blogs themselves should contain the necessary auto-discovery links to their own feeds, which is more reliable anyway.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;ul class=&amp;quot;xoxo blogroll&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;blogURL1&amp;quot;&amp;gt;Blog Name 1&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;.../index.xml&amp;quot; rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/atom+xml&amp;quot;&amp;gt;RSS&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;blogURL2&amp;quot;&amp;gt;Blog Name 2&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;.../index.xml&amp;quot; rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/rss+xml&amp;quot;&amp;gt;RSS&amp;lt;/&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;.../index.atom&amp;quot; rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/atom+xml&amp;quot;&amp;gt;Atom&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CSS styling could make this as pretty or not as desired.&lt;br /&gt;
&lt;br /&gt;
See also [[blog-info-examples]], [[blog-info-formats]], [[blog-info-brainstorming]], [http://blogxoxo.blogspot.com/2006/01/xoxo-blogroll-format.html XOXO Blogroll Format]&lt;br /&gt;
&lt;br /&gt;
=== Wishlists ===&lt;br /&gt;
&lt;br /&gt;
Background: See L.M. Orchard's post: &amp;quot;[http://decafbad.com/blog/2005/11/27/i-wish-it-were-in-xoxo I wish it were in XOXO]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Similar to blogrolls, what if we used the class name &amp;quot;wishlist&amp;quot;?&lt;br /&gt;
&lt;br /&gt;
What are the distinguishing features of wishlists?&lt;br /&gt;
&lt;br /&gt;
Is a wishlist item the same as a listing that is looking for an item?&lt;br /&gt;
See: [[listing-examples]], [[listing-formats]], [[listing-brainstorming]]&lt;br /&gt;
&lt;br /&gt;
=== Tagged Links ===&lt;br /&gt;
&lt;br /&gt;
This one seems easier, because you could simply use a list of [[xfolk|xFolk]] items, which is recognizable.&lt;br /&gt;
&lt;br /&gt;
Alternatively we could also use the class name &amp;quot;linkroll&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
But how far can we successfully take that method (of adding a new class name for each specific use of XOXO) scale and continue workng?&lt;br /&gt;
&lt;br /&gt;
=== Parsing Properties ===&lt;br /&gt;
&lt;br /&gt;
* From HTML spec, the content of both [http://www.w3.org/TR/html4/struct/lists.html#h-10.3 dl], and [http://www.w3.org/TR/html4/struct/lists.html#h-10.2 li] can contain block or inline elements.&lt;br /&gt;
** this implies that special properties can include markup.&lt;br /&gt;
** naturally, &amp;lt;var&amp;gt;url&amp;lt;/var&amp;gt; property doesn't fall into this rule, but that's a reasonable exception.&lt;br /&gt;
* First &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; element specifies &amp;lt;var&amp;gt;text&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;url&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;title&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;type&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;rel&amp;lt;/var&amp;gt; properties&lt;br /&gt;
** If these properties are also defined using &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt;, they:&lt;br /&gt;
*** a. override values, specified in hyperlink&lt;br /&gt;
*** b. are ignored -- I ([[DimitriGlazkov]]) am leaning toward this choice&lt;br /&gt;
* First &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt; is treated as a special property set&lt;br /&gt;
** how to escape in case &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt; is content, not property set?&lt;br /&gt;
*** possibly like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
		&amp;lt;dl&amp;gt;&lt;br /&gt;
			&amp;lt;dt&amp;gt;text&amp;lt;/dt&amp;gt;&lt;br /&gt;
			&amp;lt;dd&amp;gt;&lt;br /&gt;
				&amp;lt;dl&amp;gt;&lt;br /&gt;
					&amp;lt;dt&amp;gt;escaped&amp;lt;/dt&amp;gt;&lt;br /&gt;
					&amp;lt;dd&amp;gt;not a property set&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;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=xoxo-brainstorming&amp;diff=19192</id>
		<title>xoxo-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=xoxo-brainstorming&amp;diff=19192"/>
		<updated>2007-08-02T19:04:44Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: Added thoughts on parsing special properties&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= XOXO brainstorming =&lt;br /&gt;
&lt;br /&gt;
== Authors ==&lt;br /&gt;
&lt;br /&gt;
* [http://tantek.com/log Tantek Çelik]&lt;br /&gt;
* [[DimitriGlazkov]]&lt;br /&gt;
&lt;br /&gt;
== Example Uses ==&lt;br /&gt;
&lt;br /&gt;
XOXO Lists and outlines are used for numerous special purposes across the web.  This section is here to document both best practices and recommendations.&lt;br /&gt;
&lt;br /&gt;
=== Blogrolls ===&lt;br /&gt;
&lt;br /&gt;
Background: See L.M. Orchard's post &amp;quot;[http://decafbad.com/blog/2005/11/27/subscriptions-are-attention-but-what-about-blogrolls Subscriptions Are Attention But What About Blogrolls]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Nearly all blogrolls are already published as XOXO on blog, but there is no obvious way to distinguish the XOXO blogroll from other lists in the content/header/footer of the blog.&lt;br /&gt;
&lt;br /&gt;
XOXO standardizes (see [[xoxo-profile]]) the class name &amp;quot;blogroll&amp;quot; for blogroll lists.  E.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;ul class=&amp;quot;xoxo blogroll&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;...&amp;quot;&amp;gt;...&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;...&amp;quot;&amp;gt;...&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that a blogroll is a superset of a subscription list.&lt;br /&gt;
&lt;br /&gt;
==== Subscription information ====&lt;br /&gt;
Some blogrolls contain feed information -- it would be nice if XOXO blogrolls could capture this information also. This, in and of itself, would be a nice step up from OPML.&lt;br /&gt;
&lt;br /&gt;
* An [http://www.opmlmanager.com/outliner/neuraxon77 example] of OPML to a XOXO list w/ expand/collapse folders&lt;br /&gt;
&lt;br /&gt;
===== Possible XOXO blogs+feeds markup =====&lt;br /&gt;
&lt;br /&gt;
Here is one example of how you could publish blogs+feeds in XOXO.  Note that since a XOXO parser will only treat the first hyperlink as the info for the list item, the blog names and URLs will be parsed, and the feeds will be ignored.  In reality, the blogs themselves should contain the necessary auto-discovery links to their own feeds, which is more reliable anyway.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;ul class=&amp;quot;xoxo blogroll&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;blogURL1&amp;quot;&amp;gt;Blog Name 1&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;.../index.xml&amp;quot; rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/atom+xml&amp;quot;&amp;gt;RSS&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;blogURL2&amp;quot;&amp;gt;Blog Name 2&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;.../index.xml&amp;quot; rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/rss+xml&amp;quot;&amp;gt;RSS&amp;lt;/&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;.../index.atom&amp;quot; rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/atom+xml&amp;quot;&amp;gt;Atom&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CSS styling could make this as pretty or not as desired.&lt;br /&gt;
&lt;br /&gt;
See also [[blog-info-examples]], [[blog-info-formats]], [[blog-info-brainstorming]], [http://blogxoxo.blogspot.com/2006/01/xoxo-blogroll-format.html XOXO Blogroll Format]&lt;br /&gt;
&lt;br /&gt;
=== Wishlists ===&lt;br /&gt;
&lt;br /&gt;
Background: See L.M. Orchard's post: &amp;quot;[http://decafbad.com/blog/2005/11/27/i-wish-it-were-in-xoxo I wish it were in XOXO]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Similar to blogrolls, what if we used the class name &amp;quot;wishlist&amp;quot;?&lt;br /&gt;
&lt;br /&gt;
What are the distinguishing features of wishlists?&lt;br /&gt;
&lt;br /&gt;
Is a wishlist item the same as a listing that is looking for an item?&lt;br /&gt;
See: [[listing-examples]], [[listing-formats]], [[listing-brainstorming]]&lt;br /&gt;
&lt;br /&gt;
=== Tagged Links ===&lt;br /&gt;
&lt;br /&gt;
This one seems easier, because you could simply use a list of [[xfolk|xFolk]] items, which is recognizable.&lt;br /&gt;
&lt;br /&gt;
Alternatively we could also use the class name &amp;quot;linkroll&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
But how far can we successfully take that method (of adding a new class name for each specific use of XOXO) scale and continue workng?&lt;br /&gt;
&lt;br /&gt;
=== Parsing Properties ===&lt;br /&gt;
&lt;br /&gt;
* From HTML spec, the content of both [http://www.w3.org/TR/html4/struct/lists.html#h-10.3 dl], and [http://www.w3.org/TR/html4/struct/lists.html#h-10.2 li] can be block or inline elements.&lt;br /&gt;
** this implies that special properties can include markup.&lt;br /&gt;
** naturally, &amp;lt;var&amp;gt;url&amp;lt;/var&amp;gt; property doesn't fall into this rule, but that's a reasonable exception.&lt;br /&gt;
* First &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; element specifies &amp;lt;var&amp;gt;text&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;url&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;title&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;type&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;rel&amp;lt;/var&amp;gt; properties&lt;br /&gt;
** If these properties are also defined using &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt;, they:&lt;br /&gt;
*** a. override values, specified in hyperlink&lt;br /&gt;
*** b. are ignored -- I ([[DimitriGlazkov]]) am leaning toward this choice&lt;br /&gt;
* First &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt; is treated as a special property set&lt;br /&gt;
** how to escape in case &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt; is content, not property set?&lt;br /&gt;
*** possibly like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
		&amp;lt;dl&amp;gt;&lt;br /&gt;
			&amp;lt;dt&amp;gt;text&amp;lt;/dt&amp;gt;&lt;br /&gt;
			&amp;lt;dd&amp;gt;&lt;br /&gt;
				&amp;lt;dl&amp;gt;&lt;br /&gt;
					&amp;lt;dt&amp;gt;escaped&amp;lt;/dt&amp;gt;&lt;br /&gt;
					&amp;lt;dd&amp;gt;not a property set&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;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=User:DimitriGlazkov&amp;diff=24035</id>
		<title>User:DimitriGlazkov</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=User:DimitriGlazkov&amp;diff=24035"/>
		<updated>2007-07-17T21:29:14Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://glazkov.com/&lt;br /&gt;
&lt;br /&gt;
{{public-domain-release}}&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=icalendar-implementations&amp;diff=11761</id>
		<title>icalendar-implementations</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=icalendar-implementations&amp;diff=11761"/>
		<updated>2006-07-03T18:17:13Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: Minimal importable iCal events for MS Outlook 2003&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= iCalendar implementations = &lt;br /&gt;
&lt;br /&gt;
In the development of [[hcalendar|hCalendar]] and proxies like X2V, we have discovered various behaviors and quirks of RFC 2445 iCalendar implementations.&lt;br /&gt;
&lt;br /&gt;
This page is here for keeping track of them.&lt;br /&gt;
&lt;br /&gt;
== Contributors==&lt;br /&gt;
* Tantek Çelik&lt;br /&gt;
* [[DimitriGlazkov|Dimitri Glazkov]]&lt;br /&gt;
&lt;br /&gt;
== Products ==&lt;br /&gt;
&lt;br /&gt;
=== iCal.app ===&lt;br /&gt;
&lt;br /&gt;
platform: OSX&lt;br /&gt;
&lt;br /&gt;
==== subscription handling ====&lt;br /&gt;
&lt;br /&gt;
supports the non-standard &amp;quot;webcal:&amp;quot; protocol&lt;br /&gt;
&lt;br /&gt;
=== Evolution ===&lt;br /&gt;
&lt;br /&gt;
platform: Fedora Core 3&lt;br /&gt;
&lt;br /&gt;
==== subscription handling ====&lt;br /&gt;
&lt;br /&gt;
supports the non-standard &amp;quot;webcal:&amp;quot; protocol&lt;br /&gt;
&lt;br /&gt;
=== Sunbird ===&lt;br /&gt;
&lt;br /&gt;
AKA [http://www.mozilla.org/projects/calendar/sunbird.html Mozilla Sunbird]&lt;br /&gt;
&lt;br /&gt;
platform: XP, others?&lt;br /&gt;
&lt;br /&gt;
==== subscription handling ====&lt;br /&gt;
&lt;br /&gt;
supports the non-standard &amp;quot;webcal:&amp;quot; protocol&lt;br /&gt;
&lt;br /&gt;
=== Microsoft Outlook ===&lt;br /&gt;
&lt;br /&gt;
platform: 2003&lt;br /&gt;
&lt;br /&gt;
==== Importing of VEvents ====&lt;br /&gt;
&lt;br /&gt;
Requires &amp;lt;code&amp;gt;UID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DTSTAMP&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;METHOD&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any of the three is not present, returns this message:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
This error can appear if you have attempted to save a recurring Lunar appointment in iCalendar format.&lt;br /&gt;
To avoid this error, set the appointment option to Gregorian instead of Lunar.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After some testing, this seems to be the generic message to indicate a problem with event import.&lt;br /&gt;
&lt;br /&gt;
No such restriction is placed on [http://www.imc.org/pdi/vcal-10.txt iCal 1.0] events. So, if &amp;lt;code&amp;gt;VERSION:1.0&amp;lt;/code&amp;gt; is output instead of &amp;lt;code&amp;gt;VERSION:2.0&amp;lt;/code&amp;gt;, the only required field is &amp;lt;code&amp;gt;DTSTART&amp;lt;/code&amp;gt;. &lt;br /&gt;
Note that &amp;lt;code&amp;gt;VERSION&amp;lt;/code&amp;gt; property may be omitted. In this case, value inferred as &amp;lt;code&amp;gt;1.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===== Minimal valid iCal 2.0 event, importable by MS Outlook 2003 =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BEGIN:VCALENDAR&lt;br /&gt;
VERSION:2.0&lt;br /&gt;
METHOD:PUBLISH&lt;br /&gt;
BEGIN:VEVENT&lt;br /&gt;
UID:0&lt;br /&gt;
DTSTAMP:20060601T080000&lt;br /&gt;
DTSTART:20060601T080000&lt;br /&gt;
END:VEVENT&lt;br /&gt;
END:VCALENDAR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Minimal valid iCal 1.0 event, importable by MS Outlook 2003 =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BEGIN:VCALENDAR&lt;br /&gt;
BEGIN:VEVENT&lt;br /&gt;
DTSTART:20060601T080000&lt;br /&gt;
END:VEVENT&lt;br /&gt;
END:VCALENDAR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=icalendar-implementations&amp;diff=7142</id>
		<title>icalendar-implementations</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=icalendar-implementations&amp;diff=7142"/>
		<updated>2006-07-03T18:08:01Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: Added self to contributors&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= iCalendar implementations = &lt;br /&gt;
&lt;br /&gt;
In the development of [[hcalendar|hCalendar]] and proxies like X2V, we have discovered various behaviors and quirks of RFC 2445 iCalendar implementations.&lt;br /&gt;
&lt;br /&gt;
This page is here for keeping track of them.&lt;br /&gt;
&lt;br /&gt;
== Contributors==&lt;br /&gt;
* Tantek Çelik&lt;br /&gt;
* [[DimitriGlazkov|Dimitri Glazkov]]&lt;br /&gt;
&lt;br /&gt;
== Products ==&lt;br /&gt;
&lt;br /&gt;
=== iCal.app ===&lt;br /&gt;
&lt;br /&gt;
platform: OSX&lt;br /&gt;
&lt;br /&gt;
==== subscription handling ====&lt;br /&gt;
&lt;br /&gt;
supports the non-standard &amp;quot;webcal:&amp;quot; protocol&lt;br /&gt;
&lt;br /&gt;
=== Evolution ===&lt;br /&gt;
&lt;br /&gt;
platform: Fedora Core 3&lt;br /&gt;
&lt;br /&gt;
==== subscription handling ====&lt;br /&gt;
&lt;br /&gt;
supports the non-standard &amp;quot;webcal:&amp;quot; protocol&lt;br /&gt;
&lt;br /&gt;
=== Sunbird ===&lt;br /&gt;
&lt;br /&gt;
AKA [http://www.mozilla.org/projects/calendar/sunbird.html Mozilla Sunbird]&lt;br /&gt;
&lt;br /&gt;
platform: XP, others?&lt;br /&gt;
&lt;br /&gt;
==== subscription handling ====&lt;br /&gt;
&lt;br /&gt;
supports the non-standard &amp;quot;webcal:&amp;quot; protocol&lt;br /&gt;
&lt;br /&gt;
=== Microsoft Outlook ===&lt;br /&gt;
&lt;br /&gt;
platform: 2003&lt;br /&gt;
&lt;br /&gt;
==== Importing of VEvents ====&lt;br /&gt;
&lt;br /&gt;
Requires &amp;lt;code&amp;gt;UID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DTSTAMP&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;METHOD&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any of the three is not present, returns this message:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
This error can appear if you have attempted to save a recurring Lunar appointment in iCalendar format.&lt;br /&gt;
To avoid this error, set the appointment option to Gregorian instead of Lunar.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After some testing, this seems to be the generic message to indicate a problem with event import.&lt;br /&gt;
&lt;br /&gt;
No such restriction is placed on [http://www.imc.org/pdi/vcal-10.txt iCal 1.0] events. So, if &amp;lt;code&amp;gt;VERSION:1.0&amp;lt;/code&amp;gt; is output instead of &amp;lt;code&amp;gt;VERSION:2.0&amp;lt;/code&amp;gt;, the only required field is &amp;lt;code&amp;gt;DTSTART&amp;lt;/code&amp;gt;.&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=icalendar-implementations&amp;diff=7141</id>
		<title>icalendar-implementations</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=icalendar-implementations&amp;diff=7141"/>
		<updated>2006-07-03T18:06:35Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: Detailed documentation of MS Outlook 2003 behavior&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= iCalendar implementations = &lt;br /&gt;
&lt;br /&gt;
In the development of [[hcalendar|hCalendar]] and proxies like X2V, we have discovered various behaviors and quirks of RFC 2445 iCalendar implementations.&lt;br /&gt;
&lt;br /&gt;
This page is here for keeping track of them.&lt;br /&gt;
&lt;br /&gt;
== Contributors==&lt;br /&gt;
* Tantek Çelik&lt;br /&gt;
&lt;br /&gt;
== Products ==&lt;br /&gt;
&lt;br /&gt;
=== iCal.app ===&lt;br /&gt;
&lt;br /&gt;
platform: OSX&lt;br /&gt;
&lt;br /&gt;
==== subscription handling ====&lt;br /&gt;
&lt;br /&gt;
supports the non-standard &amp;quot;webcal:&amp;quot; protocol&lt;br /&gt;
&lt;br /&gt;
=== Evolution ===&lt;br /&gt;
&lt;br /&gt;
platform: Fedora Core 3&lt;br /&gt;
&lt;br /&gt;
==== subscription handling ====&lt;br /&gt;
&lt;br /&gt;
supports the non-standard &amp;quot;webcal:&amp;quot; protocol&lt;br /&gt;
&lt;br /&gt;
=== Sunbird ===&lt;br /&gt;
&lt;br /&gt;
AKA [http://www.mozilla.org/projects/calendar/sunbird.html Mozilla Sunbird]&lt;br /&gt;
&lt;br /&gt;
platform: XP, others?&lt;br /&gt;
&lt;br /&gt;
==== subscription handling ====&lt;br /&gt;
&lt;br /&gt;
supports the non-standard &amp;quot;webcal:&amp;quot; protocol&lt;br /&gt;
&lt;br /&gt;
=== Microsoft Outlook ===&lt;br /&gt;
&lt;br /&gt;
platform: 2003&lt;br /&gt;
&lt;br /&gt;
==== Importing of VEvents ====&lt;br /&gt;
&lt;br /&gt;
Requires &amp;lt;code&amp;gt;UID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DTSTAMP&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;METHOD&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any of the three is not present, returns this message:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
This error can appear if you have attempted to save a recurring Lunar appointment in iCalendar format.&lt;br /&gt;
To avoid this error, set the appointment option to Gregorian instead of Lunar.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After some testing, this seems to be the generic message to indicate a problem with event import.&lt;br /&gt;
&lt;br /&gt;
No such restriction is placed on [http://www.imc.org/pdi/vcal-10.txt iCal 1.0] events. So, if &amp;lt;code&amp;gt;VERSION:1.0&amp;lt;/code&amp;gt; is output instead of &amp;lt;code&amp;gt;VERSION:2.0&amp;lt;/code&amp;gt;, the only required field is &amp;lt;code&amp;gt;DTSTART&amp;lt;/code&amp;gt;.&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=hcalendar-issues&amp;diff=8115</id>
		<title>hcalendar-issues</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=hcalendar-issues&amp;diff=8115"/>
		<updated>2006-07-03T17:48:53Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= hCalendar Issues =&lt;br /&gt;
&lt;br /&gt;
These are externally raised issues about [[hcalendar|hCalendar]] with broadly varying degrees of merit.  Thus some issues are REJECTED for a number of obvious reasons (but still documented here in case they are re-raised), and others contain longer discussions.  Some issues may be ACCEPTED and perhaps cause changes or improved explanations in the spec.  Submitted issues may (and probably will) be edited and rewritten for better terseness, clarity, calmness, rationality, and as neutral a point of view as possible. Write your issues well. — [http://tantek.com/log/ Tantek]&lt;br /&gt;
&lt;br /&gt;
See related [[hcard-issues]].&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
&lt;br /&gt;
Please use this format:&lt;br /&gt;
* YYYY-MM-DD raised by AUTHORNAME&lt;br /&gt;
*# ''Issue 1: Here is the first issue I have.''&lt;br /&gt;
*# ''Issue 2: Here is the second issue I have.''&lt;br /&gt;
&lt;br /&gt;
And add new issues to the top of the list:&lt;br /&gt;
&lt;br /&gt;
* {{OpenIssue}} 2006-03-07 raised by [[User:Ragdoll|Justin McDowell]]&lt;br /&gt;
*# ''Issue 1: I'd love to see a Property List, similar to what is seen in the hCard spec, that lists all the available properties and sub-properties in a nice, compact list. This saves a lot of time and is really useful for quickly and easily getting aquainted with the possibilities of vCalendar.''&lt;br /&gt;
&lt;br /&gt;
* 2006-02-17 raised by [[User:Mark Mansour|Mark Mansour]] - notes are summarized [[hcalendar-irc-meetup-20060225|here]]&lt;br /&gt;
*# Should vcalendar be a class?  Section 4.4 of RFC2445 says: &amp;quot;The Calendaring and Scheduling Core Object is a collection of calendaring and scheduling information. Typically, this information will consist of a single iCalendar object. However, multiple iCalendar objects can be sequentially grouped together.&amp;quot;  Also the vcalendar class would allow properties on the calendar itself such as METHOD and CALSCALE (I don't think VERSION and PRODID are particularly relevant).&lt;br /&gt;
*#* ACCEPTED SPECUPDATE/FAQ.  Is this a case of fixing something that isn't broken?  Note that &amp;quot;iCalendar object&amp;quot; != &amp;quot;vcalendar&amp;quot;.  This is a bit confusing so read RFC 2445 carefully in that regard.  In addition, the [[hcalendar|hCalendar]] spec should say *precisely* how to generate VCALENDAR properties in their absence.&lt;br /&gt;
*# How are axis and headers going to be handled?&lt;br /&gt;
*#* ACCEPTED.  This is documented in [[hcalendar-brainstorming]] but MUST be moved to [[hcalendar|hCalendar]] proper as the editors and implementers have all agreed on it (months ago). Add this as a [[to-do]] for Tantek.&lt;br /&gt;
*# There has been talk that table axis and headers should be used to capture calendar information in a more compact format, but no example are available.  Does anyone have examples or should we try to invent some?&lt;br /&gt;
*#* REJECTED. Please RTFM.  Searching the [[hcalendar|hCalendar]] spec for *either* &amp;quot;axis&amp;quot; or &amp;quot;headers&amp;quot; would have found the following example in the wild:  [http://we05.com/ Web Essentials 05] has marked up their [http://we05.com/program.cfm program schedule table with hCalendar], using the 'axis' and 'headers' attributes.&lt;br /&gt;
*# Should embeded components be allowed?  [[RyanKing]] has already noted that vJournal overlaps blog-posts (although not yet accepted), but should the components to-do, free/busy, timezone, alarms be allowed?  They all considered as just as relevant by the ical spec as events are (my interpretation).&lt;br /&gt;
*#* ACCEPTED SPECUPDATE/FAQ. Another [[to-do]] for Tantek.  Explicitly specify which additional iCalendar objects (in addition to VEVENT) are permitted in hCalendar.  Current additional candidates: VTODO (many examples of this info on the web), VFREEBUSY (already at least one site publishing this info), VALARM (maybe, seems harmless enough, but without a compelling real world use case we should probably omit it).  Currently dropping: VTIMEZONE (terrible construct), VJOURNAL (obsoleted by [[hatom|hAtom]]).&lt;br /&gt;
*# Validation of the hCalendar tests.  The hCalendar tests have been available for a while now, but only Brian Suda and I have made contributions to their content.  Does anyone else have thoughts and should we try to make these the beginning of 'official' hCalendar tests?&lt;br /&gt;
*#* ACCEPT PARTIAL.  We probably need an hCalendar ''validator'' before we can declare any set of tests to be official.&lt;br /&gt;
*# The use of fragments is unclear.  Fragment interpretation seems to be agent dependant.  Fragments usually denote a heading or marker, like a goto statement for HTML.  Unfortunately it may jump in the middle of elements (rather to the beginning of an element).  How should this be handled.  i.e. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a name=&amp;quot;myfrag&amp;quot;&amp;gt;heading&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;vevent&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;description&amp;quot;&amp;gt;A nice event&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;abbr class=&amp;quot;dtstart&amp;quot; title=&amp;quot;2005-10-05&amp;quot;&amp;gt;October 5&amp;lt;/abbr&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*#* ACCEPTED. We should clarify to converters how to interpret a fragement id.  The interpretations are all consistent.  It points to the element that is to be converted.  If that element is empty then so is the conversion.  There is no issue here other than a need for more documentation.&lt;br /&gt;
* 2006-02-01 raised by [[RyanKing]]&lt;br /&gt;
*# ''Issue 1: Given that now, or soon will have hAtom, should we disallow vJournal, so that we don't have 2 blog-post formats?''&lt;br /&gt;
*#* ACCEPTED.  Yes, we should expliclty DROP &amp;quot;vjournal&amp;quot; from [[hcalendar|hCalendar]].&lt;br /&gt;
* 2006-01-04 raised by [[User:CGranade|CGranade]]&lt;br /&gt;
*# ''Interactions with strong namespacing. So far, it seems that hCalendar cannot be embedded into non-XHTML schemas that are also strongly namespaced (e.g.: RDF, Atom) without a resultant validation error, as the &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt; attribute is ''not'' portable across schemas.''&lt;br /&gt;
*#* REJECTED.  The class attribute is used on XHTML elements, which are XML, which can be embedded in any other XML.  The issue as raised doesn't make sense.&lt;br /&gt;
*# ''All examples in XHTML. XHTML should not be the only host to microformats, and thus it should not be the only example host language. Rather, examples in Atom, RSS, RDF, etc. should also be provided.''&lt;br /&gt;
*#* ACCEPTED.  This is definitely something to be added to *-examples pages for each microformat.&lt;br /&gt;
* 2005-10-14 raised by [[User:MarkoMrdjenovic|MarkoMrdjenovic]]&lt;br /&gt;
*# ''UID has to be present in iCal events if they want to be used in Microsoft Outlook. [Suggestion:] it should probably be added to the vevent tag as html attribute id. There is also the problem of converters - x2v has UID commented out. [http://www.ietf.org/rfc/rfc2445.txt RFC] recommends use of addr format for uids which is problematic in html id (does not validate). [[User:HenriBergius|HenriBergius]] pointed out some calendaring software crashes when @ is in the UID, so some other form of identification should be used - along the lines of dtstart-dtend-hash(title,summary)-sample-org''.&lt;br /&gt;
*#* ACCEPTED-PARTIAL.  Yes, it appears RFC2445 requires UID.  However, typical mentions of events by web authors do not provide anything equivalent to a UID, nor should we require authors to do so.  Thus we must come up with an algorithm for implied UID, similar to some of the other properties.  We REJECT the use of the html 'id' attributre as a substitute for UID as they are of different scopes and thus such a translation will likely be problematic.  As part of this algorithm, we MUST disallow &amp;quot;@&amp;quot; signs since the issue points out that such UIDs crash some calendaring software.&lt;br /&gt;
*# ''DTSTAMP also has to be present in iCal event for Microsoft Outlook. I think DTSTAMP should be user visible information so implementation with class=&amp;quot;dtstamp&amp;quot; is fine. x2v already supports it so it should just be added to the standard and examples. The converters might also think of a way to force (create) dtstamp if it's not present.'' [Suggestion:] why not set DTSTAMP to DTSTART if not explicitly defined? -- [[DimitriGlazkov]]&lt;br /&gt;
*#* ACCEPTED.  We should come up with a way to encourage/synthesize/imply DTSTAMP property values.&lt;br /&gt;
*# ''Here is an example from Midgard CMS (which will be easy to change according to bergie on irc):''&lt;br /&gt;
*#* For more discussion of this, please see [http://microformats.org/wiki/hcalendar-brainstorming#UID_handling hCalendar brainstorming: UID handling]&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
  &amp;lt;li class=&amp;quot;vevent&amp;quot; id=&amp;quot;2678c3f94af4a49f9ccbb69b92a82aba-midgardGuid&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;abbr class=&amp;quot;dtstart&amp;quot; title=&amp;quot;2005-10-20T14:34:45Z&amp;quot;&amp;gt;Torstai 20. Lokakuu 17:34&amp;lt;/abbr&amp;gt; -&lt;br /&gt;
    &amp;lt;abbr class=&amp;quot;dtend&amp;quot; title=&amp;quot;2005-10-20T15:33:56Z&amp;quot;&amp;gt;18:33&amp;lt;/abbr&amp;gt;&lt;br /&gt;
    &amp;lt;a class=&amp;quot;url&amp;quot; href=&amp;quot;/bergie/another-calendar/82457028ba83407451edd8aaeaa40622.html&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;span class=&amp;quot;summary&amp;quot;&amp;gt;From the other cal&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;/a&amp;gt;&lt;br /&gt;
    &amp;lt;abbr class=&amp;quot;dtstamp&amp;quot; title=&amp;quot;2005-10-14T12:16:45Z&amp;quot;&amp;gt;Torstai 14. Lokakuu 12:16&amp;lt;/abbr&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* 2005-09-29 raised by RyanKing&lt;br /&gt;
*# ''How does one use ATTENDEE?''&lt;br /&gt;
*#* ACCEPTED.  Another [[to-do]] for Tantek - document how to use ATTENDEE with [[hcard|hCard]].&lt;br /&gt;
* 2005-07-27 raised by Paolo Massa&lt;br /&gt;
*# ''I tried to add a hcalendar event in my blog but it rendered orribly. The problem was I already have a 'class=&amp;quot;summary' in my normal HTML (it is the title of the posts) and my CSS displays it bigger and bold. In this way the summary of the event was as big as the titles of the posts, destroying readability. The problem is Overloading of class attributes, it might be the case that a blogger already use, for example, class=&amp;quot;summary&amp;quot; for different purposes. What can be a solution? Providing in every microformat wiki page a CSS file that users can download and insert in their blog as additional CSS. This CSS file will &amp;quot;shield&amp;quot; attribute &amp;quot;inside&amp;quot; microformats from being interpreted as &amp;quot;normal&amp;quot; attributes. For example for the hCalendar microformats the relative CSS could be something like:&lt;br /&gt;
&lt;br /&gt;
.vevent .summary {&lt;br /&gt;
&lt;br /&gt;
//remove all the previously set properties, for example:&lt;br /&gt;
&lt;br /&gt;
text-decoration: none;&lt;br /&gt;
&lt;br /&gt;
font-size: 100%;&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Since the hCalendar microformat is the following,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vevent&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a class=&amp;quot;url&amp;quot; href=&amp;quot;http://www.web2con.com/&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;summary&amp;quot;&amp;gt;Web 2.0 Conference&amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
I hope to have been clear but I'm not so sure ;-)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 2005-07-21 raised by Neil Jensen &lt;br /&gt;
*# ''should we create a vfreebusy class for HTML representations of freebusy data? Discussion [http://microformats.org/wiki/hcalendar-brainstorming#Free.2FBusy_information on hCalendar brainstorming].  Additional background: [http://www.ifreebusy.com/cyclical/blog/calendar/3.html here].''&lt;br /&gt;
&lt;br /&gt;
* 2005-07-11 raised by Kragen&lt;br /&gt;
*# ''The specification of class=&amp;quot;url&amp;quot; as &amp;amp;lt;a href=&amp;quot;...&amp;quot;&amp;gt; should be a &amp;quot;should&amp;quot;, not a &amp;quot;must&amp;quot;.  Other ways of referencing the event URL, such as &amp;amp;lt;iframe src=&amp;quot;...&amp;quot;&amp;gt; and &amp;amp;lt;embed src=&amp;quot;...&amp;quot;&amp;gt;, shoul be mentioned.  At present X2V doesn't appear to handle them.  This came up in a discussion about [[xfolk|xFolk]].''&lt;br /&gt;
*#* REJECTED. Lack of use case.  We should not add additional &amp;quot;ways of referencing the event URL&amp;quot; unless you can show a concrete real world example on the Web which requires it.&lt;br /&gt;
&lt;br /&gt;
* 2005-06-21 raised by Hixie&lt;br /&gt;
*# ''Issue H-1: This specification is lacking a user agent conformance section. There's basically nothing that says how hCalendars must be parsed, how to handle errors, and so forth. Is it defined in terms of the DOM? Is it defined in terms of a serialisation? How do you handle unexpected content or missing content?&lt;br /&gt;
*#* ACCEPTED. Another [[to-do]] for Tantek, write-up [[hcalendar-parsing]] that documents precisely how user agents are to parse [[hcalendar|hCalendar]] markup.&lt;br /&gt;
* 2005-02-22 raised by Matt Raymond [http://listserver.dreamhost.com/pipermail/whatwg-whatwg.org/2005-February/003124.html on the whatwg list]:&lt;br /&gt;
*# ''There is no copyright statement and no patent statement.''&lt;br /&gt;
*#* ACCEPTED. I have updated [[hcalendar]] (and [[hcard]], and all other MicroFormats) with a standard copyright statement and patent statement.&lt;br /&gt;
&lt;br /&gt;
* 2005-02-18 raised by Matt Raymond [http://listserver.dreamhost.com/pipermail/whatwg-whatwg.org/2005-February/003116.html on the whatwg list]:&lt;br /&gt;
*# ''There is no way for some reading the markup to tell if a class name is the name of an attribute or simply the name of a class used for styling.''&lt;br /&gt;
*#* REJECTED (strawman, poor assumption).  There is no need to differentiate in the general case.  In the specific case, a vocabulary is defined within a context.&lt;br /&gt;
*# ''As a result of the above, user agents would not be able to reliably allow users to access extension properties such as &amp;quot;x-mozilla-alarm-default-length&amp;quot; (which is an actual extension used in Sunbird).''&lt;br /&gt;
*#* REJECTED (out of scope).  Extension properties are outside the current scope of hCalendar.&lt;br /&gt;
*# ''The use of &amp;lt;abbr&amp;gt; for dates is incorrect. &amp;quot;August 5th, 2004&amp;quot; is not the abbreviation of 2004-09-05. In fact, the opposite is closer to the truth.''&lt;br /&gt;
*#* REJECTED (false statement).  This is simply a false statement.  See this article for an explanation of this use of &amp;lt;abbr&amp;gt;: [http://tantek.com/log/2005/01.html#d26t0100 Human vs. ISO8601 dates problem solved]&lt;br /&gt;
*# ''You have to create a complex set of rules for all possible uses of legacy markup within &amp;lt;span class=&amp;quot;vcalendar&amp;quot;&amp;gt; which can easily be implemented incorrectly.''&lt;br /&gt;
*#* REJECTED (false statements, strawman). There is no legacy markup. There is no need to create rules for all possible uses of legacy markup.  There is no need to create a complex set of rules.&lt;br /&gt;
*# ''There are styling and tooltip issues that are unresolved.''&lt;br /&gt;
*#* REJECTED (empty statements).  See the [[hcalendar-faq|hCalendar FAQ]] for answers to specific styling and tooltip questions.  Otherwise, please raise specific issues here with clear valid examples.&lt;br /&gt;
*# ''hCalendar/hCard is more complicated for webmasters to read and understand and more complicated for developers to implement.''&lt;br /&gt;
*#* REJECTED (empty statements, invalid comparator).  Please state specific examples which show the perceived complexity.  The comparison &amp;quot;more complicated&amp;quot; requires two items, no second item was provided.&lt;br /&gt;
*#  ''I dislike the entire system of using class names as markup.  Class names should be reserved for user-defined semantics.''&lt;br /&gt;
*#* ACCEPT-PARTIAL.  When specific elements are available, they should be used instead of class names, but even then class names work well to &amp;quot;subclass&amp;quot; specific elements.  This is thoroughly discussed in the essay [http://tantek.com/log/2002/12.html#L20021216 A Touch of Class].  And yes, class names can and should be used for user-defined semantics. [[hcalendar|hCalendar]] is one such user, and it is reasonable for users to use each others class names.&lt;br /&gt;
*#* ''Would it be more in the spirit of HTML to define these classes in a [http://www.w3.org/TR/html401/struct/global.html#h-7.4.4.3 metadata profile], so that &amp;quot;User agents may... perform some activity based on known conventions for that profile&amp;quot;?  Should this be a part of [[microformats]] specifications in general?  (If not, why not?)''&lt;br /&gt;
*#** ACCEPTED.  Yes, all [[microformats]] that introduce new classnames SHOULD include an [http://gmpg.org/xmdp/ XMDP] profile (which itself is a microformat for defining HTML metadata profiles) that defines those classnames.&lt;br /&gt;
*#*** ''Ok, but in order to refer to a profile, it needs a URI. Tantek writes in [http://microformats.org/discuss/mail/microformats-discuss/2005-July/000407.html a message of Jul 21] &amp;quot;This is precisely the reason that GMPG was founded and created, to provide permanent URLs/homes for microformat profiles.&amp;quot; How does one cause GMPG to issue a profile URL?''&lt;br /&gt;
*#**** ACCEPTED. See [[profile-uris]]; this is moving from Tantek's [[to-do]] list, to both provide profiles and URLs (probably at gmpg.org) for those profiles for hCalendar etc.&lt;br /&gt;
* {{OpenIssue}} 2006-04-10 raised by [[User:ScottReynen|Scott Reynen]].&lt;br /&gt;
*# ''When someone looks at the [[hcalendar]] pages, one sees no collection of real-world publishing of event data nor discussion of the properties implied by such examples, I think it's far too easy to infer that microformats come from other formats more than actual behavior.  There's nothing on the [[process]] nor the hcalendar pages explaining this discrepancy.  I would argue that there should be an explanation, probably in both places.''&lt;br /&gt;
* {{OpenIssue}} 2006-04-13 raised by Tantek&lt;br /&gt;
*# ''Need to add a section on &amp;quot;Property Exceptions&amp;quot; like that in [[hcard|hCard]] to document how to publish / handle the '''METHOD''' property and potentially others.  I.e. typically publishers may omit the METHOD property, however, converters whose function is to convert [[hcalendar|hCalendar]] to iCalendar for consumption/subscription by a calendar aggregator, should probably insert a default '''METHOD:PUBLISH''' on the '''VCALENDAR''' object in the resultant .ics stream.''&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=hcalendar-issues&amp;diff=7139</id>
		<title>hcalendar-issues</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=hcalendar-issues&amp;diff=7139"/>
		<updated>2006-07-03T17:47:51Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: Suggestion to infer DTSTAMP&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= hCalendar Issues =&lt;br /&gt;
&lt;br /&gt;
These are externally raised issues about [[hcalendar|hCalendar]] with broadly varying degrees of merit.  Thus some issues are REJECTED for a number of obvious reasons (but still documented here in case they are re-raised), and others contain longer discussions.  Some issues may be ACCEPTED and perhaps cause changes or improved explanations in the spec.  Submitted issues may (and probably will) be edited and rewritten for better terseness, clarity, calmness, rationality, and as neutral a point of view as possible. Write your issues well. — [http://tantek.com/log/ Tantek]&lt;br /&gt;
&lt;br /&gt;
See related [[hcard-issues]].&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
&lt;br /&gt;
Please use this format:&lt;br /&gt;
* YYYY-MM-DD raised by AUTHORNAME&lt;br /&gt;
*# ''Issue 1: Here is the first issue I have.''&lt;br /&gt;
*# ''Issue 2: Here is the second issue I have.''&lt;br /&gt;
&lt;br /&gt;
And add new issues to the top of the list:&lt;br /&gt;
&lt;br /&gt;
* {{OpenIssue}} 2006-03-07 raised by [[User:Ragdoll|Justin McDowell]]&lt;br /&gt;
*# ''Issue 1: I'd love to see a Property List, similar to what is seen in the hCard spec, that lists all the available properties and sub-properties in a nice, compact list. This saves a lot of time and is really useful for quickly and easily getting aquainted with the possibilities of vCalendar.''&lt;br /&gt;
&lt;br /&gt;
* 2006-02-17 raised by [[User:Mark Mansour|Mark Mansour]] - notes are summarized [[hcalendar-irc-meetup-20060225|here]]&lt;br /&gt;
*# Should vcalendar be a class?  Section 4.4 of RFC2445 says: &amp;quot;The Calendaring and Scheduling Core Object is a collection of calendaring and scheduling information. Typically, this information will consist of a single iCalendar object. However, multiple iCalendar objects can be sequentially grouped together.&amp;quot;  Also the vcalendar class would allow properties on the calendar itself such as METHOD and CALSCALE (I don't think VERSION and PRODID are particularly relevant).&lt;br /&gt;
*#* ACCEPTED SPECUPDATE/FAQ.  Is this a case of fixing something that isn't broken?  Note that &amp;quot;iCalendar object&amp;quot; != &amp;quot;vcalendar&amp;quot;.  This is a bit confusing so read RFC 2445 carefully in that regard.  In addition, the [[hcalendar|hCalendar]] spec should say *precisely* how to generate VCALENDAR properties in their absence.&lt;br /&gt;
*# How are axis and headers going to be handled?&lt;br /&gt;
*#* ACCEPTED.  This is documented in [[hcalendar-brainstorming]] but MUST be moved to [[hcalendar|hCalendar]] proper as the editors and implementers have all agreed on it (months ago). Add this as a [[to-do]] for Tantek.&lt;br /&gt;
*# There has been talk that table axis and headers should be used to capture calendar information in a more compact format, but no example are available.  Does anyone have examples or should we try to invent some?&lt;br /&gt;
*#* REJECTED. Please RTFM.  Searching the [[hcalendar|hCalendar]] spec for *either* &amp;quot;axis&amp;quot; or &amp;quot;headers&amp;quot; would have found the following example in the wild:  [http://we05.com/ Web Essentials 05] has marked up their [http://we05.com/program.cfm program schedule table with hCalendar], using the 'axis' and 'headers' attributes.&lt;br /&gt;
*# Should embeded components be allowed?  [[RyanKing]] has already noted that vJournal overlaps blog-posts (although not yet accepted), but should the components to-do, free/busy, timezone, alarms be allowed?  They all considered as just as relevant by the ical spec as events are (my interpretation).&lt;br /&gt;
*#* ACCEPTED SPECUPDATE/FAQ. Another [[to-do]] for Tantek.  Explicitly specify which additional iCalendar objects (in addition to VEVENT) are permitted in hCalendar.  Current additional candidates: VTODO (many examples of this info on the web), VFREEBUSY (already at least one site publishing this info), VALARM (maybe, seems harmless enough, but without a compelling real world use case we should probably omit it).  Currently dropping: VTIMEZONE (terrible construct), VJOURNAL (obsoleted by [[hatom|hAtom]]).&lt;br /&gt;
*# Validation of the hCalendar tests.  The hCalendar tests have been available for a while now, but only Brian Suda and I have made contributions to their content.  Does anyone else have thoughts and should we try to make these the beginning of 'official' hCalendar tests?&lt;br /&gt;
*#* ACCEPT PARTIAL.  We probably need an hCalendar ''validator'' before we can declare any set of tests to be official.&lt;br /&gt;
*# The use of fragments is unclear.  Fragment interpretation seems to be agent dependant.  Fragments usually denote a heading or marker, like a goto statement for HTML.  Unfortunately it may jump in the middle of elements (rather to the beginning of an element).  How should this be handled.  i.e. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a name=&amp;quot;myfrag&amp;quot;&amp;gt;heading&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;vevent&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;description&amp;quot;&amp;gt;A nice event&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;abbr class=&amp;quot;dtstart&amp;quot; title=&amp;quot;2005-10-05&amp;quot;&amp;gt;October 5&amp;lt;/abbr&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*#* ACCEPTED. We should clarify to converters how to interpret a fragement id.  The interpretations are all consistent.  It points to the element that is to be converted.  If that element is empty then so is the conversion.  There is no issue here other than a need for more documentation.&lt;br /&gt;
* 2006-02-01 raised by [[RyanKing]]&lt;br /&gt;
*# ''Issue 1: Given that now, or soon will have hAtom, should we disallow vJournal, so that we don't have 2 blog-post formats?''&lt;br /&gt;
*#* ACCEPTED.  Yes, we should expliclty DROP &amp;quot;vjournal&amp;quot; from [[hcalendar|hCalendar]].&lt;br /&gt;
* 2006-01-04 raised by [[User:CGranade|CGranade]]&lt;br /&gt;
*# ''Interactions with strong namespacing. So far, it seems that hCalendar cannot be embedded into non-XHTML schemas that are also strongly namespaced (e.g.: RDF, Atom) without a resultant validation error, as the &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt; attribute is ''not'' portable across schemas.''&lt;br /&gt;
*#* REJECTED.  The class attribute is used on XHTML elements, which are XML, which can be embedded in any other XML.  The issue as raised doesn't make sense.&lt;br /&gt;
*# ''All examples in XHTML. XHTML should not be the only host to microformats, and thus it should not be the only example host language. Rather, examples in Atom, RSS, RDF, etc. should also be provided.''&lt;br /&gt;
*#* ACCEPTED.  This is definitely something to be added to *-examples pages for each microformat.&lt;br /&gt;
* 2005-10-14 raised by [[User:MarkoMrdjenovic|MarkoMrdjenovic]]&lt;br /&gt;
*# ''UID has to be present in iCal events if they want to be used in Microsoft Outlook. [Suggestion:] it should probably be added to the vevent tag as html attribute id. There is also the problem of converters - x2v has UID commented out. [http://www.ietf.org/rfc/rfc2445.txt RFC] recommends use of addr format for uids which is problematic in html id (does not validate). [[User:HenriBergius|HenriBergius]] pointed out some calendaring software crashes when @ is in the UID, so some other form of identification should be used - along the lines of dtstart-dtend-hash(title,summary)-sample-org''.&lt;br /&gt;
*#* ACCEPTED-PARTIAL.  Yes, it appears RFC2445 requires UID.  However, typical mentions of events by web authors do not provide anything equivalent to a UID, nor should we require authors to do so.  Thus we must come up with an algorithm for implied UID, similar to some of the other properties.  We REJECT the use of the html 'id' attributre as a substitute for UID as they are of different scopes and thus such a translation will likely be problematic.  As part of this algorithm, we MUST disallow &amp;quot;@&amp;quot; signs since the issue points out that such UIDs crash some calendaring software.&lt;br /&gt;
*# ''DTSTAMP also has to be present in iCal event for Microsoft Outlook. I think DTSTAMP should be user visible information so implementation with class=&amp;quot;dtstamp&amp;quot; is fine. x2v already supports it so it should just be added to the standard and examples. The converters might also think of a way to force (create) dtstamp if it's not present.'' [Suggestion:] why not set DTSTAMP to DTSTART if not explicitly defined? -- DimitriGlazkov&lt;br /&gt;
*#* ACCEPTED.  We should come up with a way to encourage/synthesize/imply DTSTAMP property values.&lt;br /&gt;
*# ''Here is an example from Midgard CMS (which will be easy to change according to bergie on irc):''&lt;br /&gt;
*#* For more discussion of this, please see [http://microformats.org/wiki/hcalendar-brainstorming#UID_handling hCalendar brainstorming: UID handling]&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
  &amp;lt;li class=&amp;quot;vevent&amp;quot; id=&amp;quot;2678c3f94af4a49f9ccbb69b92a82aba-midgardGuid&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;abbr class=&amp;quot;dtstart&amp;quot; title=&amp;quot;2005-10-20T14:34:45Z&amp;quot;&amp;gt;Torstai 20. Lokakuu 17:34&amp;lt;/abbr&amp;gt; -&lt;br /&gt;
    &amp;lt;abbr class=&amp;quot;dtend&amp;quot; title=&amp;quot;2005-10-20T15:33:56Z&amp;quot;&amp;gt;18:33&amp;lt;/abbr&amp;gt;&lt;br /&gt;
    &amp;lt;a class=&amp;quot;url&amp;quot; href=&amp;quot;/bergie/another-calendar/82457028ba83407451edd8aaeaa40622.html&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;span class=&amp;quot;summary&amp;quot;&amp;gt;From the other cal&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;/a&amp;gt;&lt;br /&gt;
    &amp;lt;abbr class=&amp;quot;dtstamp&amp;quot; title=&amp;quot;2005-10-14T12:16:45Z&amp;quot;&amp;gt;Torstai 14. Lokakuu 12:16&amp;lt;/abbr&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* 2005-09-29 raised by RyanKing&lt;br /&gt;
*# ''How does one use ATTENDEE?''&lt;br /&gt;
*#* ACCEPTED.  Another [[to-do]] for Tantek - document how to use ATTENDEE with [[hcard|hCard]].&lt;br /&gt;
* 2005-07-27 raised by Paolo Massa&lt;br /&gt;
*# ''I tried to add a hcalendar event in my blog but it rendered orribly. The problem was I already have a 'class=&amp;quot;summary' in my normal HTML (it is the title of the posts) and my CSS displays it bigger and bold. In this way the summary of the event was as big as the titles of the posts, destroying readability. The problem is Overloading of class attributes, it might be the case that a blogger already use, for example, class=&amp;quot;summary&amp;quot; for different purposes. What can be a solution? Providing in every microformat wiki page a CSS file that users can download and insert in their blog as additional CSS. This CSS file will &amp;quot;shield&amp;quot; attribute &amp;quot;inside&amp;quot; microformats from being interpreted as &amp;quot;normal&amp;quot; attributes. For example for the hCalendar microformats the relative CSS could be something like:&lt;br /&gt;
&lt;br /&gt;
.vevent .summary {&lt;br /&gt;
&lt;br /&gt;
//remove all the previously set properties, for example:&lt;br /&gt;
&lt;br /&gt;
text-decoration: none;&lt;br /&gt;
&lt;br /&gt;
font-size: 100%;&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Since the hCalendar microformat is the following,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;vevent&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a class=&amp;quot;url&amp;quot; href=&amp;quot;http://www.web2con.com/&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;summary&amp;quot;&amp;gt;Web 2.0 Conference&amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
I hope to have been clear but I'm not so sure ;-)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 2005-07-21 raised by Neil Jensen &lt;br /&gt;
*# ''should we create a vfreebusy class for HTML representations of freebusy data? Discussion [http://microformats.org/wiki/hcalendar-brainstorming#Free.2FBusy_information on hCalendar brainstorming].  Additional background: [http://www.ifreebusy.com/cyclical/blog/calendar/3.html here].''&lt;br /&gt;
&lt;br /&gt;
* 2005-07-11 raised by Kragen&lt;br /&gt;
*# ''The specification of class=&amp;quot;url&amp;quot; as &amp;amp;lt;a href=&amp;quot;...&amp;quot;&amp;gt; should be a &amp;quot;should&amp;quot;, not a &amp;quot;must&amp;quot;.  Other ways of referencing the event URL, such as &amp;amp;lt;iframe src=&amp;quot;...&amp;quot;&amp;gt; and &amp;amp;lt;embed src=&amp;quot;...&amp;quot;&amp;gt;, shoul be mentioned.  At present X2V doesn't appear to handle them.  This came up in a discussion about [[xfolk|xFolk]].''&lt;br /&gt;
*#* REJECTED. Lack of use case.  We should not add additional &amp;quot;ways of referencing the event URL&amp;quot; unless you can show a concrete real world example on the Web which requires it.&lt;br /&gt;
&lt;br /&gt;
* 2005-06-21 raised by Hixie&lt;br /&gt;
*# ''Issue H-1: This specification is lacking a user agent conformance section. There's basically nothing that says how hCalendars must be parsed, how to handle errors, and so forth. Is it defined in terms of the DOM? Is it defined in terms of a serialisation? How do you handle unexpected content or missing content?&lt;br /&gt;
*#* ACCEPTED. Another [[to-do]] for Tantek, write-up [[hcalendar-parsing]] that documents precisely how user agents are to parse [[hcalendar|hCalendar]] markup.&lt;br /&gt;
* 2005-02-22 raised by Matt Raymond [http://listserver.dreamhost.com/pipermail/whatwg-whatwg.org/2005-February/003124.html on the whatwg list]:&lt;br /&gt;
*# ''There is no copyright statement and no patent statement.''&lt;br /&gt;
*#* ACCEPTED. I have updated [[hcalendar]] (and [[hcard]], and all other MicroFormats) with a standard copyright statement and patent statement.&lt;br /&gt;
&lt;br /&gt;
* 2005-02-18 raised by Matt Raymond [http://listserver.dreamhost.com/pipermail/whatwg-whatwg.org/2005-February/003116.html on the whatwg list]:&lt;br /&gt;
*# ''There is no way for some reading the markup to tell if a class name is the name of an attribute or simply the name of a class used for styling.''&lt;br /&gt;
*#* REJECTED (strawman, poor assumption).  There is no need to differentiate in the general case.  In the specific case, a vocabulary is defined within a context.&lt;br /&gt;
*# ''As a result of the above, user agents would not be able to reliably allow users to access extension properties such as &amp;quot;x-mozilla-alarm-default-length&amp;quot; (which is an actual extension used in Sunbird).''&lt;br /&gt;
*#* REJECTED (out of scope).  Extension properties are outside the current scope of hCalendar.&lt;br /&gt;
*# ''The use of &amp;lt;abbr&amp;gt; for dates is incorrect. &amp;quot;August 5th, 2004&amp;quot; is not the abbreviation of 2004-09-05. In fact, the opposite is closer to the truth.''&lt;br /&gt;
*#* REJECTED (false statement).  This is simply a false statement.  See this article for an explanation of this use of &amp;lt;abbr&amp;gt;: [http://tantek.com/log/2005/01.html#d26t0100 Human vs. ISO8601 dates problem solved]&lt;br /&gt;
*# ''You have to create a complex set of rules for all possible uses of legacy markup within &amp;lt;span class=&amp;quot;vcalendar&amp;quot;&amp;gt; which can easily be implemented incorrectly.''&lt;br /&gt;
*#* REJECTED (false statements, strawman). There is no legacy markup. There is no need to create rules for all possible uses of legacy markup.  There is no need to create a complex set of rules.&lt;br /&gt;
*# ''There are styling and tooltip issues that are unresolved.''&lt;br /&gt;
*#* REJECTED (empty statements).  See the [[hcalendar-faq|hCalendar FAQ]] for answers to specific styling and tooltip questions.  Otherwise, please raise specific issues here with clear valid examples.&lt;br /&gt;
*# ''hCalendar/hCard is more complicated for webmasters to read and understand and more complicated for developers to implement.''&lt;br /&gt;
*#* REJECTED (empty statements, invalid comparator).  Please state specific examples which show the perceived complexity.  The comparison &amp;quot;more complicated&amp;quot; requires two items, no second item was provided.&lt;br /&gt;
*#  ''I dislike the entire system of using class names as markup.  Class names should be reserved for user-defined semantics.''&lt;br /&gt;
*#* ACCEPT-PARTIAL.  When specific elements are available, they should be used instead of class names, but even then class names work well to &amp;quot;subclass&amp;quot; specific elements.  This is thoroughly discussed in the essay [http://tantek.com/log/2002/12.html#L20021216 A Touch of Class].  And yes, class names can and should be used for user-defined semantics. [[hcalendar|hCalendar]] is one such user, and it is reasonable for users to use each others class names.&lt;br /&gt;
*#* ''Would it be more in the spirit of HTML to define these classes in a [http://www.w3.org/TR/html401/struct/global.html#h-7.4.4.3 metadata profile], so that &amp;quot;User agents may... perform some activity based on known conventions for that profile&amp;quot;?  Should this be a part of [[microformats]] specifications in general?  (If not, why not?)''&lt;br /&gt;
*#** ACCEPTED.  Yes, all [[microformats]] that introduce new classnames SHOULD include an [http://gmpg.org/xmdp/ XMDP] profile (which itself is a microformat for defining HTML metadata profiles) that defines those classnames.&lt;br /&gt;
*#*** ''Ok, but in order to refer to a profile, it needs a URI. Tantek writes in [http://microformats.org/discuss/mail/microformats-discuss/2005-July/000407.html a message of Jul 21] &amp;quot;This is precisely the reason that GMPG was founded and created, to provide permanent URLs/homes for microformat profiles.&amp;quot; How does one cause GMPG to issue a profile URL?''&lt;br /&gt;
*#**** ACCEPTED. See [[profile-uris]]; this is moving from Tantek's [[to-do]] list, to both provide profiles and URLs (probably at gmpg.org) for those profiles for hCalendar etc.&lt;br /&gt;
* {{OpenIssue}} 2006-04-10 raised by [[User:ScottReynen|Scott Reynen]].&lt;br /&gt;
*# ''When someone looks at the [[hcalendar]] pages, one sees no collection of real-world publishing of event data nor discussion of the properties implied by such examples, I think it's far too easy to infer that microformats come from other formats more than actual behavior.  There's nothing on the [[process]] nor the hcalendar pages explaining this discrepancy.  I would argue that there should be an explanation, probably in both places.''&lt;br /&gt;
* {{OpenIssue}} 2006-04-13 raised by Tantek&lt;br /&gt;
*# ''Need to add a section on &amp;quot;Property Exceptions&amp;quot; like that in [[hcard|hCard]] to document how to publish / handle the '''METHOD''' property and potentially others.  I.e. typically publishers may omit the METHOD property, however, converters whose function is to convert [[hcalendar|hCalendar]] to iCalendar for consumption/subscription by a calendar aggregator, should probably insert a default '''METHOD:PUBLISH''' on the '''VCALENDAR''' object in the resultant .ics stream.''&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=hatom&amp;diff=7068</id>
		<title>hatom</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=hatom&amp;diff=7068"/>
		<updated>2006-06-20T15:00:30Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: Added Capital University feed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt; hAtom 0.1 &amp;lt;/h1&amp;gt;&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 is one of several [[microformats]] open standards.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
== Draft Specification ==&lt;br /&gt;
&lt;br /&gt;
=== Editor/Author ===&lt;br /&gt;
* [http://blogmatrix.blogmatrix.com/ David Janes], [http://www.blogmatrix.com BlogMatrix, Inc.]&lt;br /&gt;
&lt;br /&gt;
=== Contributors ===&lt;br /&gt;
* [http://members.optusnet.com.au/benjamincarlyle/benjamin/blog/ Benjamin Carlyle]&lt;br /&gt;
* [http://tantek.com/ Tantek Çelik], [http://technorati.com Technorati, Inc.]&lt;br /&gt;
&lt;br /&gt;
=== Copyright ===&lt;br /&gt;
{{MicroFormatCopyrightStatement2005}}&lt;br /&gt;
&lt;br /&gt;
=== Patents ===&lt;br /&gt;
{{MicroFormatPatentStatement}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&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;
== 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 that 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;
* 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;'''. required. 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 is 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 weblogs 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 inline 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;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;dl class=&amp;quot;profile&amp;quot;&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 rel=&amp;quot;help&amp;quot; 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;
  &amp;lt;dl&amp;gt;&lt;br /&gt;
   &amp;lt;dt&amp;gt;hfeed&amp;lt;/dt&amp;gt;&lt;br /&gt;
   &amp;lt;dd&amp;gt;&lt;br /&gt;
    The concept of atom:feed from &lt;br /&gt;
    &amp;lt;a href=&amp;quot;http://www.atomenabled.org/developers/syndication/atom-format-spec.php&amp;quot;&amp;gt;The Atom Syndication Format&amp;lt;/a&amp;gt;, &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;
   &amp;lt;dt&amp;gt;hentry&amp;lt;/dt&amp;gt;&lt;br /&gt;
   &amp;lt;dd&amp;gt;&lt;br /&gt;
    The concept of atom:entry from &lt;br /&gt;
    &amp;lt;a href=&amp;quot;http://www.atomenabled.org/developers/syndication/atom-format-spec.php&amp;quot;&amp;gt;The Atom Syndication Format&amp;lt;/a&amp;gt;, &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;
   &amp;lt;dt&amp;gt;entry-title&amp;lt;/dt&amp;gt;&lt;br /&gt;
   &amp;lt;dd&amp;gt;&lt;br /&gt;
    The concept of atom:title inside of an atom:entry from &lt;br /&gt;
    &amp;lt;a href=&amp;quot;http://www.atomenabled.org/developers/syndication/atom-format-spec.php&amp;quot;&amp;gt;The Atom Syndication Format&amp;lt;/a&amp;gt;, &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;
   &amp;lt;dt&amp;gt;entry-content&amp;lt;/dt&amp;gt;&lt;br /&gt;
   &amp;lt;dd&amp;gt;&lt;br /&gt;
    The concept of atom:content from &lt;br /&gt;
    &amp;lt;a href=&amp;quot;http://www.atomenabled.org/developers/syndication/atom-format-spec.php&amp;quot;&amp;gt;The Atom Syndication Format&amp;lt;/a&amp;gt;, &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;
   &amp;lt;dt&amp;gt;entry-summary&amp;lt;/dt&amp;gt;&lt;br /&gt;
   &amp;lt;dd&amp;gt;&lt;br /&gt;
    The concept of atom:summary from &lt;br /&gt;
    &amp;lt;a href=&amp;quot;http://www.atomenabled.org/developers/syndication/atom-format-spec.php&amp;quot;&amp;gt;The Atom Syndication Format&amp;lt;/a&amp;gt;, &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;
   &amp;lt;dt&amp;gt;bookmark&amp;lt;/dt&amp;gt;&lt;br /&gt;
   &amp;lt;dd&amp;gt;&lt;br /&gt;
    The concept of atom:link (without any &amp;quot;rel&amp;quot;) with an atom:entry from &lt;br /&gt;
    &amp;lt;a href=&amp;quot;http://www.atomenabled.org/developers/syndication/atom-format-spec.php&amp;quot;&amp;gt;The Atom Syndication Format&amp;lt;/a&amp;gt;, &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;
   &amp;lt;dt&amp;gt;published&amp;lt;/dt&amp;gt;&lt;br /&gt;
   &amp;lt;dd&amp;gt;&lt;br /&gt;
    The concept of atom:published from &lt;br /&gt;
    &amp;lt;a href=&amp;quot;http://www.atomenabled.org/developers/syndication/atom-format-spec.php&amp;quot;&amp;gt;The Atom Syndication Format&amp;lt;/a&amp;gt;, &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;
   &amp;lt;dt&amp;gt;updated&amp;lt;/dt&amp;gt;&lt;br /&gt;
   &amp;lt;dd&amp;gt;&lt;br /&gt;
    The concept of atom:updated from &lt;br /&gt;
    &amp;lt;a href=&amp;quot;http://www.atomenabled.org/developers/syndication/atom-format-spec.php&amp;quot;&amp;gt;The Atom Syndication Format&amp;lt;/a&amp;gt;, &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;
   &amp;lt;dt&amp;gt;author&amp;lt;/dt&amp;gt;&lt;br /&gt;
   &amp;lt;dd&amp;gt;&lt;br /&gt;
    The concept of atom:author from &lt;br /&gt;
    &amp;lt;a href=&amp;quot;http://www.atomenabled.org/developers/syndication/atom-format-spec.php&amp;quot;&amp;gt;The Atom Syndication Format&amp;lt;/a&amp;gt;, &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;
  &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;/pre&amp;gt;&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;
This section is '''informative'''.&lt;br /&gt;
&lt;br /&gt;
=== 0.1 hAtom implementations ===&lt;br /&gt;
* [http://www.capital.edu Capital University] uses hAtom 0.1 to mark up the feed of latest posts by student bloggers on its home page.&lt;br /&gt;
* [http://blog.davidjanes.com Ranting and Roaring] (David Janes)&lt;br /&gt;
* [http://ChunkySoup.net/ ChunkySoup.net] has redesigned using hAtom 0.1 and hCards on the entire site -- by [[User:ChrisCasciano|Chris Casciano]]&lt;br /&gt;
* [http://sedna.spip.org/sedna/ Sedna RSS] (a feed aggregator based on SPIP, by Fil, IZO and others; GPLd sources are available at [http://zone.spip.org/trac/spip-zone/browser/_squelettes_/sedna SPIP-Zone])&lt;br /&gt;
* [http://members.optusnet.com.au/benjamincarlyle/benjamin/blog/ Sound Advice] (Benjamin Carlyle)&lt;br /&gt;
* [http://quotedprintable.com/pages/scribbish Scribbish] is a Typo theme which uses hAtom.&lt;br /&gt;
* [http://rbach.priv.at/hAtom2Atom/Changelog/ hAtom2Atom.xsl’s Changelog] is published as hAtom and Atom.&lt;br /&gt;
* [http://federali.st/ federali.st]'s webbed Federalist Papers are each marked up in hAtom.&lt;br /&gt;
&lt;br /&gt;
=== Pre 0.1 hAtom implementations ===&lt;br /&gt;
These pages conform to an older draft standard and need to be updated.&lt;br /&gt;
&lt;br /&gt;
* [http://www.myelin.co.nz/post/ Second p0st] (Phil Pearson)&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
This section is '''informative'''.&lt;br /&gt;
&lt;br /&gt;
* the [http://www.trinityanne.com/tools/extract/ Almost Universal Microformat Parser] can extract hAtom content from webpages ([http://www.trinityanne.com/tools/extract/?uri=http%3A%2F%2Fblog.davidjanes.com&amp;amp;microformat=hatom&amp;amp;submit=Submit example])&lt;br /&gt;
* the [http://www.trinityanne.com/tools/greasemonkey/microformat-action.user.js microformat-action] [[greasemonkey|Greasemonkey]] script detects hAtom content on webpages and will call the [http://www.trinityanne.com/tools/extract/ Almost Universal Microformat Parser]&lt;br /&gt;
* [http://rbach.priv.at/hAtom2Atom/ hAtom2Atom.xsl] transforms hAtom to Atom (as the name suggests.)&lt;br /&gt;
* There is now an [http://www.lukearno.com/projects/hatom2atom/ hatom2atom proxy] that uses hAtom2Atom.xsl.&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;
&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.atomenabled.org/ Atom]&lt;br /&gt;
* [[hcard-parsing]]&lt;br /&gt;
&lt;br /&gt;
=== Informative References ===&lt;br /&gt;
&lt;br /&gt;
==== Specifications That Use hAtom ====&lt;br /&gt;
&lt;br /&gt;
==== Similar Work ====&lt;br /&gt;
&lt;br /&gt;
* [http://rdfs.org/sioc/ Semantically-Interlinked Online Communities (SIOC) RDF Ontology]&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;
&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[hatom|hAtom]] - the draft proposal&lt;br /&gt;
* [[hatom-hints|hAtom Hints]] - help for implementors&lt;br /&gt;
* [[hatom-issues]] - problems? complaints? ideas? Put them here&lt;br /&gt;
* [[hatom-faq]] - knowledge base&lt;br /&gt;
* [[blog-post-brainstorming]]&lt;br /&gt;
* [[blog-post-formats]]&lt;br /&gt;
* [[blog-post-examples]]&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;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=hcalendar&amp;diff=6828</id>
		<title>hcalendar</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=hcalendar&amp;diff=6828"/>
		<updated>2006-06-20T14:58:14Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: Capital University event feeds example added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt; hCalendar &amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
hCalendar is a simple, open, distributed calendaring and events format, based on the  iCalendar standard ([http://www.ietf.org/rfc/rfc2445.txt RFC2445]), suitable for embedding in (X)HTML, Atom, RSS, and arbitrary XML. hCalendar is one of several open [[microformats|microformat]] standards.&lt;br /&gt;
&lt;br /&gt;
Want to get started with writing an [[hcalendar|hCalendar]] event?  Use the [http://microformats.org/code/hcalendar/creator hCalendar creator] to write up an event and publish it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
&lt;br /&gt;
; Editor : [http://tantek.com/ Tantek Çelik] ([http://technorati.com Technorati, Inc])&lt;br /&gt;
; Authors : [http://tantek.com/ Tantek Çelik], [http://technorati.com Technorati, Inc]&lt;br /&gt;
: [http://suda.co.uk/ Brian Suda]&lt;br /&gt;
&lt;br /&gt;
=== Copyright ===&lt;br /&gt;
{{MicroFormatCopyrightStatement2004}}&lt;br /&gt;
&lt;br /&gt;
=== Patents ===&lt;br /&gt;
{{MicroFormatPatentStatement}}&lt;br /&gt;
&lt;br /&gt;
=== Inspiration and Acknowledgments ===&lt;br /&gt;
Thanks to:&lt;br /&gt;
* Adam Bosworth for leading the [http://wiki.oreillynet.com/foocamp04/index.cgi?HTMLForCalendars FOO Camp 2004 HTML For Calendars presentation] which brought together a critical mass of interested parties.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The iCalendar standard ([http://www.ietf.org/rfc/rfc2445.txt RFC2445]), has been broadly interoperably implemented (e.g. Apple's &amp;quot;iCal&amp;quot; application built into MacOSX).&lt;br /&gt;
&lt;br /&gt;
In addition, bloggers often discuss events on their blogs -- upcoming events, writeups of past events, etc.  With just a tad bit of structure, bloggers can discuss events in their blog(s) in such a way that spiders and other aggregators can retrieve such events, automatically convert them to iCalendar, and use them in any iCalendar application or service.&lt;br /&gt;
&lt;br /&gt;
This specification introduces the '''hCalendar''' format, which is a 1:1 representation of the aforementioned iCalendar standard, in semantic XHTML.  Bloggers can both embed hCalendar events directly in their web pages, and style them with CSS to make them appear as desired.  In addition, hCalendar enables applications to retrieve information about such events directly from web pages without having to reference a separate file.&lt;br /&gt;
&lt;br /&gt;
== Semantic XHTML Design Principles ==&lt;br /&gt;
&lt;br /&gt;
{{semantic-xhtml-design-principles}}&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
&lt;br /&gt;
=== In General ===&lt;br /&gt;
&lt;br /&gt;
The iCalendar standard ([http://www.ietf.org/rfc/rfc2445.txt RFC2445]) forms the basis of hCalendar.&lt;br /&gt;
&lt;br /&gt;
Note: the editor and authors of this specification are tracking the [http://lists.osafoundation.org/pipermail/ietf-calsify/ &amp;quot;iCal-Basic&amp;quot; effort] and intend to base the core hCalendar profile on iCal-Basic. See references for a link to the current draft.&lt;br /&gt;
&lt;br /&gt;
The basic format of hCalendar is to use iCalendar object/property names in lower-case for class names, and to map the nesting of iCalendar objects directly into nested XHTML.&lt;br /&gt;
&lt;br /&gt;
=== More Semantic Equivalents ===&lt;br /&gt;
&lt;br /&gt;
However, for some properties there is a more semantic equivalent, and therefore they get special treatment, e.g.:&lt;br /&gt;
* &amp;lt;code&amp;gt;URL&amp;lt;/code&amp;gt; in iCalendar 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;vevent&amp;quot;&amp;lt;/code&amp;gt; in hCalendar.&lt;br /&gt;
* &amp;lt;code&amp;gt;ATTENDEE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CONTACT&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;ORGANIZER&amp;lt;/code&amp;gt; in iCalendar may be represented by an [[hcard|hCard]] in hCalendar .&lt;br /&gt;
* A named &amp;lt;code&amp;gt;LOCATION&amp;lt;/code&amp;gt; (potentially with an address and/or geo) in iCalendar may be represented by a nested [[hcard|hCard]] in hCalendar.  Similarly, an address &amp;lt;code&amp;gt;LOCATION&amp;lt;/code&amp;gt; may be represented by an [[adr]], and a geo (latitude and longitude) &amp;lt;code&amp;gt;LOCATION&amp;lt;/code&amp;gt; may be represented by a [[geo]].&lt;br /&gt;
* &amp;lt;code&amp;gt;UID&amp;lt;/code&amp;gt; in iCalendar simply becomes another semantic applied to a specific URL for an hCalendar event.&lt;br /&gt;
&lt;br /&gt;
=== Singular vs. Plural Properties ===&lt;br /&gt;
&lt;br /&gt;
For properties which are singular (e.g. &amp;quot;N&amp;quot; and &amp;quot;FN&amp;quot; from vCard), the first descendant element with that class should take effect, any others being ignored.&lt;br /&gt;
&lt;br /&gt;
For properties which can be plural (e.g. &amp;quot;TEL&amp;quot; from vCard), each class instance should create a instance of that property.  Plural properties with subtypes (e.g. TEL with WORK, HOME, CELL from vCard) can be optimized to share a common element for the property itself, with each instance of subtype being an appropriately classed descendant of the property element.&lt;br /&gt;
&lt;br /&gt;
==== Plural Properties Singularized ====&lt;br /&gt;
&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;
=== Human vs. Machine readable ===&lt;br /&gt;
If an &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;abbr&amp;gt;&amp;lt;/nowiki&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 of the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;abbr&amp;gt;&amp;lt;/nowiki&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 human presentable version of the value.  This specification recommends that such &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;abbr&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; elements be used for the following iCalendar properties:&lt;br /&gt;
* DTSTART, DTEND, DURATION, RDATE, RRULE&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
Here is a sample event in an iCalendar:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
BEGIN:VCALENDAR&lt;br /&gt;
PRODID:-//XYZproduct//EN&lt;br /&gt;
VERSION:2.0&lt;br /&gt;
BEGIN:VEVENT&lt;br /&gt;
URL:http://www.web2con.com/&lt;br /&gt;
DTSTART:20051005&lt;br /&gt;
DTEND:20051008&lt;br /&gt;
SUMMARY:Web 2.0 Conference&lt;br /&gt;
LOCATION:Argent Hotel\, San Francisco\, CA&lt;br /&gt;
END:VEVENT&lt;br /&gt;
END:VCALENDAR&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
and an equivalent event in hCalendar format with various elements optimized appropriately.  See [[hcalendar-example1-steps]] for the derivation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;vevent&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;a class=&amp;quot;url&amp;quot; href=&amp;quot;http://www.web2con.com/&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;summary&amp;quot;&amp;gt;Web 2.0 Conference&amp;lt;/span&amp;gt;: &lt;br /&gt;
  &amp;lt;abbr class=&amp;quot;dtstart&amp;quot; title=&amp;quot;2005-10-05&amp;quot;&amp;gt;October 5&amp;lt;/abbr&amp;gt;-&lt;br /&gt;
  &amp;lt;abbr class=&amp;quot;dtend&amp;quot; title=&amp;quot;2005-10-08&amp;quot;&amp;gt;7&amp;lt;/abbr&amp;gt;,&lt;br /&gt;
 at the &amp;lt;span class=&amp;quot;location&amp;quot;&amp;gt;Argent Hotel, San Francisco, CA&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
which could be displayed as:&lt;br /&gt;
&lt;br /&gt;
[http://www.web2con.com/ Web 2.0 Conference: October 5-7, at the Argent Hotel, San Francisco, CA]&lt;br /&gt;
&lt;br /&gt;
Note 1: The product information is not necessary since hCalendar is an interchange format.  When transforming hCalendar back into iCalendar, the transforming engine should add its own product ID.&lt;br /&gt;
&lt;br /&gt;
Note 2: A surrounding &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;span class=&amp;quot;vcalendar&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; element is optional, and is left out as such.  It is optional since the context of a vcalendar is implied when a vevent is encountered.  The implied context/scope is that of the document.  Authors may explicitly use elements with class=&amp;quot;vcalendar&amp;quot; to wrap sets of vevents that all belong to the same calendar, e.g. when publishing multiple calendars on the same page.&lt;br /&gt;
&lt;br /&gt;
Note 3: The version information is unnecessary in hCalendar markup directly since the version will be defined by the profile of hCalendar that is used/referred to in the 'profile' attribute of the &amp;lt;head&amp;gt; element.&lt;br /&gt;
&lt;br /&gt;
Note 4: ISO8601 dates (required by iCalendar) are not very human friendly.  In addition, the year is often understood implicitly by humans from the context.  Thus &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;abbr&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; elements are used to simultaneously provide a human friendly date and/or time in the visible contents of the element, while placing the respective machine parsable comprehensive ISO8601 datetime in the 'title' attribute.&lt;br /&gt;
The notation YYYY-MM-DD should be used for better readability.&lt;br /&gt;
&lt;br /&gt;
Note 5: The difference between the DTEND ISO8601 date (2005-10-08) and the human readable date (7) is NOT a mistake.  [http://lists.osafoundation.org/pipermail/ietf-calsify/2005-September/000769.html DTEND is exclusive], meaning, that the event ends just before the DTEND. Thus for events which start on one day and end on another day, the DTEND date must be specified as the day after the day that a human would say is the last day of the event.&lt;br /&gt;
&lt;br /&gt;
Note 6: The location in this example contains implicit structure (venue name, city, state) which could be marked up explicitly as an [[hcard|hCard]].  See [http://microformats.org/wiki/hcalendar-brainstorming#hCard_locations hCalendar brainstorming: hCard locations] for a informative explanation of how to do this.&lt;br /&gt;
&lt;br /&gt;
See [[hcalendar-examples]] for more hCalendar examples&lt;br /&gt;
&lt;br /&gt;
== Examples in the wild ==&lt;br /&gt;
This section is '''informative'''.&lt;br /&gt;
&lt;br /&gt;
The following sites have implemented hCalendar, and thus are a great place to start for anyone looking for examples &amp;quot;in the wild&amp;quot; to try parsing, indexing, organizing etc.  If events on your pages are marked up with hCalendar, feel free to add it to the top of this list.  Once the list grows too big, we'll make a separate wiki page.&lt;br /&gt;
&lt;br /&gt;
=== New Examples ===&lt;br /&gt;
Please add new examples to this section.&lt;br /&gt;
* [http://www.capital.edu/ Capital University] uses hCalendar on multiple pages to provide feeds of events, relevant to page content&lt;br /&gt;
* [http://www.thesession.org/events/ The Session events] uses hCalendar to mark up concerts, festivals and workshops related to Irish traditional music.&lt;br /&gt;
* [http://rubyandrails.org/usergroups/newcastle ncl.rb] uses hCalendar to mark up new meetings.&lt;br /&gt;
* [http://www.worldcupkickoff.com/ World Cup KickOff] where you can download and keep all the fixtures you are interested in so you will never miss a single game of the 2006 football World Cup!&lt;br /&gt;
** This link was on the [http://www.lifehacker.com/software/sports/world-cup-start-times-for-ical-etc-175393.php Lifehackers site] and made its way to the yahoo news site:&lt;br /&gt;
&lt;br /&gt;
Mon May 22, 4:00 PM ET&lt;br /&gt;
The World Cup, one of the world's most watched sporting events, is almost upon us. If you've ever tried to follow your favorite team through the Cup you know that it can sometimes be difficult to know when they're on. World Cup Kickoff can help.&lt;br /&gt;
&lt;br /&gt;
World Cup KickOff is all you will ever need for knowing all the match details for the upcoming World Cup 2006. Whether you use your mobile phone, MS Outlook, Apple iCal or Mozilla Calendar, you can download and keep all the fixtures you are interested in so you will never miss a single game!&lt;br /&gt;
ADVERTISEMENT&lt;br /&gt;
&lt;br /&gt;
Next tip? We'll show you how to get up at 2 AM to watch your matches. ;0) Thanks to Tom for the tip!&lt;br /&gt;
&lt;br /&gt;
* [http://gross.org.za/calendar GROSSUG Calendar] - Uses hCalendar to mark up meetings and other events.&lt;br /&gt;
* [http://www.socaltech.com socalTECH] is a news and information site. Their front page event listing is marked up with hCalendar.&lt;br /&gt;
* [http://www.webanalyticsassociation.org/en/calendarevents/search.asp  Web Analytics Association] - hCalendar microformat is in place on all Tendenci sites on the calendar events search page and consolidated list page.&lt;br /&gt;
* [http://www.tendenci.com/en/calendarevents/search.asp Tendenci Calendar Events] with hCalendar&lt;br /&gt;
* [http://www.argolon.com/2006/04/17/web20-conference-in-dublin/ Web2.0 Conference in Dublin] hCalendar event&lt;br /&gt;
* [http://www.meetup.com/ Meetup.com] has marked up [http://www.meetup.com/cities/us/ny/new_york city event calendars], [http://photo.meetup.com/100/events/ group event lists], and [http://www.meetup.com/ signed-in homepages] with hCalendar.&lt;br /&gt;
* [http://ukwindsurfing.com/ ukwindsurfing.com] has marked upcoming events with hCalendar, and the [http://ukwindsurfing.com/events/ events page] in a table.&lt;br /&gt;
* [http://ocono.com/ ocono.com] has marked up it's &amp;quot;Upcoming Events&amp;quot; list with hCalendar.&lt;br /&gt;
* [http://www.austinbloggers.org/ Austin Bloggers] has marked up their &amp;quot;Upcoming Events&amp;quot; box with hCalendar ([http://www.austinbloggers.org/blog/a/001123.html announcement]).&lt;br /&gt;
* Ning's cloneable Group app has [[hcalendar|hCalendar]] markup on its [http://group.ning.com/index.php?controller=event&amp;amp;action=list event calendar] and [http://group.ning.com/index.php?controller=event&amp;amp;action=view&amp;amp;id=727220 event detail] pages.&lt;br /&gt;
* [http://tantek.com/microformats/2006/03-01-TechPlenAgenda.html Agenda: W3C Technical Plenary Day, March 1 2006] has [[hcard|hCard]] and [[hcalendar|hCalendar]] markup. ([http://www.w3.org/2006/03/01-TechPlenAgenda.html original here]).&lt;br /&gt;
* The National Arbor Day Foundation has started using hCalendars for their [http://arborday.org/programs/conferences/communityforestry/index.cfm upcoming] [http://arborday.org/programs/conferences/hazardtrees-treeplanting/ conferences].&lt;br /&gt;
* [http://www.multipack.co.uk The Multipack] features a vevent for the next meeting information.&lt;br /&gt;
* [http://www.stateofflux.com/ State of Flux street art site] has started adding events in hCalendar format&lt;br /&gt;
* The [http://barcamp.org/#BarCamps BarCamp home page lists upcoming BarCamps marked up with hCalendar] and even has a &amp;quot;Subscribe...&amp;quot; link.&lt;br /&gt;
* [http://www.w3.org/2005/12/allgroupoverview.html 2006 W3C Technical Plenary Week] has marked up the schedule and events for the week with hCalendar.&lt;br /&gt;
* [http://www.code4lib.org/2006/schedule code4lib Conference 2006 Schedule] is marked up with hCalendar as [http://www.code4lib.org/node/65 announced on their blog].&lt;br /&gt;
* [http://grouper.ieee.org/groups/754 IEEE 754 Working Group] - trying hCalendar for upcoming meetings.&lt;br /&gt;
* [http://www.pehuen.org/node/494  Elecciones 2005 Chile] - the first spanish language hCalendar event found in the wild.&lt;br /&gt;
* [http://www.codewitch.org/it/2005/11/17/no-creative-commons-no-party/ Giocolando » No Creative Commons? No Party!] is marked up with hCalendar&lt;br /&gt;
* [http://www.cmprofessionals.org/events/calendar.html CM Pros Events Calendar] by Bob Doyle&lt;br /&gt;
* [http://www.midgard-project.org/community/events/ Midgard CMS Event calendar] - as [http://bergie.iki.fi/blog/new-event-calendar-for-midcom.html blogged by Henri Bergius] &lt;br /&gt;
* [http://www.iowamilitaryveteransband.com/schedule/ Iowa Military Veterans Band Schedule] - hCalendar markup [http://weblog.randomchaos.com/archive/2005/10/24/Microformats/ added by Scott Reynen]&lt;br /&gt;
* [http://www.funfairgames.net/weblog/posts/00000011.html Upcoming events on Jason A.R. Moody Amusements Weblog] posted by Jason Moody on 15 Oct 2005. [http://www.funfairgames.net/weblog/index.html His weblog] in general has hCalendar events posted inside the blog posts.&lt;br /&gt;
* [http://tantek.com/microformats/2005/syndicate/tracks-sessions-schedule.html Syndicate - Tracks &amp;amp;amp; Sessions]&lt;br /&gt;
* [http://tantek.com/microformats/2005/web2/program.html Web 2.0 Conference schedule page marked up with hCalendar]&lt;br /&gt;
* [http://www.thisiscmon.com/ C'MON] is a rock band from Canada, and their [http://www.thisiscmon.com/shows/ tour dates] have been marked up by [http://www.d2digitalmedia.com/ Ray Dickman] with hCalendar.&lt;br /&gt;
* [http://ifreebusy.com/ ifreebusy.com] will display freebusy information using hCalendar. See this [http://ifreebusy.com/neiljensen/freebusy/ example].&lt;br /&gt;
* [http://we05.com/ Web Essentials 05] has marked up their [http://we05.com/program.cfm program schedule table with hCalendar], using the 'axis' and 'headers' attributes.&lt;br /&gt;
* [http://www.asdvbonaparte.nl/ ASDV Bonaparte] is a Dutch debating society. Their events calendar has been marked up with the hCalendar conventions.&lt;br /&gt;
* [http://chocnvodka.blogware.com/blog Suw Charman] has marked up [http://suw.org.uk/archives/category/events/ her events] with hCalendar.&lt;br /&gt;
* [http://www.blogbusinesssummit.com/ Blog Business Summit] has published their [http://www.blogbusinesssummit.com/details.htm event details] marked up with hCalendar.&lt;br /&gt;
* [http://eventful.com Eventful.com] publishes all events with hCalendar and venues with [[hcard|hCard]].  Took them only 15 minutes to implement both! Their Atom feeds also contain hCalendar/hCard.&lt;br /&gt;
* [http://upcoming.org Upcoming.org] publishes all events and lists of events with hCalendar.  Took them only an hour to add hCalendar support to the site.&lt;br /&gt;
* The [http://laughingsquid.com/squidlist/calendar/ Laughing Squid Calendar] events, [http://laughingsquid.com/squidlist/calendar/9949/2005/5/9 e.g. this party], now supports hCalendar.&lt;br /&gt;
* [http://paulschreiber.com/ Paul] Schreiber's [http://concerts.shrub.ca/ Sunnyvale House Concerts] site publishes hCalendar event information for upcoming concerts.  In addition the [http://concerts.shrub.ca/shows Past Shows] page contains hCalendar events for all past concerts.&lt;br /&gt;
* [http://paulschreiber.com/ Paul] Schreiber's [http://iceoasis.shrub.ca/ unofficial schedule site] publishes hCalendar information for upcoming hockey games at [http://www.iceoasis.com/ Ice Oasis]&lt;br /&gt;
* [http://www.complexspiral.com/ Complex Spiral Consulting], both in the &amp;quot;Events&amp;quot; box on left side, and the separate [http://www.complexspiral.com/events/ Events page]. &lt;br /&gt;
* [http://tantek.com/log Tantek's Thoughts], specifically the &amp;quot;Events&amp;quot; roll in the right-most column.&lt;br /&gt;
* [http://suda.co.uk/projects/holidays/ Lesser Known Holidays], a list of holidays on [http://suda.co.uk suda.co.uk] that can be imported via iCal and hCal so you can compare actual transformation versus intended.&lt;br /&gt;
* [http://norman.walsh.name/2005/itinerary/ Norm Walsh's travel schedule] use hCalendar as well as GRDDL.&lt;br /&gt;
* [http://www.policyawareweb.org/2005/ftf2/paw-mtg Policy Aware Web (PAW) Project Meeting] uses hCalendar to record date-related decisions, and uses a vtodo microformat to record action items.&lt;br /&gt;
* The [http://www.kiez-ev.de/ Kiez] is a small cinema and has published its [http://www.kiez-ev.de/programm.htm program] marked up with hCalendar.&lt;br /&gt;
* The [http://lufgi4.informatik.rwth-aachen.de Laboratory for Dependable Distributed Systems] publishes it's [http://lufgi4.informatik.rwth-aachen.de/cfps list of notable CfPs on dependability and security] with hCalendar-todo elements.&lt;br /&gt;
* The [http://laughingsquid.com/laughing-squid-10th-anniversary-party/ Laughing Squid 10th Anniversary Party] has an hcalendar page.&lt;br /&gt;
* SPRACI has hcalendar versions of its nightlife/clubbing/gigs/festivals listings for many cities worldwide - eg: [http://www.spraci.com/listhcalendar.php?parea=sydney&amp;amp;category=all Events in Sydney] (check the [http://www.spraci.com/api/ API] pages in the faq section of [http://www.spraci.com/ SPRACI] for more info about the area/city keywords and category tags to use to get data for your city/categories&lt;br /&gt;
* WWF-Australia events calendars: [http://wwf.org.au/act/events/ What's on], [http://wwf.org.au/act/volunteer/ Volunteer]&lt;br /&gt;
* [http://rubyholic.com rubyholic] uses hCalendar to publish calendars for ruby groups.&lt;br /&gt;
* [http://www.bath.ac.uk/whats-on/ University of Bath What's On] uses hCalendar on individual event pages&lt;br /&gt;
&lt;br /&gt;
=== Examples with some problems ===&lt;br /&gt;
* [http://www.bokle.de/ s'Bokle] is a German music pub. Their events calendar has been marked up with hCalendar.&lt;br /&gt;
** improper use of rrule --[[User:RyanKing|RyanKing]] 16:04, 6 Jan 2006 (PST)&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
This section is '''informative'''.&lt;br /&gt;
&lt;br /&gt;
The following implementations have been developed which either generate or parse hCalendars. If you have an hCalendar 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.&lt;br /&gt;
&lt;br /&gt;
=== Authoring ===&lt;br /&gt;
Implementations you can use to author, create, and publish hCalendar events.&lt;br /&gt;
&lt;br /&gt;
==== Blogging and CMS tools ====&lt;br /&gt;
;Midgard CMS : [http://www.midgard-project.org/documentation/net-nemein-calendar/ Midgard CMS - net.nemein.calendar] - as [http://bergie.iki.fi/blog/new-event-calendar-for-midcom.html blogged by Henri Bergius] &lt;br /&gt;
&lt;br /&gt;
;Drupal module : [http://hybernaut.com/upcoming-hcal Drupal Upcoming.org syndication module emits hCalendar]&lt;br /&gt;
;MovableType and WordPress plug-ins : [http://structuredblogging.org/formats.php StructuredBlogging] is a set of plugins  [http://structuredblogging.org/structuredblogging-wp-latest.zip for  WordPress] and [http://structuredblogging.org/structuredblogging-wp-latest.zip for MovableType] that supports embedding hCalendar and other microformats in templates and blog posts.&lt;br /&gt;
;Textpattern plug-in : [http://placenamehere.com/TXP/pnh_mf/ pnh_mf] is a plugin for [http://textpattern.com/ Textpattern] that supports embedding hCalendar and other microformats in templates and blog posts. Written by [http://placenamehere.com/ Chris Casciano].&lt;br /&gt;
&lt;br /&gt;
==== Browser scripts and plug-ins ====&lt;br /&gt;
Browser plugins that work with existing authoring tools:&lt;br /&gt;
; Any browser with javascript and a little bit of CSS : [http://microformats.org/code/hcalendar/creator microformats.org hCalendar creator]  (see also original: [http://theryanking.com/ Ryan King] has an [http://theryanking.com/microformats/hcalendar-creator.html hCalendar creator]).&lt;br /&gt;
; Firefox Greasemonkey user script hCalendar creator : [http://www.decafbad.com/blog/2005/06/08/greasemonkey_magic magic_hcalendar Greasemonkey user script by Les Orchard] - allows easy form entry of an event into any textarea, e.g. into a blog post text area.&lt;br /&gt;
; Firefox Greasemonkey user script hCalendar to Google Calendar: [http://torrez.us Elias Torres] has created a [http://torrez.us/archives/2006/04/13/431/ simple script] that will parse hCalendar entries and create a link to add event to [http://www.google.com/calendar/ Google Calendar's] service. Based on [http://virtuelvis.com/archives/2005/11/learn-to-love-microformats George's] and [http://virtuelvis.com/archives/2005/11/learn-to-love-microformats Arve's] work.&lt;br /&gt;
&lt;br /&gt;
==== Desktop Authoring Tools ====&lt;br /&gt;
;Dreamweaver Extension : [http://www.webstandards.org/action/dwtf/microformats/ Extension suite] for Dreamweaver 8 from the [http://webstandards.org/ Web Standards Project].&lt;br /&gt;
;xfy : &lt;br /&gt;
In [https://www.xfytec.com/community/ xfy Community], there are some hCalendar implementations.&lt;br /&gt;
&lt;br /&gt;
* [https://www.xfytec.com/community/modules/mydownloads/singlefile.php?cid=15&amp;amp;lid=25 hCalendar via RSS] parses an RSS feed, retrieves XHTML documents linked from that feed, and syndicates hCalendars into a calendar view.&lt;br /&gt;
* [https://www.xfytec.com/community/modules/mydownloads/singlefile.php?cid=19&amp;amp;lid=23 hCalendar Marker XVCD] helps to mark up an event information in XHTML document with hCalendar. &lt;br /&gt;
* [https://www.xfytec.com/community/modules/mydownloads/singlefile.php?cid=15&amp;amp;lid=17 Simple RDF Calendar XVCD] is a schedule tool which uses RDF Calendar format. It also converts RDF Calendar format to iCalendar and hCalendar format.&lt;br /&gt;
&lt;br /&gt;
=== Search and Discovery ===&lt;br /&gt;
&lt;br /&gt;
* [http://kitchen.technorati.com/search Technorati Microformats Search] indexes [[hcard|hCard]], [[hcalendar|hCalendar]], and [[hreview|hReview]] as [http://tantek.com/log/2006/05.html#d31t1802 announced by Tantek]. &lt;br /&gt;
&lt;br /&gt;
=== Conversion and Import ===&lt;br /&gt;
Implementations you can use to importing into a Calendar Application, typically by converting hCalendar to iCalendar/vCalendar.&lt;br /&gt;
&lt;br /&gt;
==== Web Services ====&lt;br /&gt;
These return iCalendar (.ics) and other calendar formats for easy importing into typical calendar programs or other processing.&lt;br /&gt;
* [http://feeds.technorati.com/events Technorati Events Feed service] uses X2V library to parse hCalendar and return iCalendar (.ics).  Note friendly URL, e.g. http://feeds.technorati.com/events/http%3A//microformats.org&lt;br /&gt;
* [http://suda.co.uk/projects/X2V/ X2V] parses hCalendar and produces a .ics (iCalendar) stream.  Note: needs to be updated to track changes in the specification as they occur.&lt;br /&gt;
* [http://lifelint.net/ Life Lint Parser] parses hCalendar and produces .ics, .rdf and debugging information and attempts to be more fully compliant to the iCal standard than previous implementations.  It can be used in the same manner as X2V.  Can output iCal (w optional Outlook 2002 compat), and RDF.&lt;br /&gt;
* [http://spanningsalesforce.com/ Spanning Salesforce] produces hCalendar-enabled RSS feeds and .ics calendars from Salesforce.com.&lt;br /&gt;
&lt;br /&gt;
==== Firefox Greasemonkey Plugins ====&lt;br /&gt;
* [http://george.hotelling.net/90percent/ George] has built a [http://george.hotelling.net/90percent/geekery/greasemonkey_and_microformats.php Greasemonkey user script that detects hCalendar events and allows users to easily add them to their calendar application(s)].&lt;br /&gt;
* [http://inside.glnetworks.de/ Martin Rehfeld] has updated the work of [http://blogmatrix.blogmatrix.com/ David Janes] and produced a [[Greasemonkey]] [http://inside.glnetworks.de/2006/06/05/microformats-have-arrived-in-firefox-15-greasemonkey-06/ script] that finds many microformat elements, including hCalendar events, and [http://blog.davidjanes.com/mtarchives/2005_08.html#003379 provides a popup menu of actions]. The hCalendar to vCalendar conversion is done internally within the script. ''This will work with FireFox 1.5+/GreaseMonkey 0.6.4+ now.''&lt;br /&gt;
&lt;br /&gt;
==== Aggregators ====&lt;br /&gt;
* [http://kula.jp/software/endo/screenshots/ Endo], an OS X aggregator, supports discovering hCal and adding those events to iCal. Look at the last screenshot at the bottom of the page.&lt;br /&gt;
&lt;br /&gt;
=== Browsing ===&lt;br /&gt;
Implementations that detect, display and otherwise highlight hCalendar events in pages.&lt;br /&gt;
&lt;br /&gt;
* In [http://www.xfytec.com/community/ xfy Community], there are some hCalendar implementations. &amp;quot;hCalendar via RSS&amp;quot; parses an RSS feed, retrieves XHTML documents linked from that feed, and syndicates hCalendars into a calendar view.&lt;br /&gt;
* [http://web.mit.edu/glasser/www/JSCalendar/ JSCalendar] parses hCalendar and produces a displayable HTML table/CSS-based calendar.&lt;br /&gt;
&lt;br /&gt;
==== Firefox extension ====&lt;br /&gt;
[http://blog.codeeg.com/tails-firefox-extension/ Tails is a Firefox Extension] that will display the presence of microformats ([[hcard|hCard]], [[hcalendar|hCalendar]], [[hreview|hReview]], [[xfolk|xFolk]]) on a webpage.&lt;br /&gt;
&lt;br /&gt;
==== Flock extension ====&lt;br /&gt;
[http://blog.codeeg.com/2006/03/20/flock-tails-flocktails/ Flocktails] - port of Tails extension for Flock 0.5.12 that looks for hCards, hCalendar, xFolk and hReview and tosses them into a handy topbar&lt;br /&gt;
&lt;br /&gt;
=== Libraries ===&lt;br /&gt;
Open source libraries of hCalendar parsers and other related code for building hCalendar implementations.&lt;br /&gt;
; Javascript : [http://virtuelvis.com/archives/2005/11/learn-to-love-microformats simple hCalendar parser] by [http://virtuelvis.com/ Arve Bersvendsen]&lt;br /&gt;
; PHP : [http://randomchaos.com/microformats/base/ Microformat Base] is an open-source PHP microformat aggregation crawler, currently recognizing hreview, hcalendar, and hcard.&lt;br /&gt;
; Ruby : [http://opensource.reevoo.com/2006/03/08/release-uformats-12/ uformats] is a ruby library that can parse [[hCalendar]], [[hCard]], [[hReview]] and [[rel-tag]]&lt;br /&gt;
; XSLT :&lt;br /&gt;
* X2V is available as an XSLT library&lt;br /&gt;
* [http://dev.w3.org/cvsweb/2001/palmagent/ palmagent] by [[User:DanC]] includes  toICal.xsl and test materials; it works much like xhtml2vcal.xsl in X2V. See also: [http://www.w3.org/2002/12/cal/ RDF Calendar workspace] with icalendar test materials.&lt;br /&gt;
&lt;br /&gt;
=== Potential implementations ===&lt;br /&gt;
&lt;br /&gt;
These are open source projects that could be potentially enhanced to support hCalendar.&lt;br /&gt;
&lt;br /&gt;
* [http://www.k5n.us/webcalendar.php?topic=About WebCalendar]&lt;br /&gt;
* [http://phpicalendar.net/documentation/index.php?title=Main_Page PHP iCalendar]&lt;br /&gt;
* [http://www.vcalendar.org VCalendar]&lt;br /&gt;
* Investigation: [http://wiki.mozilla.org/Calendar_Talk:Lightning#hCalendar_publish_and_subscribe_support Mozilla Calendar / Lightning / Sunbird hCalendar support discussion]&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;
* [[hcard|hCard]]&lt;br /&gt;
* [http://www.ietf.org/rfc/rfc2445.txt iCalendar RFC2445]&lt;br /&gt;
&lt;br /&gt;
=== Informative References ===&lt;br /&gt;
* [http://w3.org/TR/REC-CSS1 CSS1]&lt;br /&gt;
* [http://tantek.com/log/2004/09.html#hcalendar hCalendar term introduced and defined on the Web, 20040930]&lt;br /&gt;
* [http://wiki.oreillynet.com/foocamp04/index.cgi?HTMLForCalendars FOO Camp 2004 HTML For Calendars presentation, 20040911]&lt;br /&gt;
* [http://wiki.oreillynet.com/foocamp04/index.cgi?SimpleSemanticFormats FOO Camp 2004 Simple Semantic Formats presentation, 20040910]&lt;br /&gt;
* [http://www.ietf.org/internet-drafts/draft-royer-ical-basic-04.txt iCal-Basic draft 04]&lt;br /&gt;
* Contributed from http://developers.technorati.com/wiki/hCalendar&lt;br /&gt;
* [http://www.w3.org/TR/xhtml11 XHTML 1.1]&lt;br /&gt;
&lt;br /&gt;
==== Related ====&lt;br /&gt;
* [[icalendar-implementations|iCalendar implementations]]&lt;br /&gt;
* [[hcalendar-tests]]&lt;br /&gt;
* [http://lists.osafoundation.org/pipermail/ietf-calsify/ IETF-calsify archives]&lt;br /&gt;
* [http://www.livejournal.com/users/jwz/444651.html jwz - Hula] (required reading)&lt;br /&gt;
* [http://www.jwz.org/doc/groupware.html Groupware Bad by Jamie Zawinski] crystalizes the reason for hCalendar ('''emphasis''' added):&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;quot;Right now people can do that by publishing .ics files, but  it's not trivial to do so, and it's work on the part of other people  to look at them. '''If it's not HTML hanging off our friend's home page  that can be viewed in any browser on a public terminal in a library,  the bar to entry is too high and it's useless.'''&amp;quot;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://muddybranch.thejkgroup.com/ Jason Klemow's blog]&lt;br /&gt;
* [http://www.softwarestudio.org/iCal/2445Issues.html RFC2445 Issues List]&lt;br /&gt;
* [http://ietf.webdav.org/calsify/ CALSIFY WG Links And Resources]&lt;br /&gt;
&lt;br /&gt;
=== Similar Work ===&lt;br /&gt;
* [[XOXO]]&lt;br /&gt;
&lt;br /&gt;
== Discussions ==&lt;br /&gt;
&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 hCalendar:&lt;br /&gt;
&lt;br /&gt;
* [[hcalendar-brainstorming]]&lt;br /&gt;
&lt;br /&gt;
* See also [http://www.technorati.com/cosmos/referer.html blogs discussing this page].&lt;br /&gt;
** [http://weblog.infoworld.com/udell/2006/01/11.html#a1368 Moving forward with microformats] by [http://weblog.infoworld.com/udell Jon Udell] provides an hCalendar example and some discussion.&lt;br /&gt;
&lt;br /&gt;
=== Q&amp;amp;A ===&lt;br /&gt;
* If you have any questions about hCalendar, check the [[hcalendar-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 [[hcalendar-issues]] document.&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=hcard&amp;diff=6774</id>
		<title>hcard</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=hcard&amp;diff=6774"/>
		<updated>2006-06-20T14:47:31Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: /* Examples in the wild */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt;hCard&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
hCard is a simple, open, distributed contact information format for people, companies, and organizations, which is suitable for embedding in (X)HTML, Atom, RSS, and arbitrary XML. hCard is a 1:1 representation of the vCard standard ([http://www.ietf.org/rfc/rfc2426.txt RFC2426]) in XHTML, one of several open [[microformats|microformat]] standards.&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;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
&lt;br /&gt;
=== Editor ===&lt;br /&gt;
[http://tantek.com/ Tantek Çelik], [http://technorati.com Technorati, Inc.]&lt;br /&gt;
&lt;br /&gt;
=== Authors ===&lt;br /&gt;
* [http://tantek.com/ Tantek Çelik], [http://technorati.com Technorati, Inc]&lt;br /&gt;
* [http://suda.co.uk/ Brian Suda]&lt;br /&gt;
&lt;br /&gt;
=== Copyright ===&lt;br /&gt;
{{MicroFormatCopyrightStatement2004}}&lt;br /&gt;
&lt;br /&gt;
=== Patents ===&lt;br /&gt;
{{MicroFormatPatentStatement}}&lt;br /&gt;
&lt;br /&gt;
=== Inspiration and Acknowledgments ===&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;
== Introduction ==&lt;br /&gt;
The vCard standard ([http://www.ietf.org/rfc/rfc2426.txt 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 is a 1:1 representation of the aforementioned vCard standard, in semantic XHTML.  Bloggers can both embed vCards directly in their web pages, and style them with CSS to make them appear as desired.  In addition, hCard enables applications to retrieve information about such vCards 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], copy the HTML code it generates to your blog or website to publish your contact info.&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 vCard standard ([http://www.ietf.org/rfc/rfc2426.txt 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 XHTML elements.&lt;br /&gt;
&lt;br /&gt;
=== More Semantic Equivalents ===&lt;br /&gt;
However, for some properties there is a more semantic equivalent, and therefore they get special treatment, e.g.:&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 vs. Plural Properties ===&lt;br /&gt;
&lt;br /&gt;
For properties which are singular (e.g. &amp;quot;N&amp;quot; and &amp;quot;FN&amp;quot;), the first descendant element with that class should take effect, any others being ignored.&lt;br /&gt;
&lt;br /&gt;
For properties which can be plural (e.g. &amp;quot;TEL&amp;quot;), each class instance should create a instance of that property. Plural properties with subtypes (e.g. TEL with WORK, HOME, CELL) can be optimized to share a common element for the property itself, with each instance of subtype being an appropriately classed descendant of the property element.&lt;br /&gt;
&lt;br /&gt;
==== Plural Properties Singularized ====&lt;br /&gt;
&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;
=== Human vs. Machine readable ===&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 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 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 &amp;quot;PHOTO&amp;quot; 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 &amp;quot;PHOTO&amp;quot; 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 &amp;quot;PHOTO&amp;quot; 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;
&lt;br /&gt;
Sometimes only part of an element which is the equivalent for a property should be 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 introduced 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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&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;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This hCard fragment could be displayed as:&lt;br /&gt;
&lt;br /&gt;
 home: +1.415.555.1212&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Property Exceptions ===&lt;br /&gt;
&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;
# '''NAME''', '''PROFILE''', '''SOURCE''', '''PRODID''', '''VERSION''' properties as defined in Sections 2.1.2, 2.1.3, 2.1.4, 3.6.3, 3.6.9 of RFC 2426.  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 (X)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, 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 RFC2426 Section 3.6.9.&lt;br /&gt;
&lt;br /&gt;
=== Organization Contact Info ===&lt;br /&gt;
 &lt;br /&gt;
If the &amp;quot;FN&amp;quot; and &amp;quot;ORG&amp;quot; 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 or organization and should be treated as such.  In this case the author MUST also 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;
&lt;br /&gt;
Although vCard requires that the &amp;quot;N&amp;quot; property be present, the authors of the vCard specification (RFC 2426) 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 OR if the second word is a single character (optionally followed by a period &amp;quot;.&amp;quot;), then the first word (minus the comma at the end if any) 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;
* family-name (comma) given-name-first-initial&lt;br /&gt;
* family-name (space) given-name-first-initial (optional period)&lt;br /&gt;
&lt;br /&gt;
=== Implied &amp;quot;nickname&amp;quot; Optimization ===&lt;br /&gt;
&lt;br /&gt;
Due to the prevalence of the use of nicknames/handles/usernames on the Web 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; is 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;
Note: 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;
&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;
&lt;br /&gt;
Categories in hCard can optionally 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;
=== Root Class Name ===&lt;br /&gt;
&lt;br /&gt;
The root class name for an hCard is &amp;quot;vcard&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Property List ===&lt;br /&gt;
&lt;br /&gt;
This is the list of properties (and subproperties, in parentheses, like this) in hCard, taken from vCard:&lt;br /&gt;
&lt;br /&gt;
* fn, n (family-name, given-name, additional-name, honorific-prefix, honorific-suffix), nickname, sort-string&lt;br /&gt;
* url, email (type, value), tel (type, value)&lt;br /&gt;
* adr (post-office-box, extended-address, street-address, locality, region, postal-code, country-name, type, value), label&lt;br /&gt;
* geo (latitude, longitude), tz&lt;br /&gt;
* photo, logo, sound, bday&lt;br /&gt;
* title, role, org (organization-name, organization-unit)&lt;br /&gt;
* category, note&lt;br /&gt;
* class, key, mailer, uid, rev&lt;br /&gt;
==== type subproperty values ====&lt;br /&gt;
&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;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&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;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following lists are ''informative''. See 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, car, isdn, pcs&lt;br /&gt;
* email type: INTERNET, x400, pref, &amp;quot;other IANA registered address types&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== XMDP Profile ===&lt;br /&gt;
&lt;br /&gt;
See [[hcard-profile]] for the [http://gmpg.org/xmdp XMDP] profile of hCard which contains the above complete list of properties, with references to their RFC 2426 definitions.&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;
ORG:Technorati&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;pre&amp;gt;&amp;lt;nowiki&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 class=&amp;quot;org&amp;quot;&amp;gt;Technorati&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This hCard might be displayed as:&lt;br /&gt;
&lt;br /&gt;
[http://tantek.com/ Tantek Çelik]&amp;lt;br /&amp;gt;&lt;br /&gt;
Technorati&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;
=== More Examples ===&lt;br /&gt;
&lt;br /&gt;
See [[hcard-examples]] for more examples, including all examples from vCard RFC 2426 converted into hCard.&lt;br /&gt;
&lt;br /&gt;
== Examples in the wild ==&lt;br /&gt;
This section is '''informative'''.&lt;br /&gt;
&lt;br /&gt;
The following sites have published hCards, and thus are a great place to start for anyone looking for examples &amp;quot;in the wild&amp;quot; to try parsing, indexing, organizing etc.  If you have an hCard on your own page, feel free to add it to the top of this list.  Once the list grows too big, we'll make a separate wiki page.&lt;br /&gt;
&lt;br /&gt;
=== New Examples ===&lt;br /&gt;
Please add new examples to this section.&lt;br /&gt;
* [http://main.uab.edu/ University of Alabama at Birmingham] has its contact footer encoded as hCard&lt;br /&gt;
* [http://www.capital.edu Capital University] has contact footer and bloggers' names encoded as hCard. Also, all page-specific contact information is encoded as hCards (see [http://www.capital.edu/Internet/Default.aspx?pid=67 Admissions] page for an example)&lt;br /&gt;
* [http://main.uab.edu/shrp/ UAB School of Health Professions] uses hCard in its contact footer&lt;br /&gt;
* [http://green.carisenda.com/ Stephen Stewart] has his hCard on the front page of his weblog ('You are here' section)&lt;br /&gt;
* [http://www.fberriman.com/ Frances Berriman] has a hidden vCard in the footers of her website.&lt;br /&gt;
* [http://www.direction.es/ Direction] uses hCard for contact information.&lt;br /&gt;
* [http://www.vivabit.com/atmedia2006/speakers/ @media speakers] are marked up with hCard (photos depend on BASE tag support which makes this a good test case)&lt;br /&gt;
* [http://www.dougransom.com Doug Ransom] uses hCard for his financial advisory practice. &lt;br /&gt;
* [http://rubyandrails.org/usergroups/newcastle/members.html ncl.rb] uses hCard for contact information.&lt;br /&gt;
* [http://www.snowinteractive.com/ Snow Interactive] uses hCard for contact information.&lt;br /&gt;
* [http://flickr.com Flickr] now supports [[hcard|hCard]] and [http://gmpg.org/xfn XFN] on profile pages.  See [http://flickr.com/photos/factoryjoe/113866484/ screenshot of Flickr UI in Flock browser using Flocktails extension - March 17th 2006].&lt;br /&gt;
* [http://www.ndiyo.org/contact Contact information for the Ndiyo project]&lt;br /&gt;
* [http://www.pixelenvy.co.uk/ Pixel Envy] uses hCard for contact information on every page&lt;br /&gt;
* [http://stilbuero.de/contact/ Klaus Hartl] uses hCard in the sidebar for contact information (maybe easier to parse through delivering xhtml as xml).&lt;br /&gt;
* [http://charlvn.virafrikaans.com/contact Charl van Niekerk's hCard]&lt;br /&gt;
* [http://billy-girlardo.com/WP/ BillyBLOGirlardo] uses hCard for contact information.&lt;br /&gt;
* [http://www.hicksdesign.co.uk/ Hicksdesign] uses hCard for contact information.&lt;br /&gt;
* http://www.gr0w.com/articles/press/growsearch_launched_press_release/ - hCard in a press release for the press contact info&lt;br /&gt;
* http://www.redmonk.com/cote/archives/2006/03/testing_out_mic.html - hCard with explanation&lt;br /&gt;
* [http://andy.ciordia.info/ it's my island], personal blog, hcard on the ''[http://andy.ciordia.info/pages/about_me About the Writer]'' page. [[User:Ciordia9|Andy Ciordia]]&lt;br /&gt;
* [http://www.windowonwoking.org.uk/ Window on Woking], a local community site in the UK, uses hCard in the homepage of each member organisation and local Councillor.&lt;br /&gt;
* [http://ChunkySoup.net/ ChunkySoup.net] has redesigned using hAtom 0.1 and hCards on the entire site -- by [[User:ChrisCasciano|Chris Casciano]]&lt;br /&gt;
* [http://www.30boxes.com/ 30 Boxes],a social calendar application and digital lifestyle aggregator, automatically creates an hcard for you with your account.  It is found under Settings &amp;gt; Syndication.&lt;br /&gt;
* [http://www.nearwhere.com/ Nearwhere.com] allow you to put an hcard on an interactive map.&lt;br /&gt;
* [http://www.brentozar.com/ Brent Ozar] added a [http://www.brentozar.com/contact.php contact] page hCard.&lt;br /&gt;
* [http://www.kerihenare.com/ Keri Henare] has rewritten his [http://www.kerihenare.com/contact/ contact] page hCard.  Now using &amp;lt;code&amp;gt;&amp;lt;object&amp;gt;&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;&amp;lt;img&amp;gt;&amp;lt;/code&amp;gt; for photo. (Thanks Brian Suda for updating the vCard converter)&lt;br /&gt;
* [http://michaelraichelson.com/contact/ Michael Raichelson] had an hCard on his contact page before SXSW, but never thought to add it here until Tantek requested it.&lt;br /&gt;
* [http://www.commoner.com/~lsimon/lindsey_simon_hcard.html Lindsey Simon] has added an hCard to his website as per Tantek's SXSW request for folks to try it &lt;br /&gt;
* [http://www.davidgagne.net/ David Gagne] has an hCard in his sidebar.&lt;br /&gt;
* [http://www.churchzip.com/map/ Churchzip.com/map] and [http://www.skiwhere.com/map/ Skiwhere.com/map], provide churches, hotels, and ski resorts on the same maps.  Locations are formatted as hcards.&lt;br /&gt;
* All [http://www.iqdir.com/ IQ Directory Solutions] Yellow Pages web portals use [[hcard|hCard]] markup on listings. For example [http://www.yellowpages-cambodia.com/ Cambodia Yellow Pages] and [http://www.superpages.com.my/ Malaysia Super Pages]&lt;br /&gt;
* Ning's cloneable Group app uses fuzzy matching to map custom fields to [[hcard|hCard]] markup on its [http://group.ning.com/index.php?controller=person&amp;amp;action=view&amp;amp;content=JonathanAquino profile] pages.&lt;br /&gt;
* [http://claimid.com/factoryjoe Chris Messina' ClaimID hCard]&lt;br /&gt;
* [http://factoryjoe.com/blog/hcard Chris Messina' hCard]&lt;br /&gt;
* [http://flock.com/about Flock About]&lt;br /&gt;
* [http://tantek.com/microformats/2006/03-01-TechPlenAgenda.html Agenda: W3C Technical Plenary Day, March 1 2006] has [[hcard|hCard]] and [[hcalendar|hCalendar]] markup. ([http://www.w3.org/2006/03/01-TechPlenAgenda.html original here]).&lt;br /&gt;
* [http://www.gr0w.com/articles/press/growsearch_launched_press_release/ GrowSearch Launched (Press Release)] uses an hCard to provide Press Contact Point.&lt;br /&gt;
* The [http://www.arborday.org/ National Arbor Day Foundation] has started using hCards for their [http://arborday.org/programs/conferences/communityforestry/index.cfm upcoming] [http://arborday.org/programs/conferences/hazardtrees-treeplanting/ conferences].&lt;br /&gt;
* [http://www.multipack.co.uk The Multipack] has numerous hCards, especially on the [http://www.multipack.co.uk/members/ members page], as well as the next meeting information.&lt;br /&gt;
* [http://deadringrancor.livejournal.com/ Justin McDowell] used an hCard when [http://deadringrancor.livejournal.com/221332.html referring to a person in his blog post]&lt;br /&gt;
* [http://davecardwell.co.uk/cv/ Dave Cardwell] has included his hCard in his Curriculum Vitae.&lt;br /&gt;
* [http://blog.usweb.com/ Shaun Shull] has written a great post on [http://blog.usweb.com/archives/how-microformats-affect-search-engine-optimization-seo How Microformats Affect SEO], and has included his [[hcard|hCard]] as one of the examples.&lt;br /&gt;
* [http://www.thefutureoftheweb.com/ Jesse Skinner] has written a simple [http://www.thefutureoftheweb.com/blog/2006/1/hcard tutorial with examples]&lt;br /&gt;
* [http://www.w3.org/2005/12/allgroupoverview.html 2006 W3C Technical Plenary Week] has marked up the venue, contacts, and program committee members all with hCard.&lt;br /&gt;
* [http://www.avf-nexus.co.uk AVF-Nexus] have a hCard on their [http://www.avf-nexus.co.uk/contact/ contact page] - (by [http://creation.uk.com Creation&amp;quot;])&lt;br /&gt;
* [http://www.thefantasticos.com/andrew/ Andrew White] posted [http://www.thefantasticos.com/andrew/index.php/my-hcard/ his hCard] and [http://www.thefantasticos.com/andrew/index.php/62/microformats-the-should-have-been-obvious-web-dev-tool/ blogged about it].&lt;br /&gt;
* [http://www.2sheds.ru Oleg &amp;quot;2sheds&amp;quot; Kourapov] in his [http://www.2sheds.ru/blog/ blog] ([http://suda.co.uk/projects/X2V/get-vcard.php?uri=http://www.2sheds.ru/blog X2V]) has turned personal profile into hCard ([http://suda.co.uk/projects/X2V/get-vcard.php?uri=http://www.2sheds.ru/blog/hcard.html X2V]) and his blogroll - into combination XFN/hCards ([http://suda.co.uk/projects/X2V/get-vcard.php?uri=http://www.2sheds.ru/blog/friends.html X2V])&lt;br /&gt;
* [http://www.approveddesign.co.uk Approved Design Consultancy] have a hCard on their [http://www.approveddesign.co.uk/about/contact/ contact page] as well as on their [http://www.approveddesign.co.uk/about/people/ people section] - (by [http://creation.uk.com Creation&amp;quot;])&lt;br /&gt;
* [http://weblog.200ok.com.au/ Ben Buchanan] and [http://www.griffith.edu.au/cgi-bin/phone_search.pl?string=colin+morris&amp;amp;format=search Colin Morris] have [http://weblog.200ok.com.au/2006/01/griffith-phonebook-adds-hcard-and.html implemented hCards and vCards] for the [http://www.griffith.edu.au Griffith University] [http://www.griffith.edu.au/find/content_phonebook.html online phone book]. Eg. [http://www.griffith.edu.au/cgi-bin/phone_search.pl?string=ben+buchanan&amp;amp;format=search Ben's vCard] and [http://www.griffith.edu.au/cgi-bin/phone_search.pl?string=colin+morris&amp;amp;format=search Colin's vCard]&lt;br /&gt;
* WWF-Australia [http://wwf.org.au/about/contactdetails/ contact details page]&lt;br /&gt;
* [http://rasterweb.net/raster/ Pete Prodoehl] used the hCard format on his [http://rasterweb.net/raster/contact.html Contact page]&lt;br /&gt;
* [http://alexander-mette.de amette] uses the hCard format in a module of his TikiWiki powered blog&lt;br /&gt;
* [http://staff.washington.edu/oren/weblog2/ Oren Sreebny] has an hcard on his blog main index template &lt;br /&gt;
* [http://www.cs.brandeis.edu/~zippy/ Patrick Tufts] has an hCard on his homepage.&lt;br /&gt;
* [http://ascii20.blogspot.com/ Mathias Kolehmainen and Jamie Taylor] have hCards on their weblog.&lt;br /&gt;
* [http://www.hoppsan.org/jamesb/blogger/ Barnaby James] has a hCard on his weblog.&lt;br /&gt;
* [http://esa-education.com/schools/map ESA Education] Uses hCards for their 100+ schools and each of the individual school sites.&lt;br /&gt;
* [http://www.thereisnocat.com/#vcard Ralph Brandi] has added an hCard to the sidebar of his weblog as a result of Tantek Çelik's portion of the Microformats presentation at SXSW 2006.&lt;br /&gt;
* [http://www.pierce.ctc.edu/ephone/ Pierce College] -- community college directory uses hCard on all individual directory entries.&lt;br /&gt;
* [http://www.ukoln.ac.uk/web-focus/events/workshops/webmaster-2006/ the Institutional Web Management Workshop 2006] have marked up all their [http://www.ukoln.ac.uk/web-focus/events/workshops/webmaster-2006/committee/ speakers with hCard].&lt;br /&gt;
* http://wikitravel.org/en/Singapore/Sentosa. Wikitravel is experimenting with hcard on its travel guides. This guide uses hcard for all its business listings. More info on http://wikitravel.org/en/Wikitravel_talk:Listings.&lt;br /&gt;
* [http://www.musik-erber.de/ Musik-Erber] uses to present contact information at the sidebar&lt;br /&gt;
* [http://cdevroe.com/about/#contact Colin D. Devroe] uses hCard to display his contact information on his about page&lt;br /&gt;
* The ECS (Scool of Electronics and Computer Science  at the University of Southampton) [http://www.ecs.soton.ac.uk/people People Pages] use vCard. Contact cjg@ecs.soton.ac.uk if there's any bugs.&lt;br /&gt;
* [http://www.southwestern.edu/~ramseyp Pat Ramsey] has his contact information on his blog marked up with hCard. Contact [mailto:ramsey.pat@gmail.com ramsey.pat@gmail.com] if there are any bugs there.&lt;br /&gt;
* [http://www.meryl.net/ Meryl K. Evans] has a hidden hCard on her homepage.&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
* [http://thoughtport.blogspot.com/ Aiden Kenny] hasn't published his hCard yet, but he has [http://thoughtport.blogspot.com/2005/07/elemental-particles-of-web.html published his hCard icon]: http://photos1.blogger.com/blogger/4224/444/320/AK-Hcard-icon.gif&lt;br /&gt;
* [http://thedredge.org Andy Hume] uses hCards to mark-up the names and URLs of commentors on his blog, e.g. his [http://thedredge.org/2005/06/using-hcards-in-your-blog/ blog post on &amp;quot;Using hCards in your blog&amp;quot;]. &lt;br /&gt;
* [http://www.bidclix.com/ BidClix]'s [http://www.bidclix.com/AboutContact.html Contact BidClix] page has it's ''contact info'' marked up with an hCard.&lt;br /&gt;
* [http://suda.co.uk/ Brian Suda] has managed to embed a photo in [http://suda.co.uk/contact/ his hCard] through the [http://www.ietf.org/rfc/rfc2397.txt data uri scheme] by converting the image to BASE64 code. View the Source to see how this is accomplished. [http://suda.co.uk/projects/X2V/get-vcard.php?uri=http%3A//suda.co.uk/contact/ The X2V link] will extract the image and encode it for a vCard which will be displayed in some address book applications.&lt;br /&gt;
* [http://cinematreasures.org Cinema Treasures] uses hCard to markup venue information for 10,000+ movie theaters.&lt;br /&gt;
* [http://www.w3.org/People/Connolly/events/ Dan Connolly's index of events and talks] has hCards for many of the people he has met at those events. In Mar 2006, he moved a bunch of hotel contact info from his PDA to this page; it's now up to 32 hCards.&lt;br /&gt;
* [http://doncrowley.blogspot.com/ Don Crowley] has published [http://www.crowley.nl/hcard.html his hCard] as well as a nifty hCard button: http://www.crowley.nl/images/hcard.png&lt;br /&gt;
* [http://loadaveragezero.com/hnav/contact.php Douglas W. Clifton] added all types of contact information&lt;br /&gt;
* [http://eventful.com Eventful] publishes all of its venue information pages with embedded hCards.&lt;br /&gt;
* [http://www.iowamilitaryveteransband.com/members/ Iowa Military Veterans Band Contacts] - 95 hCards [http://weblog.randomchaos.com/archive/2005/10/24/Microformats/ marked up by Scott Reynen]&lt;br /&gt;
* [http://JackWolfgang.blogspot.com Jack L. Wolfgang II] has [http://jack.randomata.com/resume/ converted the addresses in his resume to hCards].&lt;br /&gt;
* [http://www.efas.fupl.asso.fr/efas/_Mathieu-Drouet_.html Mathieu Drouet] and [http://www.efas.fupl.asso.fr/efas/_Annie-Leger_.html Annie Leger] both have hCards&lt;br /&gt;
* [http://www.ndunn.com Neil Dunn] has published his rather [http://www.ndunn.com/2005/10/7/hCard good looking hCard]&lt;br /&gt;
* [http://www.oliverbrown.me.uk/ Oliver Brown] has published his hCard.&lt;br /&gt;
* [http://www.paradigmproductions.org/contact/ Paradigm Productions] published a vcard as a ul (marked up by [http://www.linkingarts.com/ Peter Jacobson])&lt;br /&gt;
* [http://www.splintered.co.uk/ Patrick H. Lauke] has marked up [http://www.splintered.co.uk/about/ his contact info with hCard].&lt;br /&gt;
* [http://blah Paul Schreiber has published his hCard on [http://paulschreiber.com/about/?contact his about page].&lt;br /&gt;
* [http://paulschreiber.com/blog/ Paul Schreiber]'s [http://concerts.shrub.ca/ Sunnyvale House Concerts] site publishes hCards for upcoming artists, as well as an hCard for the page itself.  In addition the [http://concerts.shrub.ca/shows Past Shows] page contains hCards for all past artists.&lt;br /&gt;
* [http://www.paulmichaelsmith.com/blog/hcard.htm Paul Smith] has created an hCard page which is Human Readable, and a link to X2V passing the same hCard page to generate a vCard.&lt;br /&gt;
* [http://www.windley.com/archives/2005/07/hcards_trying_o.shtml Phil Windley has published] [http://phil.windley.org/hcard.html his hCard].&lt;br /&gt;
* [http://www.go-curiosity.com/about.htm Piercarlo Slavazza] has published an hCard.&lt;br /&gt;
* [http://zooibaai.nl/ Rob Mientjes] has published his hCard on [http://zooibaai.nl/about/ his about page].&lt;br /&gt;
* [http://rbach.priv.at/Contact Robert Bachmann] has published his hCard and [http://rbach.priv.at/Images/hcard a button].&lt;br /&gt;
* [http://blah Scott Reynen has published his hCard on [http://www.randomchaos.com/document.php?source=scott_reynen his profile page].&lt;br /&gt;
* [http://www.stackframe.com/ StackFrame, LLC] has published [http://www.stackframe.com/people/ employee] and [http://www.stackframe.com/contact/ general] contact information as hCards.&lt;br /&gt;
* [http://www.wolfsreign.com Steven Ametjan] has published his hCard on [http://www.wolfsreign.com/about/ his about page].&lt;br /&gt;
* [http://tantek.com/microformats/2005/syndicate/speakers-list.html Syndicate - Speaker List] as a set of hCards&lt;br /&gt;
* [http://tagcamp.org/index.cgi?ContactList TagCamp contact list]&lt;br /&gt;
* [http://tantek.com/log Tantek's Thoughts] includes an inline author hCard at the bottom of the page.&lt;br /&gt;
* [http://technorati.com/ Technorati]'s [http://www.technorati.com/about/ About page] lists their '''Media Contact'''&lt;br /&gt;
* [http://www.deadringerart.com/ The Brothers McDowell] have hCards at their Contact page.&lt;br /&gt;
* [http://twinsparc.com/ Twinsparc] put an hCard in the header and footer of all their pages.&lt;br /&gt;
* [http://tantek.com/microformats/2005/web2/speakers.html Web 2.0 Conference speakers page marked up with hCard]&lt;br /&gt;
* [http://we05.com/ Web Essentials 05] marked up all their [http://we05.com/presenters.cfm presenters with hCard].&lt;br /&gt;
&lt;br /&gt;
=== Examples with some problems ===&lt;br /&gt;
&lt;br /&gt;
* [http://gbraad.nl/ Gerard Braad] has published an example on his [http://gbraad.nl/site/?p=profile profile] page that is almost consistent with his original [http://gbraad.nl/files/gbraad.vcf vCard] file. Also progress is made for transforming his [http://files.gbraad.nl/foaf.rdf FoaF] file to a hCard encoded representation. (also done for my spouse:[http://spouse.gbraad.nl/site/?p=profile Yong Yuan])&lt;br /&gt;
** (2005-09-27) PASSED, PASSED&lt;br /&gt;
** WARNINGS&lt;br /&gt;
*** uses 'n given-name' and 'n family-name' instead of nesting the given- and family- names inside the 'n'&lt;br /&gt;
*** has one 'tel' value with a bunch of values stuffed in&lt;br /&gt;
*** probably more problems --[[User:RyanKing|RyanKing]] 17:19, 5 Jan 2006 (PST)&lt;br /&gt;
* [http://kinrowan.net/ Cori Schlegel] [http://kinrowan.net/blog/wp/archives/2005/07/08/a-problem-with-the-structured-blogging-plug-in-for-wordpress/ discusses how he has updated] [http://kinrowan.net/blog/contact his contact page with hCard]&lt;br /&gt;
** INVALID - using 'prefix' instead of 'honorific-prefix' and type's in classnames (in both adr and tel) and has two photo's (the second could be 'logo') --[[User:RyanKing|RyanKing]] 15:15, 5 Jan 2006 (PST)&lt;br /&gt;
* The good ship [http://styrheim.com/test/leonid.html Leonid Miloslavskiy] spotted in the North Atlantic&lt;br /&gt;
** INVALID  --[[User:RyanKing|RyanKing]] 00:50, 27 Oct 2005 (PDT)&lt;br /&gt;
*** class=&amp;quot;family&amp;quot; should probably be family-name&lt;br /&gt;
*** the &amp;quot;n&amp;quot; property is missing and the &amp;quot;n&amp;quot; optimization can't be applied&lt;br /&gt;
*** the first geo propery is empty, the second one is invalid (ie, it doesn't contain lat/long)&lt;br /&gt;
* [http://landsbank.fo/#hCard Landsbanki Føroya]&lt;br /&gt;
** INVALID - using embedded rdf/xml invalidly&lt;br /&gt;
* [http://chrischerry.name/blog/contact/ Chris Cherry's contact page with his hCard]&lt;br /&gt;
** WARNING - uses class=&amp;quot;cell&amp;quot; instead of &amp;amp;lt;span class=&amp;quot;type&amp;quot;&amp;amp;gt;cell&amp;amp;lt;/span&amp;amp;gt;&lt;br /&gt;
* [http://www.bath.ac.uk/contact/ University of Bath] Person Finder results are encoded with hCards so you can easily create a vCard from any result. &lt;br /&gt;
** ERROR - attempt to use Implied-N optimization where that's not possible. --[[User:RyanKing|RyanKing]] 14:29, 5 Jan 2006 (PST)&lt;br /&gt;
** Error appears for external users only. Won't be fixed any time soon. -- [[User:PhilWilson|PhilWilson]] 00:03, 28 Jan 2006 (GMT)&lt;br /&gt;
* [http://richi.co.uk/blog/2005/12/structured-blogging.html Richi Jennings] has put up his attempt&lt;br /&gt;
** INVALID, missing FN --[[User:RyanKing|RyanKing]] 12:47, 5 Jan 2006 (PST)&lt;br /&gt;
* [http://www.shiftingpixel.com/about/ shifting pixel photoblog] has published an hCard.&lt;br /&gt;
** &amp;quot;organization_name&amp;quot; should be &amp;quot;organization-name&amp;quot; (s/_/-/), otherwise good --[[User:RyanKing|RyanKing]] 14:01, 5 Jan 2006 (PST)&lt;br /&gt;
* [http://www.yellowpencil.com/contact/ Yellow Pencil] Using microformats to present company contact information&lt;br /&gt;
** First hcard has empty &amp;quot;fn&amp;quot; and no &amp;quot;n&amp;quot;. &amp;quot;fn&amp;quot; should be with &amp;quot;org&amp;quot; -- [[User: ScottReynen |ScottReynen]] 21:29, 19 Jun 2006 (CST)&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
This section is '''informative'''.&lt;br /&gt;
&lt;br /&gt;
The following implementations have been developed which either generate or parse hCards. If you have an hCard 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.&lt;br /&gt;
* [http://kitchen.technorati.com/search Technorati Microformats Search] indexes [[hcard|hCard]], [[hcalendar|hCalendar]], and [[hreview|hReview]] as [http://tantek.com/log/2006/05.html#d31t1802 announced by Tantek].&lt;br /&gt;
** list of pages with indexing Issues so they can be looked into as to why data is not being extracted&lt;br /&gt;
** suda.co.uk/contact&lt;br /&gt;
** multipack.co.uk&lt;br /&gt;
&lt;br /&gt;
* [http://www.webstandards.org/action/dwtf/microformats/ Dreamweaver Extension suite] from the [http://webstandards.org/ Web Standards Project] enables the authoring of hCards from within Dreamweaver 8.&lt;br /&gt;
* [http://scooch.gr0w.com/ Scooch] is a slide show and presentation creator that generates a [[hCard]] for individual slide show authors and comment authors with a CSS button to parse and download via [http://suda.co.uk/projects/X2V/ X2V]. Also uses [[hReview]] for slide ratings and [[rel-tag]] for categories.&lt;br /&gt;
* [http://blog.codeeg.com/2006/03/20/flock-tails-flocktails/ Flocktails] - port of Tails extension for Flock 0.5.12 that looks for hCards, hCalendar, xFolk and hReview and tosses them into a handy topbar&lt;br /&gt;
*[http://opensource.reevoo.com/2006/03/08/release-uformats-12/ uformats] is a ruby library that can parse [[hCalendar]], [[hCard]], [[hReview]] and [[rel-tag]]&lt;br /&gt;
* [http://blog.codeeg.com/tails-firefox-extension/ Tails is a Firefox Extension] that will display the presence and details of microformats ([[hcard|hCard]], [[hcalendar|hCalendar]], [[hreview|hReview]], [[xfolk|xFolk]]) on a webpage.&lt;br /&gt;
* [http://www.stripytshirt.co.uk/features/firefox/smartzilla Smartzilla is a Firefox Extension] that finds hCards on web pages and lets you add them to your addressbook.&lt;br /&gt;
* [http://placenamehere.com/TXP/pnh_mf/ pnh_mf] is a plugin for [http://textpattern.com/ Textpattern] that supports embedding hCard and other microformats in templates and blog posts. Written by [http://placenamehere.com/ Chris Casciano].&lt;br /&gt;
* There is [http://flickr.com/photos/factoryjoe/68755089/ evidence of built-in hCard support in the Konqueror browser].  Specifically, Konqueror 3.5, in KDE 3.5 (kubuntu Breezy w/ update).&lt;br /&gt;
* There is [http://tagcamp.org/index.cgi?ContactList evidence of a kwiki plugin for hCards].  Update: the [http://svn.kwiki.org/cwest/Kwiki-hCard/ hCard kwiki plugin svn repository].  See the [http://microwiki.caseywest.com/index.cgi?hCard documentation of the hCard kwiki plugin].&lt;br /&gt;
* [http://suda.co.uk/projects/X2V/ X2V] is a bookmarklet that parses hCard and produces a .vcf (vCard) stream.  Note: needs to be updated as the spec is refined&lt;br /&gt;
* [http://www.stripytshirt.co.uk Duncan Walker] has built [http://www.stripytshirt.co.uk/features/firefox/smartzilla a Firefox extension] that gets hCard data from a webpage, uses Brian Suda's XSL (locally) to transform it to vcard format and opens the resulting .vcf file.&lt;br /&gt;
* [http://george.hotelling.net/90percent/ George] has written a [http://george.hotelling.net/90percent/geekery/greasemonkey_and_microformats.php Greasemonkey user script] that detects hCards and allows users to easily add them to their address book application.  Relies on the X2V web service to do the conversion.&lt;br /&gt;
* [http://inside.glnetworks.de/ Martin Rehfeld] has updated the work of [http://blogmatrix.blogmatrix.com/ David Janes] and produced a [[Greasemonkey]] [http://inside.glnetworks.de/2006/06/05/microformats-have-arrived-in-firefox-15-greasemonkey-06/ script] that finds many microformat elements, including hCards, and [http://blog.davidjanes.com/mtarchives/2005_08.html#003379 provides a popup menu of actions]. The hCard to vCard conversion is done internally within the script. ''This will work with FireFox 1.5+/GreaseMonkey 0.6.4+ now.''&lt;br /&gt;
* [http://diveintomark.org/ Mark Pilgrim] has also written an [http://diveintomark.org/projects/greasemonkey/hcard/ hCard parser Greasemonkey user script].  It is self-contained and does not rely on the X2V web service.&lt;br /&gt;
* [http://www.oliverbrown.me.uk/2005/09/03/a-working-microformats-extension-to-simplexml/ Oliver Brown] has written an &amp;quot;extension&amp;quot; to [http://www.php.net/simplexml SimpleXML] that gives simple access to hCard information in PHP 5.&lt;br /&gt;
* [http://thedredge.org/ Andrew D. Hume] has built a system (Wordpress plugin?) for [http://thedredge.org/2005/06/using-hcards-in-your-blog/ using hcards in your blog] to represent people leaving comments on blog posts.&lt;br /&gt;
* The [http://tantek.com/microformats/hcard-creator.html hCard creator] is a very simple, yet illustrative, open source user interface / form / script which creates an hCard in real-time as you type in a set of contact information. &lt;br /&gt;
* [http://greenbytes.de/tech/webdav/rfc2629.xslt rfc2629.xslt] now attempts to generate hCard information ([http://ietf.org/rfc/rfc2629 RFC2629] is an XML format for authoring RFCs and Internet Drafts,&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=hcard&amp;diff=6762</id>
		<title>hcard</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=hcard&amp;diff=6762"/>
		<updated>2006-06-20T14:47:16Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: Some examples from academia added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt;hCard&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
hCard is a simple, open, distributed contact information format for people, companies, and organizations, which is suitable for embedding in (X)HTML, Atom, RSS, and arbitrary XML. hCard is a 1:1 representation of the vCard standard ([http://www.ietf.org/rfc/rfc2426.txt RFC2426]) in XHTML, one of several open [[microformats|microformat]] standards.&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;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
&lt;br /&gt;
=== Editor ===&lt;br /&gt;
[http://tantek.com/ Tantek Çelik], [http://technorati.com Technorati, Inc.]&lt;br /&gt;
&lt;br /&gt;
=== Authors ===&lt;br /&gt;
* [http://tantek.com/ Tantek Çelik], [http://technorati.com Technorati, Inc]&lt;br /&gt;
* [http://suda.co.uk/ Brian Suda]&lt;br /&gt;
&lt;br /&gt;
=== Copyright ===&lt;br /&gt;
{{MicroFormatCopyrightStatement2004}}&lt;br /&gt;
&lt;br /&gt;
=== Patents ===&lt;br /&gt;
{{MicroFormatPatentStatement}}&lt;br /&gt;
&lt;br /&gt;
=== Inspiration and Acknowledgments ===&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;
== Introduction ==&lt;br /&gt;
The vCard standard ([http://www.ietf.org/rfc/rfc2426.txt 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 is a 1:1 representation of the aforementioned vCard standard, in semantic XHTML.  Bloggers can both embed vCards directly in their web pages, and style them with CSS to make them appear as desired.  In addition, hCard enables applications to retrieve information about such vCards 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], copy the HTML code it generates to your blog or website to publish your contact info.&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 vCard standard ([http://www.ietf.org/rfc/rfc2426.txt 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 XHTML elements.&lt;br /&gt;
&lt;br /&gt;
=== More Semantic Equivalents ===&lt;br /&gt;
However, for some properties there is a more semantic equivalent, and therefore they get special treatment, e.g.:&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 vs. Plural Properties ===&lt;br /&gt;
&lt;br /&gt;
For properties which are singular (e.g. &amp;quot;N&amp;quot; and &amp;quot;FN&amp;quot;), the first descendant element with that class should take effect, any others being ignored.&lt;br /&gt;
&lt;br /&gt;
For properties which can be plural (e.g. &amp;quot;TEL&amp;quot;), each class instance should create a instance of that property. Plural properties with subtypes (e.g. TEL with WORK, HOME, CELL) can be optimized to share a common element for the property itself, with each instance of subtype being an appropriately classed descendant of the property element.&lt;br /&gt;
&lt;br /&gt;
==== Plural Properties Singularized ====&lt;br /&gt;
&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;
=== Human vs. Machine readable ===&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 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 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 &amp;quot;PHOTO&amp;quot; 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 &amp;quot;PHOTO&amp;quot; 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 &amp;quot;PHOTO&amp;quot; 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;
&lt;br /&gt;
Sometimes only part of an element which is the equivalent for a property should be 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 introduced 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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&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;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This hCard fragment could be displayed as:&lt;br /&gt;
&lt;br /&gt;
 home: +1.415.555.1212&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Property Exceptions ===&lt;br /&gt;
&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;
# '''NAME''', '''PROFILE''', '''SOURCE''', '''PRODID''', '''VERSION''' properties as defined in Sections 2.1.2, 2.1.3, 2.1.4, 3.6.3, 3.6.9 of RFC 2426.  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 (X)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, 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 RFC2426 Section 3.6.9.&lt;br /&gt;
&lt;br /&gt;
=== Organization Contact Info ===&lt;br /&gt;
 &lt;br /&gt;
If the &amp;quot;FN&amp;quot; and &amp;quot;ORG&amp;quot; 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 or organization and should be treated as such.  In this case the author MUST also 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;
&lt;br /&gt;
Although vCard requires that the &amp;quot;N&amp;quot; property be present, the authors of the vCard specification (RFC 2426) 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 OR if the second word is a single character (optionally followed by a period &amp;quot;.&amp;quot;), then the first word (minus the comma at the end if any) 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;
* family-name (comma) given-name-first-initial&lt;br /&gt;
* family-name (space) given-name-first-initial (optional period)&lt;br /&gt;
&lt;br /&gt;
=== Implied &amp;quot;nickname&amp;quot; Optimization ===&lt;br /&gt;
&lt;br /&gt;
Due to the prevalence of the use of nicknames/handles/usernames on the Web 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; is 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;
Note: 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;
&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;
&lt;br /&gt;
Categories in hCard can optionally 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;
=== Root Class Name ===&lt;br /&gt;
&lt;br /&gt;
The root class name for an hCard is &amp;quot;vcard&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Property List ===&lt;br /&gt;
&lt;br /&gt;
This is the list of properties (and subproperties, in parentheses, like this) in hCard, taken from vCard:&lt;br /&gt;
&lt;br /&gt;
* fn, n (family-name, given-name, additional-name, honorific-prefix, honorific-suffix), nickname, sort-string&lt;br /&gt;
* url, email (type, value), tel (type, value)&lt;br /&gt;
* adr (post-office-box, extended-address, street-address, locality, region, postal-code, country-name, type, value), label&lt;br /&gt;
* geo (latitude, longitude), tz&lt;br /&gt;
* photo, logo, sound, bday&lt;br /&gt;
* title, role, org (organization-name, organization-unit)&lt;br /&gt;
* category, note&lt;br /&gt;
* class, key, mailer, uid, rev&lt;br /&gt;
==== type subproperty values ====&lt;br /&gt;
&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;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&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;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following lists are ''informative''. See 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, car, isdn, pcs&lt;br /&gt;
* email type: INTERNET, x400, pref, &amp;quot;other IANA registered address types&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== XMDP Profile ===&lt;br /&gt;
&lt;br /&gt;
See [[hcard-profile]] for the [http://gmpg.org/xmdp XMDP] profile of hCard which contains the above complete list of properties, with references to their RFC 2426 definitions.&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;
ORG:Technorati&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;pre&amp;gt;&amp;lt;nowiki&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 class=&amp;quot;org&amp;quot;&amp;gt;Technorati&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This hCard might be displayed as:&lt;br /&gt;
&lt;br /&gt;
[http://tantek.com/ Tantek Çelik]&amp;lt;br /&amp;gt;&lt;br /&gt;
Technorati&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;
=== More Examples ===&lt;br /&gt;
&lt;br /&gt;
See [[hcard-examples]] for more examples, including all examples from vCard RFC 2426 converted into hCard.&lt;br /&gt;
&lt;br /&gt;
== Examples in the wild ==&lt;br /&gt;
This section is '''informative'''.&lt;br /&gt;
&lt;br /&gt;
The following sites have published hCards, and thus are a great place to start for anyone looking for examples &amp;quot;in the wild&amp;quot; to try parsing, indexing, organizing etc.  If you have an hCard on your own page, feel free to add it to the top of this list.  Once the list grows too big, we'll make a separate wiki page.&lt;br /&gt;
&lt;br /&gt;
=== New Examples ===&lt;br /&gt;
Please add new examples to this section.&lt;br /&gt;
* [http://main.uab.edu/ University of Alabama at Birmingham] has its contact footer encoded as hCard&lt;br /&gt;
* [http://www.capital.edu Capital University] has contact footer and bloggers' names encoded as hCard. Also, all page-specific contact information is encoded as hCards (see [http://www.capital.edu/Internet/Default.aspx?pid=67 Admissions] page for an example)&lt;br /&gt;
* [http://main.uab.edu/shrp/ School of Health Professions] uses hCard in its contact footer&lt;br /&gt;
* [http://green.carisenda.com/ Stephen Stewart] has his hCard on the front page of his weblog ('You are here' section)&lt;br /&gt;
* [http://www.fberriman.com/ Frances Berriman] has a hidden vCard in the footers of her website.&lt;br /&gt;
* [http://www.direction.es/ Direction] uses hCard for contact information.&lt;br /&gt;
* [http://www.vivabit.com/atmedia2006/speakers/ @media speakers] are marked up with hCard (photos depend on BASE tag support which makes this a good test case)&lt;br /&gt;
* [http://www.dougransom.com Doug Ransom] uses hCard for his financial advisory practice. &lt;br /&gt;
* [http://rubyandrails.org/usergroups/newcastle/members.html ncl.rb] uses hCard for contact information.&lt;br /&gt;
* [http://www.snowinteractive.com/ Snow Interactive] uses hCard for contact information.&lt;br /&gt;
* [http://flickr.com Flickr] now supports [[hcard|hCard]] and [http://gmpg.org/xfn XFN] on profile pages.  See [http://flickr.com/photos/factoryjoe/113866484/ screenshot of Flickr UI in Flock browser using Flocktails extension - March 17th 2006].&lt;br /&gt;
* [http://www.ndiyo.org/contact Contact information for the Ndiyo project]&lt;br /&gt;
* [http://www.pixelenvy.co.uk/ Pixel Envy] uses hCard for contact information on every page&lt;br /&gt;
* [http://stilbuero.de/contact/ Klaus Hartl] uses hCard in the sidebar for contact information (maybe easier to parse through delivering xhtml as xml).&lt;br /&gt;
* [http://charlvn.virafrikaans.com/contact Charl van Niekerk's hCard]&lt;br /&gt;
* [http://billy-girlardo.com/WP/ BillyBLOGirlardo] uses hCard for contact information.&lt;br /&gt;
* [http://www.hicksdesign.co.uk/ Hicksdesign] uses hCard for contact information.&lt;br /&gt;
* http://www.gr0w.com/articles/press/growsearch_launched_press_release/ - hCard in a press release for the press contact info&lt;br /&gt;
* http://www.redmonk.com/cote/archives/2006/03/testing_out_mic.html - hCard with explanation&lt;br /&gt;
* [http://andy.ciordia.info/ it's my island], personal blog, hcard on the ''[http://andy.ciordia.info/pages/about_me About the Writer]'' page. [[User:Ciordia9|Andy Ciordia]]&lt;br /&gt;
* [http://www.windowonwoking.org.uk/ Window on Woking], a local community site in the UK, uses hCard in the homepage of each member organisation and local Councillor.&lt;br /&gt;
* [http://ChunkySoup.net/ ChunkySoup.net] has redesigned using hAtom 0.1 and hCards on the entire site -- by [[User:ChrisCasciano|Chris Casciano]]&lt;br /&gt;
* [http://www.30boxes.com/ 30 Boxes],a social calendar application and digital lifestyle aggregator, automatically creates an hcard for you with your account.  It is found under Settings &amp;gt; Syndication.&lt;br /&gt;
* [http://www.nearwhere.com/ Nearwhere.com] allow you to put an hcard on an interactive map.&lt;br /&gt;
* [http://www.brentozar.com/ Brent Ozar] added a [http://www.brentozar.com/contact.php contact] page hCard.&lt;br /&gt;
* [http://www.kerihenare.com/ Keri Henare] has rewritten his [http://www.kerihenare.com/contact/ contact] page hCard.  Now using &amp;lt;code&amp;gt;&amp;lt;object&amp;gt;&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;&amp;lt;img&amp;gt;&amp;lt;/code&amp;gt; for photo. (Thanks Brian Suda for updating the vCard converter)&lt;br /&gt;
* [http://michaelraichelson.com/contact/ Michael Raichelson] had an hCard on his contact page before SXSW, but never thought to add it here until Tantek requested it.&lt;br /&gt;
* [http://www.commoner.com/~lsimon/lindsey_simon_hcard.html Lindsey Simon] has added an hCard to his website as per Tantek's SXSW request for folks to try it &lt;br /&gt;
* [http://www.davidgagne.net/ David Gagne] has an hCard in his sidebar.&lt;br /&gt;
* [http://www.churchzip.com/map/ Churchzip.com/map] and [http://www.skiwhere.com/map/ Skiwhere.com/map], provide churches, hotels, and ski resorts on the same maps.  Locations are formatted as hcards.&lt;br /&gt;
* All [http://www.iqdir.com/ IQ Directory Solutions] Yellow Pages web portals use [[hcard|hCard]] markup on listings. For example [http://www.yellowpages-cambodia.com/ Cambodia Yellow Pages] and [http://www.superpages.com.my/ Malaysia Super Pages]&lt;br /&gt;
* Ning's cloneable Group app uses fuzzy matching to map custom fields to [[hcard|hCard]] markup on its [http://group.ning.com/index.php?controller=person&amp;amp;action=view&amp;amp;content=JonathanAquino profile] pages.&lt;br /&gt;
* [http://claimid.com/factoryjoe Chris Messina' ClaimID hCard]&lt;br /&gt;
* [http://factoryjoe.com/blog/hcard Chris Messina' hCard]&lt;br /&gt;
* [http://flock.com/about Flock About]&lt;br /&gt;
* [http://tantek.com/microformats/2006/03-01-TechPlenAgenda.html Agenda: W3C Technical Plenary Day, March 1 2006] has [[hcard|hCard]] and [[hcalendar|hCalendar]] markup. ([http://www.w3.org/2006/03/01-TechPlenAgenda.html original here]).&lt;br /&gt;
* [http://www.gr0w.com/articles/press/growsearch_launched_press_release/ GrowSearch Launched (Press Release)] uses an hCard to provide Press Contact Point.&lt;br /&gt;
* The [http://www.arborday.org/ National Arbor Day Foundation] has started using hCards for their [http://arborday.org/programs/conferences/communityforestry/index.cfm upcoming] [http://arborday.org/programs/conferences/hazardtrees-treeplanting/ conferences].&lt;br /&gt;
* [http://www.multipack.co.uk The Multipack] has numerous hCards, especially on the [http://www.multipack.co.uk/members/ members page], as well as the next meeting information.&lt;br /&gt;
* [http://deadringrancor.livejournal.com/ Justin McDowell] used an hCard when [http://deadringrancor.livejournal.com/221332.html referring to a person in his blog post]&lt;br /&gt;
* [http://davecardwell.co.uk/cv/ Dave Cardwell] has included his hCard in his Curriculum Vitae.&lt;br /&gt;
* [http://blog.usweb.com/ Shaun Shull] has written a great post on [http://blog.usweb.com/archives/how-microformats-affect-search-engine-optimization-seo How Microformats Affect SEO], and has included his [[hcard|hCard]] as one of the examples.&lt;br /&gt;
* [http://www.thefutureoftheweb.com/ Jesse Skinner] has written a simple [http://www.thefutureoftheweb.com/blog/2006/1/hcard tutorial with examples]&lt;br /&gt;
* [http://www.w3.org/2005/12/allgroupoverview.html 2006 W3C Technical Plenary Week] has marked up the venue, contacts, and program committee members all with hCard.&lt;br /&gt;
* [http://www.avf-nexus.co.uk AVF-Nexus] have a hCard on their [http://www.avf-nexus.co.uk/contact/ contact page] - (by [http://creation.uk.com Creation&amp;quot;])&lt;br /&gt;
* [http://www.thefantasticos.com/andrew/ Andrew White] posted [http://www.thefantasticos.com/andrew/index.php/my-hcard/ his hCard] and [http://www.thefantasticos.com/andrew/index.php/62/microformats-the-should-have-been-obvious-web-dev-tool/ blogged about it].&lt;br /&gt;
* [http://www.2sheds.ru Oleg &amp;quot;2sheds&amp;quot; Kourapov] in his [http://www.2sheds.ru/blog/ blog] ([http://suda.co.uk/projects/X2V/get-vcard.php?uri=http://www.2sheds.ru/blog X2V]) has turned personal profile into hCard ([http://suda.co.uk/projects/X2V/get-vcard.php?uri=http://www.2sheds.ru/blog/hcard.html X2V]) and his blogroll - into combination XFN/hCards ([http://suda.co.uk/projects/X2V/get-vcard.php?uri=http://www.2sheds.ru/blog/friends.html X2V])&lt;br /&gt;
* [http://www.approveddesign.co.uk Approved Design Consultancy] have a hCard on their [http://www.approveddesign.co.uk/about/contact/ contact page] as well as on their [http://www.approveddesign.co.uk/about/people/ people section] - (by [http://creation.uk.com Creation&amp;quot;])&lt;br /&gt;
* [http://weblog.200ok.com.au/ Ben Buchanan] and [http://www.griffith.edu.au/cgi-bin/phone_search.pl?string=colin+morris&amp;amp;format=search Colin Morris] have [http://weblog.200ok.com.au/2006/01/griffith-phonebook-adds-hcard-and.html implemented hCards and vCards] for the [http://www.griffith.edu.au Griffith University] [http://www.griffith.edu.au/find/content_phonebook.html online phone book]. Eg. [http://www.griffith.edu.au/cgi-bin/phone_search.pl?string=ben+buchanan&amp;amp;format=search Ben's vCard] and [http://www.griffith.edu.au/cgi-bin/phone_search.pl?string=colin+morris&amp;amp;format=search Colin's vCard]&lt;br /&gt;
* WWF-Australia [http://wwf.org.au/about/contactdetails/ contact details page]&lt;br /&gt;
* [http://rasterweb.net/raster/ Pete Prodoehl] used the hCard format on his [http://rasterweb.net/raster/contact.html Contact page]&lt;br /&gt;
* [http://alexander-mette.de amette] uses the hCard format in a module of his TikiWiki powered blog&lt;br /&gt;
* [http://staff.washington.edu/oren/weblog2/ Oren Sreebny] has an hcard on his blog main index template &lt;br /&gt;
* [http://www.cs.brandeis.edu/~zippy/ Patrick Tufts] has an hCard on his homepage.&lt;br /&gt;
* [http://ascii20.blogspot.com/ Mathias Kolehmainen and Jamie Taylor] have hCards on their weblog.&lt;br /&gt;
* [http://www.hoppsan.org/jamesb/blogger/ Barnaby James] has a hCard on his weblog.&lt;br /&gt;
* [http://esa-education.com/schools/map ESA Education] Uses hCards for their 100+ schools and each of the individual school sites.&lt;br /&gt;
* [http://www.thereisnocat.com/#vcard Ralph Brandi] has added an hCard to the sidebar of his weblog as a result of Tantek Çelik's portion of the Microformats presentation at SXSW 2006.&lt;br /&gt;
* [http://www.pierce.ctc.edu/ephone/ Pierce College] -- community college directory uses hCard on all individual directory entries.&lt;br /&gt;
* [http://www.ukoln.ac.uk/web-focus/events/workshops/webmaster-2006/ the Institutional Web Management Workshop 2006] have marked up all their [http://www.ukoln.ac.uk/web-focus/events/workshops/webmaster-2006/committee/ speakers with hCard].&lt;br /&gt;
* http://wikitravel.org/en/Singapore/Sentosa. Wikitravel is experimenting with hcard on its travel guides. This guide uses hcard for all its business listings. More info on http://wikitravel.org/en/Wikitravel_talk:Listings.&lt;br /&gt;
* [http://www.musik-erber.de/ Musik-Erber] uses to present contact information at the sidebar&lt;br /&gt;
* [http://cdevroe.com/about/#contact Colin D. Devroe] uses hCard to display his contact information on his about page&lt;br /&gt;
* The ECS (Scool of Electronics and Computer Science  at the University of Southampton) [http://www.ecs.soton.ac.uk/people People Pages] use vCard. Contact cjg@ecs.soton.ac.uk if there's any bugs.&lt;br /&gt;
* [http://www.southwestern.edu/~ramseyp Pat Ramsey] has his contact information on his blog marked up with hCard. Contact [mailto:ramsey.pat@gmail.com ramsey.pat@gmail.com] if there are any bugs there.&lt;br /&gt;
* [http://www.meryl.net/ Meryl K. Evans] has a hidden hCard on her homepage.&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
* [http://thoughtport.blogspot.com/ Aiden Kenny] hasn't published his hCard yet, but he has [http://thoughtport.blogspot.com/2005/07/elemental-particles-of-web.html published his hCard icon]: http://photos1.blogger.com/blogger/4224/444/320/AK-Hcard-icon.gif&lt;br /&gt;
* [http://thedredge.org Andy Hume] uses hCards to mark-up the names and URLs of commentors on his blog, e.g. his [http://thedredge.org/2005/06/using-hcards-in-your-blog/ blog post on &amp;quot;Using hCards in your blog&amp;quot;]. &lt;br /&gt;
* [http://www.bidclix.com/ BidClix]'s [http://www.bidclix.com/AboutContact.html Contact BidClix] page has it's ''contact info'' marked up with an hCard.&lt;br /&gt;
* [http://suda.co.uk/ Brian Suda] has managed to embed a photo in [http://suda.co.uk/contact/ his hCard] through the [http://www.ietf.org/rfc/rfc2397.txt data uri scheme] by converting the image to BASE64 code. View the Source to see how this is accomplished. [http://suda.co.uk/projects/X2V/get-vcard.php?uri=http%3A//suda.co.uk/contact/ The X2V link] will extract the image and encode it for a vCard which will be displayed in some address book applications.&lt;br /&gt;
* [http://cinematreasures.org Cinema Treasures] uses hCard to markup venue information for 10,000+ movie theaters.&lt;br /&gt;
* [http://www.w3.org/People/Connolly/events/ Dan Connolly's index of events and talks] has hCards for many of the people he has met at those events. In Mar 2006, he moved a bunch of hotel contact info from his PDA to this page; it's now up to 32 hCards.&lt;br /&gt;
* [http://doncrowley.blogspot.com/ Don Crowley] has published [http://www.crowley.nl/hcard.html his hCard] as well as a nifty hCard button: http://www.crowley.nl/images/hcard.png&lt;br /&gt;
* [http://loadaveragezero.com/hnav/contact.php Douglas W. Clifton] added all types of contact information&lt;br /&gt;
* [http://eventful.com Eventful] publishes all of its venue information pages with embedded hCards.&lt;br /&gt;
* [http://www.iowamilitaryveteransband.com/members/ Iowa Military Veterans Band Contacts] - 95 hCards [http://weblog.randomchaos.com/archive/2005/10/24/Microformats/ marked up by Scott Reynen]&lt;br /&gt;
* [http://JackWolfgang.blogspot.com Jack L. Wolfgang II] has [http://jack.randomata.com/resume/ converted the addresses in his resume to hCards].&lt;br /&gt;
* [http://www.efas.fupl.asso.fr/efas/_Mathieu-Drouet_.html Mathieu Drouet] and [http://www.efas.fupl.asso.fr/efas/_Annie-Leger_.html Annie Leger] both have hCards&lt;br /&gt;
* [http://www.ndunn.com Neil Dunn] has published his rather [http://www.ndunn.com/2005/10/7/hCard good looking hCard]&lt;br /&gt;
* [http://www.oliverbrown.me.uk/ Oliver Brown] has published his hCard.&lt;br /&gt;
* [http://www.paradigmproductions.org/contact/ Paradigm Productions] published a vcard as a ul (marked up by [http://www.linkingarts.com/ Peter Jacobson])&lt;br /&gt;
* [http://www.splintered.co.uk/ Patrick H. Lauke] has marked up [http://www.splintered.co.uk/about/ his contact info with hCard].&lt;br /&gt;
* [http://blah Paul Schreiber has published his hCard on [http://paulschreiber.com/about/?contact his about page].&lt;br /&gt;
* [http://paulschreiber.com/blog/ Paul Schreiber]'s [http://concerts.shrub.ca/ Sunnyvale House Concerts] site publishes hCards for upcoming artists, as well as an hCard for the page itself.  In addition the [http://concerts.shrub.ca/shows Past Shows] page contains hCards for all past artists.&lt;br /&gt;
* [http://www.paulmichaelsmith.com/blog/hcard.htm Paul Smith] has created an hCard page which is Human Readable, and a link to X2V passing the same hCard page to generate a vCard.&lt;br /&gt;
* [http://www.windley.com/archives/2005/07/hcards_trying_o.shtml Phil Windley has published] [http://phil.windley.org/hcard.html his hCard].&lt;br /&gt;
* [http://www.go-curiosity.com/about.htm Piercarlo Slavazza] has published an hCard.&lt;br /&gt;
* [http://zooibaai.nl/ Rob Mientjes] has published his hCard on [http://zooibaai.nl/about/ his about page].&lt;br /&gt;
* [http://rbach.priv.at/Contact Robert Bachmann] has published his hCard and [http://rbach.priv.at/Images/hcard a button].&lt;br /&gt;
* [http://blah Scott Reynen has published his hCard on [http://www.randomchaos.com/document.php?source=scott_reynen his profile page].&lt;br /&gt;
* [http://www.stackframe.com/ StackFrame, LLC] has published [http://www.stackframe.com/people/ employee] and [http://www.stackframe.com/contact/ general] contact information as hCards.&lt;br /&gt;
* [http://www.wolfsreign.com Steven Ametjan] has published his hCard on [http://www.wolfsreign.com/about/ his about page].&lt;br /&gt;
* [http://tantek.com/microformats/2005/syndicate/speakers-list.html Syndicate - Speaker List] as a set of hCards&lt;br /&gt;
* [http://tagcamp.org/index.cgi?ContactList TagCamp contact list]&lt;br /&gt;
* [http://tantek.com/log Tantek's Thoughts] includes an inline author hCard at the bottom of the page.&lt;br /&gt;
* [http://technorati.com/ Technorati]'s [http://www.technorati.com/about/ About page] lists their '''Media Contact'''&lt;br /&gt;
* [http://www.deadringerart.com/ The Brothers McDowell] have hCards at their Contact page.&lt;br /&gt;
* [http://twinsparc.com/ Twinsparc] put an hCard in the header and footer of all their pages.&lt;br /&gt;
* [http://tantek.com/microformats/2005/web2/speakers.html Web 2.0 Conference speakers page marked up with hCard]&lt;br /&gt;
* [http://we05.com/ Web Essentials 05] marked up all their [http://we05.com/presenters.cfm presenters with hCard].&lt;br /&gt;
&lt;br /&gt;
=== Examples with some problems ===&lt;br /&gt;
&lt;br /&gt;
* [http://gbraad.nl/ Gerard Braad] has published an example on his [http://gbraad.nl/site/?p=profile profile] page that is almost consistent with his original [http://gbraad.nl/files/gbraad.vcf vCard] file. Also progress is made for transforming his [http://files.gbraad.nl/foaf.rdf FoaF] file to a hCard encoded representation. (also done for my spouse:[http://spouse.gbraad.nl/site/?p=profile Yong Yuan])&lt;br /&gt;
** (2005-09-27) PASSED, PASSED&lt;br /&gt;
** WARNINGS&lt;br /&gt;
*** uses 'n given-name' and 'n family-name' instead of nesting the given- and family- names inside the 'n'&lt;br /&gt;
*** has one 'tel' value with a bunch of values stuffed in&lt;br /&gt;
*** probably more problems --[[User:RyanKing|RyanKing]] 17:19, 5 Jan 2006 (PST)&lt;br /&gt;
* [http://kinrowan.net/ Cori Schlegel] [http://kinrowan.net/blog/wp/archives/2005/07/08/a-problem-with-the-structured-blogging-plug-in-for-wordpress/ discusses how he has updated] [http://kinrowan.net/blog/contact his contact page with hCard]&lt;br /&gt;
** INVALID - using 'prefix' instead of 'honorific-prefix' and type's in classnames (in both adr and tel) and has two photo's (the second could be 'logo') --[[User:RyanKing|RyanKing]] 15:15, 5 Jan 2006 (PST)&lt;br /&gt;
* The good ship [http://styrheim.com/test/leonid.html Leonid Miloslavskiy] spotted in the North Atlantic&lt;br /&gt;
** INVALID  --[[User:RyanKing|RyanKing]] 00:50, 27 Oct 2005 (PDT)&lt;br /&gt;
*** class=&amp;quot;family&amp;quot; should probably be family-name&lt;br /&gt;
*** the &amp;quot;n&amp;quot; property is missing and the &amp;quot;n&amp;quot; optimization can't be applied&lt;br /&gt;
*** the first geo propery is empty, the second one is invalid (ie, it doesn't contain lat/long)&lt;br /&gt;
* [http://landsbank.fo/#hCard Landsbanki Føroya]&lt;br /&gt;
** INVALID - using embedded rdf/xml invalidly&lt;br /&gt;
* [http://chrischerry.name/blog/contact/ Chris Cherry's contact page with his hCard]&lt;br /&gt;
** WARNING - uses class=&amp;quot;cell&amp;quot; instead of &amp;amp;lt;span class=&amp;quot;type&amp;quot;&amp;amp;gt;cell&amp;amp;lt;/span&amp;amp;gt;&lt;br /&gt;
* [http://www.bath.ac.uk/contact/ University of Bath] Person Finder results are encoded with hCards so you can easily create a vCard from any result. &lt;br /&gt;
** ERROR - attempt to use Implied-N optimization where that's not possible. --[[User:RyanKing|RyanKing]] 14:29, 5 Jan 2006 (PST)&lt;br /&gt;
** Error appears for external users only. Won't be fixed any time soon. -- [[User:PhilWilson|PhilWilson]] 00:03, 28 Jan 2006 (GMT)&lt;br /&gt;
* [http://richi.co.uk/blog/2005/12/structured-blogging.html Richi Jennings] has put up his attempt&lt;br /&gt;
** INVALID, missing FN --[[User:RyanKing|RyanKing]] 12:47, 5 Jan 2006 (PST)&lt;br /&gt;
* [http://www.shiftingpixel.com/about/ shifting pixel photoblog] has published an hCard.&lt;br /&gt;
** &amp;quot;organization_name&amp;quot; should be &amp;quot;organization-name&amp;quot; (s/_/-/), otherwise good --[[User:RyanKing|RyanKing]] 14:01, 5 Jan 2006 (PST)&lt;br /&gt;
* [http://www.yellowpencil.com/contact/ Yellow Pencil] Using microformats to present company contact information&lt;br /&gt;
** First hcard has empty &amp;quot;fn&amp;quot; and no &amp;quot;n&amp;quot;. &amp;quot;fn&amp;quot; should be with &amp;quot;org&amp;quot; -- [[User: ScottReynen |ScottReynen]] 21:29, 19 Jun 2006 (CST)&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
This section is '''informative'''.&lt;br /&gt;
&lt;br /&gt;
The following implementations have been developed which either generate or parse hCards. If you have an hCard 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.&lt;br /&gt;
* [http://kitchen.technorati.com/search Technorati Microformats Search] indexes [[hcard|hCard]], [[hcalendar|hCalendar]], and [[hreview|hReview]] as [http://tantek.com/log/2006/05.html#d31t1802 announced by Tantek].&lt;br /&gt;
** list of pages with indexing Issues so they can be looked into as to why data is not being extracted&lt;br /&gt;
** suda.co.uk/contact&lt;br /&gt;
** multipack.co.uk&lt;br /&gt;
&lt;br /&gt;
* [http://www.webstandards.org/action/dwtf/microformats/ Dreamweaver Extension suite] from the [http://webstandards.org/ Web Standards Project] enables the authoring of hCards from within Dreamweaver 8.&lt;br /&gt;
* [http://scooch.gr0w.com/ Scooch] is a slide show and presentation creator that generates a [[hCard]] for individual slide show authors and comment authors with a CSS button to parse and download via [http://suda.co.uk/projects/X2V/ X2V]. Also uses [[hReview]] for slide ratings and [[rel-tag]] for categories.&lt;br /&gt;
* [http://blog.codeeg.com/2006/03/20/flock-tails-flocktails/ Flocktails] - port of Tails extension for Flock 0.5.12 that looks for hCards, hCalendar, xFolk and hReview and tosses them into a handy topbar&lt;br /&gt;
*[http://opensource.reevoo.com/2006/03/08/release-uformats-12/ uformats] is a ruby library that can parse [[hCalendar]], [[hCard]], [[hReview]] and [[rel-tag]]&lt;br /&gt;
* [http://blog.codeeg.com/tails-firefox-extension/ Tails is a Firefox Extension] that will display the presence and details of microformats ([[hcard|hCard]], [[hcalendar|hCalendar]], [[hreview|hReview]], [[xfolk|xFolk]]) on a webpage.&lt;br /&gt;
* [http://www.stripytshirt.co.uk/features/firefox/smartzilla Smartzilla is a Firefox Extension] that finds hCards on web pages and lets you add them to your addressbook.&lt;br /&gt;
* [http://placenamehere.com/TXP/pnh_mf/ pnh_mf] is a plugin for [http://textpattern.com/ Textpattern] that supports embedding hCard and other microformats in templates and blog posts. Written by [http://placenamehere.com/ Chris Casciano].&lt;br /&gt;
* There is [http://flickr.com/photos/factoryjoe/68755089/ evidence of built-in hCard support in the Konqueror browser].  Specifically, Konqueror 3.5, in KDE 3.5 (kubuntu Breezy w/ update).&lt;br /&gt;
* There is [http://tagcamp.org/index.cgi?ContactList evidence of a kwiki plugin for hCards].  Update: the [http://svn.kwiki.org/cwest/Kwiki-hCard/ hCard kwiki plugin svn repository].  See the [http://microwiki.caseywest.com/index.cgi?hCard documentation of the hCard kwiki plugin].&lt;br /&gt;
* [http://suda.co.uk/projects/X2V/ X2V] is a bookmarklet that parses hCard and produces a .vcf (vCard) stream.  Note: needs to be updated as the spec is refined&lt;br /&gt;
* [http://www.stripytshirt.co.uk Duncan Walker] has built [http://www.stripytshirt.co.uk/features/firefox/smartzilla a Firefox extension] that gets hCard data from a webpage, uses Brian Suda's XSL (locally) to transform it to vcard format and opens the resulting .vcf file.&lt;br /&gt;
* [http://george.hotelling.net/90percent/ George] has written a [http://george.hotelling.net/90percent/geekery/greasemonkey_and_microformats.php Greasemonkey user script] that detects hCards and allows users to easily add them to their address book application.  Relies on the X2V web service to do the conversion.&lt;br /&gt;
* [http://inside.glnetworks.de/ Martin Rehfeld] has updated the work of [http://blogmatrix.blogmatrix.com/ David Janes] and produced a [[Greasemonkey]] [http://inside.glnetworks.de/2006/06/05/microformats-have-arrived-in-firefox-15-greasemonkey-06/ script] that finds many microformat elements, including hCards, and [http://blog.davidjanes.com/mtarchives/2005_08.html#003379 provides a popup menu of actions]. The hCard to vCard conversion is done internally within the script. ''This will work with FireFox 1.5+/GreaseMonkey 0.6.4+ now.''&lt;br /&gt;
* [http://diveintomark.org/ Mark Pilgrim] has also written an [http://diveintomark.org/projects/greasemonkey/hcard/ hCard parser Greasemonkey user script].  It is self-contained and does not rely on the X2V web service.&lt;br /&gt;
* [http://www.oliverbrown.me.uk/2005/09/03/a-working-microformats-extension-to-simplexml/ Oliver Brown] has written an &amp;quot;extension&amp;quot; to [http://www.php.net/simplexml SimpleXML] that gives simple access to hCard information in PHP 5.&lt;br /&gt;
* [http://thedredge.org/ Andrew D. Hume] has built a system (Wordpress plugin?) for [http://thedredge.org/2005/06/using-hcards-in-your-blog/ using hcards in your blog] to represent people leaving comments on blog posts.&lt;br /&gt;
* The [http://tantek.com/microformats/hcard-creator.html hCard creator] is a very simple, yet illustrative, open source user interface / form / script which creates an hCard in real-time as you type in a set of contact information. &lt;br /&gt;
* [http://greenbytes.de/tech/webdav/rfc2629.xslt rfc2629.xslt] now attempts to generate hCard information ([http://ietf.org/rfc/rfc2629 RFC2629] is an XML format for authoring RFCs and Internet Drafts,&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=events&amp;diff=6545</id>
		<title>events</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=events&amp;diff=6545"/>
		<updated>2006-06-09T03:08:46Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: oops... correcting wiki markup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt; Microformats related events &amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please add any microformats related events (specifically, events where there will be talks on microformats) you find here, and we'll add them to the [[hcalendar|hCalendar]] on the [http://microformats.org home page]. Please also create a page for each specific event, where you can list URLs for the event, event details, create an &amp;quot;Attending&amp;quot; section, link to photos afterwards etc. (See [[events/2006-03-01-w3c-plenary-microformats|Microformats panel at W3C Plenary Day]] for a decent example to mimic).  Thanks! -[http://tantek.com/ Tantek]&lt;br /&gt;
&lt;br /&gt;
For presenations in particular, there's [[presentations|a seperate wiki page]].&lt;br /&gt;
&lt;br /&gt;
Patterns:&lt;br /&gt;
* YYYY-MM-DD: &amp;lt;nowiki&amp;gt;[[events/YYYY-MM-DD-event-session-title Event Session Title]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* YYYY-MM-DD - YYYY-MM-DD: &amp;lt;nowiki&amp;gt;[[events/YYYY-MM-DD-event-session-title Event Session Title]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Upcoming ==&lt;br /&gt;
* 2006-06-13: [[events/2006-06-13-where-2-bof|Where 2.0 Microformats BOF II]] - developing a [[directions-examples|directions]] microformat.&lt;br /&gt;
* 2006-06-15 - 2006-06-16: @media conference - microformats session&lt;br /&gt;
* 2006-06-20: Microformats.org [[events/anniversary/1|one year anniversary!]] &lt;br /&gt;
* 2006-06-21: Supernova 2006 Decentralized Data workshop&lt;br /&gt;
* 2006-07-11: An Event Apart, NYC.  [http://www.aneventapart.com/news/2006/05/tantek_joins.php microformats session]&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
== Recent ==&lt;br /&gt;
* 2006-03-01: [[events/2006-03-01-w3c-plenary-microformats|Microformats panel at W3C Plenary Day]]&lt;br /&gt;
* 2006-03-02: [http://esw.w3.org/topic/SwigAtTp2006 Semantic Web Interest Group meeting at W3C Technical Plenary], specifically, 1.30-3.30pm Dan Connolly on using &amp;quot;GRDDL&amp;quot; to parse microformats&lt;br /&gt;
* 2006-03-07: [[events/2006-03-07-etech-microformats|Microformats at O'Reilly ETech]]&lt;br /&gt;
* 2006-03-13: [[events/2006-03-13-sxsw-microformats|Microformats at SXSW Interactive]]&lt;br /&gt;
* 2006-03-14: [[events/2006-03-14-sxsw-modulet|Convincing Your Company to Embrace Web Standards at SxSW Interactive]]&lt;br /&gt;
* 2006-03-20: [[events/2006-03-20-mix06-microformats|Mix06 Keynote with Tim O'Reilly and Bill Gates discussing microformats]]&lt;br /&gt;
* 2006-03-21: [[events/2006-03-21-mix06-microformats|Mix06 Microformats session discussions]]&lt;br /&gt;
* 2006-03-22: [[events/2006-03-22-mix06-microformats|Mix06 Microformats session discussions]]&lt;br /&gt;
* 2006-04-23 - 2006-04-24 [http://cmprofessionals.org/events/summit/#06spring CM Pros Summit] [http://www.nateaune.com Nate Aune] will be presenting a talk &amp;quot;Microformats and the Future of Syndication&amp;quot; from 16:30-17:30 at the Sheraton Palace Hotel in San Francisco.&lt;br /&gt;
* 2006-05-16 - 2006-05-19: [http://xtech.org/ XTech 2006 Conference]&lt;br /&gt;
** 2006-05-16 09:00-12:30: Half-day tutorial: [http://xtech06.usefulinc.com/content/tutorials#microformats Microformats from the Ground Up] at Volmer 3. [http://theryanking.com/presentations/2006/xtech/tutorial/ presentation slides].&lt;br /&gt;
** 2006-05-18 [http://xtech06.usefulinc.com/schedule#s2006-05-18-14:00 14:00-14:45]: [http://xtech06.usefulinc.com/schedule/detail/148 The Intelligent Design of Microformats]&lt;br /&gt;
* 2006-05-22: [http://refreshedinburgh.org/talks/introducing-microformats-your-web-site/ Refresh Edinburgh] Introducing microformats into your website, May 22nd 8pm-9pm.&lt;br /&gt;
* 2006-05-23 - 2006-05-26: [http://www2006.org/ www2006] &lt;br /&gt;
** 2006-05-23: [http://www.blogpulse.com/www2006-workshop/ WWE 2006 | 3rd Annual Workshop on the Weblogging Ecosystem] - call for papers is now open, and explicitly includes &amp;quot;microformats&amp;quot;.&lt;br /&gt;
** 2006-05-24: &lt;br /&gt;
*** All day: &amp;quot;Microformats: a Pragmatic Path to the Semantic Web&amp;quot; poster (Poster ID 116, by Rohit Khare and Tantek Çelik) presentation at Strathblane Hall on Level 0 opposite the main entrance.&lt;br /&gt;
*** 14:00-15:30: Brian Suda will be presenting a microformats demo ([http://www2006.org/programme/item.php?id=d7 Microformats, converting XHTML to vCards and vCalendars]) in the NextWave developer track session. More information about the presentation is available at [[events/www2006]].&lt;br /&gt;
** 2006-05-25 10:30-13:30: Molly E. Holzschlag will be presenting a half-day &amp;quot;Practical Microformats&amp;quot; developer tutorial.&lt;br /&gt;
* 2006-05-30 - 2006-05-31: [http://netsquared.org NetSquared] [http://netsquared.org/conference/ Conference]&lt;br /&gt;
** 2006-05-30 4:15pm-5:10pm: : [http://netsquared.org/conference/conference-sessions/Mashups A web more woven - the alchemy and practicalities of Mashups].  Tantek Çelik, Taylor McKnight and Chris Messina will discuss the core utility of microformats to publish and share data for/with mashups and other applications.  Location:  Jordan room, Cisco Systems' Vineyard Conference Center, 260 E. Tasman Drive, San Jose, CA.&lt;br /&gt;
** Ryan King has been asked to present on microformats.&lt;br /&gt;
* 2006-06-08 [http://glazkov.com/resources/presentations/2006-06-08-microformats/ Microformats]. [[DimitriGlazkov|Dimitri Glazkov]] talks about microformats at [http://ipsaonline.com/ IPSA] monthly meeting.&lt;br /&gt;
&lt;br /&gt;
== Quicktime Broadcaster Notes ==&lt;br /&gt;
&lt;br /&gt;
For setting up a mac laptop with an iSight and QT Broadcaster in order to publish live audio/video from events.&lt;br /&gt;
&lt;br /&gt;
# Make sure you have the necessary equipment and software installed&lt;br /&gt;
#* A Macintosh running OSX 10.3.9 or later&lt;br /&gt;
#* Quicktime 7 - get it from http://www.apple.com/quicktime/&lt;br /&gt;
#* Quicktime Broadcaster - get it from http://www.apple.com/quicktime/broadcaster/&lt;br /&gt;
#* An iSight or digital video camera with firewire connection&lt;br /&gt;
# Get a broadcast template document from someone (see KevinMarks for example)&lt;br /&gt;
# Open that, then change the info in the 'Network' pane that has his name etc in it.&lt;br /&gt;
# Check the video and audio panes are using your iSight&lt;br /&gt;
# Another tip is that the standalone thingy for the iSight can be more useful than the screen-top one if you have a desk, as that way it picks up less typing noise and wobbles&lt;br /&gt;
# I find plugging in headphones is a good idea, as you can then monitor and not get howlround&lt;br /&gt;
&lt;br /&gt;
http://microformats.org/media/broadcast.mov&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=events&amp;diff=6537</id>
		<title>events</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=events&amp;diff=6537"/>
		<updated>2006-06-09T03:05:35Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt; Microformats related events &amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please add any microformats related events (specifically, events where there will be talks on microformats) you find here, and we'll add them to the [[hcalendar|hCalendar]] on the [http://microformats.org home page]. Please also create a page for each specific event, where you can list URLs for the event, event details, create an &amp;quot;Attending&amp;quot; section, link to photos afterwards etc. (See [[events/2006-03-01-w3c-plenary-microformats|Microformats panel at W3C Plenary Day]] for a decent example to mimic).  Thanks! -[http://tantek.com/ Tantek]&lt;br /&gt;
&lt;br /&gt;
For presenations in particular, there's [[presentations|a seperate wiki page]].&lt;br /&gt;
&lt;br /&gt;
Patterns:&lt;br /&gt;
* YYYY-MM-DD: &amp;lt;nowiki&amp;gt;[[events/YYYY-MM-DD-event-session-title Event Session Title]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* YYYY-MM-DD - YYYY-MM-DD: &amp;lt;nowiki&amp;gt;[[events/YYYY-MM-DD-event-session-title Event Session Title]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Upcoming ==&lt;br /&gt;
* 2006-06-13: [[events/2006-06-13-where-2-bof|Where 2.0 Microformats BOF II]] - developing a [[directions-examples|directions]] microformat.&lt;br /&gt;
* 2006-06-15 - 2006-06-16: @media conference - microformats session&lt;br /&gt;
* 2006-06-20: Microformats.org [[events/anniversary/1|one year anniversary!]] &lt;br /&gt;
* 2006-06-21: Supernova 2006 Decentralized Data workshop&lt;br /&gt;
* 2006-07-11: An Event Apart, NYC.  [http://www.aneventapart.com/news/2006/05/tantek_joins.php microformats session]&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
== Recent ==&lt;br /&gt;
* 2006-03-01: [[events/2006-03-01-w3c-plenary-microformats|Microformats panel at W3C Plenary Day]]&lt;br /&gt;
* 2006-03-02: [http://esw.w3.org/topic/SwigAtTp2006 Semantic Web Interest Group meeting at W3C Technical Plenary], specifically, 1.30-3.30pm Dan Connolly on using &amp;quot;GRDDL&amp;quot; to parse microformats&lt;br /&gt;
* 2006-03-07: [[events/2006-03-07-etech-microformats|Microformats at O'Reilly ETech]]&lt;br /&gt;
* 2006-03-13: [[events/2006-03-13-sxsw-microformats|Microformats at SXSW Interactive]]&lt;br /&gt;
* 2006-03-14: [[events/2006-03-14-sxsw-modulet|Convincing Your Company to Embrace Web Standards at SxSW Interactive]]&lt;br /&gt;
* 2006-03-20: [[events/2006-03-20-mix06-microformats|Mix06 Keynote with Tim O'Reilly and Bill Gates discussing microformats]]&lt;br /&gt;
* 2006-03-21: [[events/2006-03-21-mix06-microformats|Mix06 Microformats session discussions]]&lt;br /&gt;
* 2006-03-22: [[events/2006-03-22-mix06-microformats|Mix06 Microformats session discussions]]&lt;br /&gt;
* 2006-04-23 - 2006-04-24 [http://cmprofessionals.org/events/summit/#06spring CM Pros Summit] [http://www.nateaune.com Nate Aune] will be presenting a talk &amp;quot;Microformats and the Future of Syndication&amp;quot; from 16:30-17:30 at the Sheraton Palace Hotel in San Francisco.&lt;br /&gt;
* 2006-05-16 - 2006-05-19: [http://xtech.org/ XTech 2006 Conference]&lt;br /&gt;
** 2006-05-16 09:00-12:30: Half-day tutorial: [http://xtech06.usefulinc.com/content/tutorials#microformats Microformats from the Ground Up] at Volmer 3. [http://theryanking.com/presentations/2006/xtech/tutorial/ presentation slides].&lt;br /&gt;
** 2006-05-18 [http://xtech06.usefulinc.com/schedule#s2006-05-18-14:00 14:00-14:45]: [http://xtech06.usefulinc.com/schedule/detail/148 The Intelligent Design of Microformats]&lt;br /&gt;
* 2006-05-22: [http://refreshedinburgh.org/talks/introducing-microformats-your-web-site/ Refresh Edinburgh] Introducing microformats into your website, May 22nd 8pm-9pm.&lt;br /&gt;
* 2006-05-23 - 2006-05-26: [http://www2006.org/ www2006] &lt;br /&gt;
** 2006-05-23: [http://www.blogpulse.com/www2006-workshop/ WWE 2006 | 3rd Annual Workshop on the Weblogging Ecosystem] - call for papers is now open, and explicitly includes &amp;quot;microformats&amp;quot;.&lt;br /&gt;
** 2006-05-24: &lt;br /&gt;
*** All day: &amp;quot;Microformats: a Pragmatic Path to the Semantic Web&amp;quot; poster (Poster ID 116, by Rohit Khare and Tantek Çelik) presentation at Strathblane Hall on Level 0 opposite the main entrance.&lt;br /&gt;
*** 14:00-15:30: Brian Suda will be presenting a microformats demo ([http://www2006.org/programme/item.php?id=d7 Microformats, converting XHTML to vCards and vCalendars]) in the NextWave developer track session. More information about the presentation is available at [[events/www2006]].&lt;br /&gt;
** 2006-05-25 10:30-13:30: Molly E. Holzschlag will be presenting a half-day &amp;quot;Practical Microformats&amp;quot; developer tutorial.&lt;br /&gt;
* 2006-05-30 - 2006-05-31: [http://netsquared.org NetSquared] [http://netsquared.org/conference/ Conference]&lt;br /&gt;
** 2006-05-30 4:15pm-5:10pm: : [http://netsquared.org/conference/conference-sessions/Mashups A web more woven - the alchemy and practicalities of Mashups].  Tantek Çelik, Taylor McKnight and Chris Messina will discuss the core utility of microformats to publish and share data for/with mashups and other applications.  Location:  Jordan room, Cisco Systems' Vineyard Conference Center, 260 E. Tasman Drive, San Jose, CA.&lt;br /&gt;
** Ryan King has been asked to present on microformats.&lt;br /&gt;
* 2006-06-08 [[http://glazkov.com/resources/presentations/2006-06-08-microformats/|Microformats]. Dimitri Glazkov talks about Microformats at [[http://ipsaonline.com/|IPSA]] monthly meeting.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Quicktime Broadcaster Notes ==&lt;br /&gt;
&lt;br /&gt;
For setting up a mac laptop with an iSight and QT Broadcaster in order to publish live audio/video from events.&lt;br /&gt;
&lt;br /&gt;
# Make sure you have the necessary equipment and software installed&lt;br /&gt;
#* A Macintosh running OSX 10.3.9 or later&lt;br /&gt;
#* Quicktime 7 - get it from http://www.apple.com/quicktime/&lt;br /&gt;
#* Quicktime Broadcaster - get it from http://www.apple.com/quicktime/broadcaster/&lt;br /&gt;
#* An iSight or digital video camera with firewire connection&lt;br /&gt;
# Get a broadcast template document from someone (see KevinMarks for example)&lt;br /&gt;
# Open that, then change the info in the 'Network' pane that has his name etc in it.&lt;br /&gt;
# Check the video and audio panes are using your iSight&lt;br /&gt;
# Another tip is that the standalone thingy for the iSight can be more useful than the screen-top one if you have a desk, as that way it picks up less typing noise and wobbles&lt;br /&gt;
# I find plugging in headphones is a good idea, as you can then monitor and not get howlround&lt;br /&gt;
&lt;br /&gt;
http://microformats.org/media/broadcast.mov&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=DimitriGlazkov&amp;diff=31774</id>
		<title>DimitriGlazkov</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=DimitriGlazkov&amp;diff=31774"/>
		<updated>2006-03-22T21:48:45Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[User:DimitriGlazkov]]&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=DimitriGlazkov&amp;diff=5488</id>
		<title>DimitriGlazkov</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=DimitriGlazkov&amp;diff=5488"/>
		<updated>2006-03-22T21:48:05Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://glazkov.com/ Dimitri Glazkov]&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=hatom-issues&amp;diff=5508</id>
		<title>hatom-issues</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=hatom-issues&amp;diff=5508"/>
		<updated>2006-03-22T21:46:27Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: /* Entry Author (atom:author) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt; hAtom issues &amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page documents the issues that have been raised regarding the [[hatom|hAtom]] draft during the course of its development, and the resolutions of those issues (often with accompanying opinions).&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Contributors ==&lt;br /&gt;
* Danny Ayers&lt;br /&gt;
* Robert Bachmann&lt;br /&gt;
* Paul Bryson&lt;br /&gt;
* Benjamin Carlyle&lt;br /&gt;
* Chris Casciano&lt;br /&gt;
* Tantek Çelik&lt;br /&gt;
* David Janes&lt;br /&gt;
* Ryan King&lt;br /&gt;
* Kevin Marks&lt;br /&gt;
* Scott Reynen&lt;br /&gt;
* Brian&lt;br /&gt;
&lt;br /&gt;
== Feed (atom:feed)==&lt;br /&gt;
&lt;br /&gt;
[[RyanKing]]: '''STATUS: RESOLVED - 'hfeed' and not required (a la [[hcalendar]])''' &lt;br /&gt;
&lt;br /&gt;
=== Initial proposal ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;atomfeed&amp;lt;/code&amp;gt; (or rather, &amp;quot;atom-entry&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
* [[DannyAyers]]: But what does 'feed' mean in the context of a HTML page? Doesn't the &amp;lt;head&amp;gt; element cover the corresponding semantics?&lt;br /&gt;
* [[DavidJanes]]: It is possible, somewhat common, and [[blog-post-examples#Multiple_EntryGroups_on_a_page|documented]], that multiple feeds can appear on a single page, so it's insufficient to depend on the header, even though this may be the default case. You'll note that I've left out documenting a lot of concepts relating to feeds at a conceptual level, except for noting they exist because I think this is a bit of a swamp that's going to need more thinking&lt;br /&gt;
* [[DavidJanes]]: I'm going to more explicitly recognize that the XHTML document ''may'' act as an implicit feed in many cases&lt;br /&gt;
* [[DavidJanes]]: A Feed is a group of related Entries; what defines the relationship is entirely up to the author of the blog, except to note that if they were to place them together in the same Atom syndication feed, you'd do the same in the XHTML&lt;br /&gt;
* [[User:DrErnie|Dr. Ernie]] 16:59, 25 Oct 2005 (PDT): This makes sense to me, the way vcalendar is optional since vevent is usually sufficient.&lt;br /&gt;
* [[Tantek]]: Ernie is precisely correct. The vevent/vcalendar :: entry/feed analogy is precisely correct.&lt;br /&gt;
* [[DannyAyers]]: The multi-feed point makes sense, but if this data appears on a regular HTML page the question remains, does &amp;quot;feed&amp;quot; make sense? (Maybe just naming aesthetics again)&lt;br /&gt;
* [[User:DavidJanes|David Janes]] I'm thinking about it more -- I think so, just to split the content of the webpage up (as opposed to blogrolls, headers, footers, etc.) -- &lt;br /&gt;
* [[Tantek]]: Agreed with David. Not only does it make sense, it is a bad idea to consider renaming something like that for &amp;quot;aesthetics&amp;quot;.&lt;br /&gt;
* [[Tantek]]: Per the root-class-name naming practices, we should seriously consider a more &amp;quot;unique&amp;quot; name, e.g. some possibilities:&lt;br /&gt;
** atom-feed&lt;br /&gt;
** hfeed&lt;br /&gt;
&lt;br /&gt;
=== Alternatives ===&lt;br /&gt;
&lt;br /&gt;
The above proposal was not fully accepted and some other possibilities were proposed:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;feed&amp;lt;/code&amp;gt; (Atom consistency)&lt;br /&gt;
* &amp;lt;code&amp;gt;atom-feed&amp;lt;/code&amp;gt; (Atom consistency with prefix)&lt;br /&gt;
* &amp;lt;code&amp;gt;hfeed&amp;lt;/code&amp;gt; (h* uF consistency)&lt;br /&gt;
** +1 DavidJanes&lt;br /&gt;
** +1 Tantek&lt;br /&gt;
** +1 BenjaminCarlyle&lt;br /&gt;
** +1 MarkRickerby&lt;br /&gt;
** +1 DannyAyers&lt;br /&gt;
&lt;br /&gt;
==== Discussion ====&lt;br /&gt;
&lt;br /&gt;
The feed is a root class name of hAtom, similar to &amp;quot;vcalendar&amp;quot; in [[hcalendar|hCalendar]], thus it should be fairly unique, per the root class name [[naming-principles]]. - [[Tantek]]&lt;br /&gt;
&lt;br /&gt;
== Entry (atom:entry) ==&lt;br /&gt;
&lt;br /&gt;
[[RyanKing]]: '''STATUS - RESOLVED - 'hentry' '''&lt;br /&gt;
&lt;br /&gt;
=== Initial Proposal ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;atomentry&amp;lt;/code&amp;gt; (or rather, &amp;quot;atom-entry&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
* [[DannyAyers]]: Why not simply &amp;quot;entry&amp;quot;? The parallel to Atom is clear, but in the context of a Web page, why add the reference? In case maybe you want to try for something approaching a string that won't get confused, my feeling is: forget it. Stick to the local semantics and let the doc-level (or HTML5 div level?) profile attribute disambiguate. Or to put it another way, it's premature to see a need at that point.&lt;br /&gt;
* I ([[User:DavidJanes|David Janes]]) chose the &amp;quot;atom&amp;quot; prefix:&lt;br /&gt;
** to disambiguate; it is just ''too'' likely that &amp;quot;entry&amp;quot; or &amp;quot;feed&amp;quot; would appear on a random webpage in some other context. My preference would be to have a declarative statement in the XHTML header which would render this argument moot, but at this point the community seems cool on the concept.&lt;br /&gt;
** to follow the naming pattern seen in the other compound microformats ([[hCard]], [[hCalendar]], etc.)&lt;br /&gt;
** because Entrys will not be required to be in Feeds (these rules and the reasons where this can happen will be forthcoming), I choose to disambiguate both&lt;br /&gt;
*** I don't like the analogy; I think this is more useful than just Atom, so it should be made generic. [[User:DrErnie|Dr. Ernie]] 16:59, 25 Oct 2005 (PDT)&lt;br /&gt;
*** [[DannyAyers]]:  My point exactly, but it wouldn't be the end of the world if the prefix was there - not really more than aesthetics...&lt;br /&gt;
*** &amp;lt;del&amp;gt;'''STATUS - RESOLVED'''. We're going with &amp;quot;entry&amp;quot;.&amp;lt;/del&amp;gt;&lt;br /&gt;
***  [[Tantek]]: This is actually difficult to consider outside the following issue.  In particular, if &amp;quot;entry&amp;quot; is to serve as a potential root class name (similar to &amp;quot;vevent&amp;quot;, which may be a root of an [[hcalendar|hCalendar]] event, or may be present in the context of a &amp;quot;vcalendar&amp;quot;), then we should strongly consider &amp;quot;uniquifying&amp;quot; it per our root-class-name practices. Possibilities to consider:&lt;br /&gt;
**** atom-entry&lt;br /&gt;
**** hentry&lt;br /&gt;
**** vjournal (from RFC 2445 and thus borrowed in effect from [[hcalendar|hCalendar]])&lt;br /&gt;
&lt;br /&gt;
=== Alternatives ===&lt;br /&gt;
The above proposal was not fully accepted. Other alternatives:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;entry&amp;lt;/code&amp;gt; (Atom consistency)&lt;br /&gt;
** +1 [[MarkRickerby]]&lt;br /&gt;
* &amp;lt;code&amp;gt;atom-entry&amp;lt;/code&amp;gt; (Atom consistency with prefix)&lt;br /&gt;
* &amp;lt;code&amp;gt;hentry&amp;lt;/code&amp;gt; (h* uF consistency)&lt;br /&gt;
** +1 [[DavidJanes]]&lt;br /&gt;
** +1 [[Tantek]]&lt;br /&gt;
** +1 [[BenjaminCarlyle]]&lt;br /&gt;
** +1 [[RyanKing]]&lt;br /&gt;
** +1 [[MarkRickerby]]&lt;br /&gt;
** +1 [[DannyAyers]]&lt;br /&gt;
* &amp;lt;code&amp;gt;vjournal&amp;lt;/code&amp;gt; (reuse from vCalendar/iCalendar RFC 2445/[[hcalendar|hCalendar]])&lt;br /&gt;
** -1 [[RyanKing]] - though its a standard, it doesn't have widespread adoption&lt;br /&gt;
&lt;br /&gt;
==== Discussion ====&lt;br /&gt;
* [[Tantek]]: Since feed is optional in hAtom (thereby implying the context of the entire XHTML document as the feed), similar to how &amp;quot;vcalendar&amp;quot; is optional in hCalendar (thereby implying a vcalendar context for the entire document), the entry can also be a root class name, similar to &amp;quot;vevent&amp;quot; in [[hcalendar|hCalendar]], thus it should be fairly unique, per the root class name [[naming-principles]].&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;If we are deliberately rejecting &amp;quot;vjournal&amp;quot;, then we may want to exclude the entire &amp;quot;vjournal&amp;quot; object (and any vjournal specific properties) from [[hcalendar|hCalendar]] so that we don't accidentally have two blog post microformats.([[RyanKing]] added this to [[hcalendar-issues]])&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Having analyzed the list of vjournal properties and their semantics and compared them with the list of Atom elements and their semantics, I greatly prefer the list and semantics from Atom over vjournal.  Thus I would be ok with excluding vjournal from hCalendar, and pointing folks to use hAtom instead, even in the context of an hCalendar element that would otherwise be outputting vjournal entries.  To that extent, once hAtom has stabilized, we should develop a mapping between vjournal properties and hAtom properties so that hAtom inside an hCalendar could be converted into BEGIN:VJOURNAL...END:VJOURNAL objects in an iCalendar/ics stream, as well as allowing for the opposite, so that one could even use an iCalendar-compliant authoring tool to create hAtom via the journal feature of said tool.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Entry Title (atom:title) ==&lt;br /&gt;
&lt;br /&gt;
[[RyanKing]]: '''STATUS - RESOLVED - going with 'entry-title, to be consistent with 'entry-content' '''&lt;br /&gt;
&lt;br /&gt;
=== proposals ===&lt;br /&gt;
&lt;br /&gt;
The title class is defined by [[hcard|hCard]] to mean &amp;quot;job title&amp;quot;. Possible alternatives include (Please add to list):&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt;, as used by hReview, hCalendar, VJOURNAL&lt;br /&gt;
** [[Tantek]]: Though I agree with the reuse, in this context, it may be confusing for those reading/familiar-with the Atom specification.  We may want to avoid the use of 'summary' entirely within hAtom.&lt;br /&gt;
** -1 [[KevinMarks]] (clashes with atom)&lt;br /&gt;
* &amp;lt;code&amp;gt;Subject&amp;lt;/code&amp;gt;, as used by SMTP email&lt;br /&gt;
** -1 [[RyanKing]] - different semantics, doesn't fit&lt;br /&gt;
* &amp;lt;code&amp;gt;heading&amp;lt;/code&amp;gt;&lt;br /&gt;
** -1 [[RyanKing]] - a replication of &amp;amp;lt;h*&amp;amp;gt; semantics in html&lt;br /&gt;
* &amp;lt;code&amp;gt;entry-title&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;headline&amp;lt;/code&amp;gt;&lt;br /&gt;
** +1 [[Tantek]]&lt;br /&gt;
** +1 [[KevinMarks]], as this is what they are most like in blogposts [[User:Kevin Marks|Kevin Marks]]&lt;br /&gt;
** +1 [[BenjaminCarlyle]], atom:entry/title only&lt;br /&gt;
** +&amp;amp;frac12; [[DavidJanes]], atom:entry/title only&lt;br /&gt;
** +&amp;amp;frac12; [[PaulBryson]], redundant?&lt;br /&gt;
* &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; (Atom consistency)&lt;br /&gt;
** -1 [[Tantek]].  Already defined to mean something else in [[hcard|hCard]].  The same term should not be used to mean different things.&lt;br /&gt;
* &amp;lt;code&amp;gt;entry-title&amp;lt;/code&amp;gt; (Atom consistency, avoid hCard conflict)&lt;br /&gt;
** +&amp;amp;frac12; [[PaulBryson]], clear=good / hyphenating=bad&lt;br /&gt;
* &amp;lt;code&amp;gt;fn&amp;lt;/code&amp;gt; (attempt to re-use from [[hcard|hCard]] and [[hreview|hReview]])&lt;br /&gt;
** &amp;amp;plusmn;0 [[DavidJanes]] see my note below&lt;br /&gt;
** -1 [[Tantek]] (does not mean the &amp;quot;name&amp;quot; of the post/entry)&lt;br /&gt;
** +1 [[BenjaminCarlyle]], atom:feed/title only&lt;br /&gt;
&lt;br /&gt;
=== Discussion ===&lt;br /&gt;
* [[BenjaminCarlyle]]: If one were to review a blog entry with [[hReview]] we would fill out the &amp;quot;fn&amp;quot; field with the atom:entry/title. This suggests to me that fn may be sufficient for this title usage. headline is more semantically specific, and does seem appropriate. It may be a line-ball call as to whether a new term is required, or whether the atom:entry context is sufficient to indicate the fn is also a headline.&lt;br /&gt;
* BenjaminCarlyle: Are we considering atom:feed/title in this discussion? There is some suggestion that atom:title should be &amp;quot;fn&amp;quot;, separate to any value of atom:entry/title.&lt;br /&gt;
* [[DavidJanes]]: [http://www.ietf.org/rfc/rfc2426.txt vcard] defines &amp;quot;FN&amp;quot; to be &amp;quot;to specify the formatted text corresponding to the name of the object the vCard represents&amp;quot;. If we reject FN, are we not making too subtle a distinction that the atom:title isn't the name of the post? I'll also note that the [http://www.ietf.org/rfc/rfc4287 domain experts] believe that the atom:title of an entry is pretty well the same sort of thing as the atom:title of a feed.&lt;br /&gt;
* [[Tantek]]: First, I have re-evaluated using &amp;quot;fn&amp;quot; for feed:title per the information from Benjamin, David and others.  See [http://microformats.org/wiki/blog-post-brainstorming#feed_title this discussion for details].&amp;lt;p&amp;gt;Second, I now agree with DavidJanes and the domain experts that the title of a feed is very similar (if not nearly identical) in semantics to the title of an entry, neither of which can really be considered a name.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;  Thus I am -1-ing &amp;quot;fn&amp;quot; for title for entry or feed since it doesn't mean the same thing.&amp;lt;/p&amp;gt;&lt;br /&gt;
* [[DavidJanes]]: to summarize (I think), Tantek argues on the link above that atom:title can and does include more than the name.&lt;br /&gt;
* [[DavidJanes]]: we're now at the point where FN is the title of a movie, a DVD, and a book, but not the atom:title of an entry and definitely not the atom:title of a feed.&lt;br /&gt;
* [[BenjaminCarlyle]]: Entry and feed titles are both usually used as the name of the entry of feed, however examples exist where the entry title is [http://planet.freedesktop.org/ changed for republication] or is an auto-generated string (eg [http://www.advogato.org/person/cinamod/ date]). Headline is a good substitute at the entry level, and has a clear analogue in print. &amp;lt;p&amp;gt;If headline is selected for entry a different term would be required for feed. Headline cannot meaningfully be used for a feed title any more than the name of a newspaper can be called a headline. Working back from the newspaper analogue, I am aware of the use of both name or title to describe the analogous text. In the absence of evidence that a feed's desired title is ever anything but a human-created name for the blog, my support falls behind fn for feed title only. The danger remains that someone will supply non-name data as &amp;quot;fn&amp;quot; in order to &amp;quot;get it into the atom:title element&amp;quot;. For this reason I remain open to further naming suggestions and to any example in the wild where this might already occur.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;There has been some discussion that because the two are a single term in atom the domain experts consider the semantics to be the same. I suggest differently. The double use of title is inherited from rss, and has always been disambiguated by context. rfc4287 defines title as &amp;quot;a Text construct that conveys a human-readable title for an entry or feed&amp;quot;, which conveys no useful semantics. Everything in a microformat is human-readable, and it isn't suprising that the semantics of title are equivalent to &amp;quot;title&amp;quot;. To be honest, I would guess that the domain experts didn't give this issue a second thought.&amp;lt;/p&amp;gt;&lt;br /&gt;
* [[DavidJanes]]: '''RESOLVED''' Let's go with &amp;quot;headline&amp;quot;. I'm not in love with it but so it goes. My thinking on this at this point is we won't find a good word that covers atom:entry/title and atom:feed/title and I like the idea of a (somewhat) domain specific word that captures the concept and (especially a big point for me now) it will make mixing hAtom with other uFs a little nicer.&lt;br /&gt;
* [[PaulBryson]]: I like entry-title for it's clarity.  Unfortunately, I also feel that hyphenating names together in a string adds unnecessary complexity.  In this case, it also adds a specificity that could be detrimental in the element's reuse.  Headline feels redundant with &amp;quot;heading&amp;quot;, which is what the element should be.  Regardless, this is probably the best of the available choices.&lt;br /&gt;
&lt;br /&gt;
== Entry Content (atom:content) ==&lt;br /&gt;
&lt;br /&gt;
'''STATUS - RESOLVED going with entry-content'''&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;content&amp;lt;/code&amp;gt; (Atom consistency)&lt;br /&gt;
** -1 [[Tantek]]&lt;br /&gt;
** +1 [[DavidJanes]]&lt;br /&gt;
** +1 [[BenjaminCarlyle]]&lt;br /&gt;
** +1 [[RyanKing]]&lt;br /&gt;
** -1 [[ChrisCasciano]]&lt;br /&gt;
** -1 KevinMarks - already too many in the wild&lt;br /&gt;
* &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; (vCalendar, hCalendar, xFolk, hReview attempted consistency)&lt;br /&gt;
** -1 [[RyanKing]] - content has a different meaning in Atom than description in vCalendar, hCalendar, xFolk, hReview, we should avoid the confusion&lt;br /&gt;
** -1 Tantek - agreed with Ryan&lt;br /&gt;
** -1 KevinMarks&lt;br /&gt;
* &amp;lt;code&amp;gt;entry-content&amp;lt;/code&amp;gt;&lt;br /&gt;
** +1 Niall Kennedy (proposed)&lt;br /&gt;
** +0.5 [[Tantek]]&lt;br /&gt;
** +1 KevinMarks&lt;br /&gt;
** +1 [[ChrisCasciano]]&lt;br /&gt;
* &amp;lt;code&amp;gt;atom-content&amp;lt;/code&amp;gt;&lt;br /&gt;
** +0.5 [[Tantek]]&lt;br /&gt;
* &amp;lt;code&amp;gt;hcontent&amp;lt;/code&amp;gt;&lt;br /&gt;
** -1 [[Tantek]] - so far [http://microformats.org/wiki/hatom-issues#Entry_Published_.28atom:published.29 all the &amp;quot;h...&amp;quot; class names reflect root class names] and this may be a useful convention to continue even if it is not a requirement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Discussion ===&lt;br /&gt;
* [[Tantek]] - It turns out there is actually a very fine semantic distinction between the way &amp;quot;description&amp;quot; is used in vCalendar, hCalendar, xFolk, hReview, and what &amp;quot;content&amp;quot; means.  In short, those other microformats are all &amp;quot;about&amp;quot; something else, whether an actual event in spacetime, or another item.  Whereas in hAtom is the thing itself.  The feed is the data is the item.  Thus it makes sense use a different class name than &amp;quot;description&amp;quot;.  Based on our [[naming-principles]], lacking an existing microformat term for this, we should use a term from a standard.  Since Atom uses &amp;quot;content&amp;quot;, that is the logical name to bring over and use, whether or not it is &amp;quot;perfect&amp;quot; to capture the semantic we are trying to capture.&lt;br /&gt;
* [[BenjaminCarlyle]]: We may also have to consider forms of blogs that carry other media. An &amp;amp;lt;a rel=&amp;quot;content&amp;quot; href=&amp;quot;...&amp;quot;/&amp;amp;gt; form of content may also have to be considered, although this could still be embedded in a very short html content block. I'm not quite ready to commit to &amp;quot;content&amp;quot; yet, but I agree that description may be a little weak.&lt;br /&gt;
* [[ChrisCasciano]] - I'd be a bit cautious about equating usage of the content class in the wild with the specific usage you'd adopt here -- that of the content of a particular item or entry. As a deveoper I know I've used the term content to designate larger page sections or as synonym for content body (or that which is not header, nav or footer). In most cases my usage has been via ID which is safe (though perhaps confusing usages of similar terms) but I'm certain I've also used it as a class to free up ID for more specific information on larger sites.&lt;br /&gt;
* [[Tantek]]: Chris Casciano is right.  Not only that, but note the [http://code.google.com/webstats/2005-12/classes.html Google HTML survey] of about a billion documents found that many web authors use &amp;quot;content&amp;quot; as a class name already, for whatever purpose they are intending.  I have changed my vote to -1 for &amp;quot;content&amp;quot;.&lt;br /&gt;
* [[Tantek]]: I have added a few proposed alternatives based on discussions with various folks.  I also checked [http://thesaurus.reference.com/search?q=content synonyms for content] but didn't find anything worth proposing.  I have split my vote among the new alternatives for now.&lt;br /&gt;
* [[ChrisCasciano]] - added hcontent per irc conversation a few nights ago. Not necessarily my favorite, but it should probably be on the table for discussion.&lt;br /&gt;
* [[KevinMarks]]  - I think entry-content is OK  - if we go by existing practice in blogs, post-body or post are common.&lt;br /&gt;
* [[ChrisCasciano]]  - I'm behind entry-content as the least bad choice I've thought over.. atom-content doesn't 'read' generic enough for my tastes ('is it content for the page, or something just for atom export')&lt;br /&gt;
&lt;br /&gt;
== Entry Summary (atom:summary) ==&lt;br /&gt;
&lt;br /&gt;
'''STATUS - RESOLVED - going with 'entry-summary''''&lt;br /&gt;
&lt;br /&gt;
The summary class is defined by vCalendar, iCalendar, [[hcalendar|hCalendar]], and also [[hreview|hReview]], to mean &amp;quot;summary or title&amp;quot;. Possible alternatives include (add to list):&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, as used by VJOURNAL. It may be possible to interpret description as text longer than summary which is about the entry content. The hierarchy of detail would be summary (atom:title) -&amp;gt; description (atom:summary) -&amp;gt; content (atom:content)&lt;br /&gt;
** [[User:Kevin Marks|Kevin Marks]]: description is used ambiguously by RSS to mean 'content' or 'summary', and by hReview and hCalendar to mean 'content'. Doing this would recreate that ambiguity needlessly, when Atom distinguishes it clearly.  &lt;br /&gt;
** [[Tantek]]: Kevin's right, and not only that, &amp;quot;description&amp;quot; does NOT mean summary in VJOURNAL.  &amp;quot;description&amp;quot; means &amp;quot;full description&amp;quot; in vCalendar, iCalendar, [[hCalendar]], and also [[hReview]]. We must NOT use &amp;quot;description&amp;quot; to mean summary.&lt;br /&gt;
* &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; (re-use from and consistency with Atom)&lt;br /&gt;
* &amp;lt;code&amp;gt;content-summary&amp;lt;/code&amp;gt; (Atom consistency avoiding hCalendar conflict)&lt;br /&gt;
* &amp;lt;code&amp;gt;partial-description&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;excerpt&amp;lt;/code&amp;gt;&lt;br /&gt;
** +1 Tantek&lt;br /&gt;
** +1 BenjaminCarlyle&lt;br /&gt;
** +1 DavidJanes, my only concern being that they're not always excerpts&lt;br /&gt;
* &amp;lt;code&amp;gt;abstract&amp;lt;/code&amp;gt;&lt;br /&gt;
** +1 KevinMarks&lt;br /&gt;
** +1 Ernest Prabhakar: this is what my blog software calls it, and how I use it in my own blogs&lt;br /&gt;
&lt;br /&gt;
=== Discussion ===&lt;br /&gt;
* [[Tantek]]: Excerpt is by far the most frequent (&amp;gt;80%) use of summary, thus it makes sense to name it as such.&lt;br /&gt;
* [[User:Kevin Marks|Kevin Marks]]: Disagree - Atom allows summary to be distinct from content, though this is less usual. However, by using a class that means summary (eg abstract) we can convey an excerpt by making  it wholly within 'atom:content', or a separate abstract by putting it within the entry but not within 'content'&lt;br /&gt;
* [[BenjaminCarlyle]]: I have been trying to convince myself that atom:summary differs semantically from iCalendar summary. The &amp;quot;summary or subject&amp;quot; wording from rfc2445 is problematic, and it seems earlier microformats have taken the &amp;quot;subject&amp;quot; side. If we were to start from rfc2445 alone we might go the other way. In the end, though, webster.com defines summary as &amp;quot;covering the main points succinctly&amp;quot;. atom:summary is not really consistent with that definition, so I'll swing my weight behind excerpt. On the subject of abstract, I think the semantics are such that &amp;quot;abstract&amp;quot; and &amp;quot;exerpt&amp;quot; are distinct (non-overlapping) sets. webster.com defines abstract as &amp;quot;a summary of points (as of a writing) usually presented in skeletal form&amp;quot;. An exerpt is not a summary of points, and a summary of points is not an excerpt. I think tantek is simply suggesting that the 80% win in this case.&lt;br /&gt;
* [[Tantek]]: Benjamin is correct.  The vast majority (easily 80%+) of summaries in Atom, when they exist are excerpts. &amp;lt;p&amp;gt;In addition:&amp;lt;/p&amp;gt;&lt;br /&gt;
** WordPress user interface calls it &amp;quot;excerpt&amp;quot;&lt;br /&gt;
** MovableType user interface calls it &amp;quot;excerpt&amp;quot;&lt;br /&gt;
*: Thus, based on the principle of user-centered design (an instance of humans first, machines second) as well, in that a user *typing* into the &amp;quot;Excerpt:&amp;quot; field in the UI of their blogging tool, is communicating to the interface that &amp;quot;This is the ''excerpt'' of my blog post&amp;quot;, &amp;quot;excerpt&amp;quot; is actually a ''BETTER'' name for this element than summary, or anything else for that matter.  Atom should have chosen &amp;quot;excerpt&amp;quot; as well based on this reason alone.&lt;br /&gt;
* [[ScottReynen]]: I think there's a chance Tantek is mistaking cause and effect. Perhaps &amp;gt;80% of summaries are excerpts ''because'' two of the most popular publishing tools label the summaries as excerpts. Maybe we should be more sure WordPress and Movable type aren't actually confusing authors by using excerpt before following those examples.&lt;br /&gt;
* [[ChrisCasciano]]: The Textpattern interface also calls this field an excerpt.&lt;br /&gt;
&lt;br /&gt;
== Entry Permalink (atom:link) ==&lt;br /&gt;
&lt;br /&gt;
'''STATUS - RESOLVED - 'bookmark' '''&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;rel=&amp;quot;bookmark&amp;quot;&amp;lt;/code&amp;gt; (HTML consitency)&lt;br /&gt;
** +2 DavidJanes&lt;br /&gt;
** +1 Tantek&lt;br /&gt;
** +1 BenjaminCarlyle&lt;br /&gt;
** +1 KevinMarks&lt;br /&gt;
&lt;br /&gt;
=== Discussion ===&lt;br /&gt;
* [[KevinMarks]]: I know this maps through to the atom name, but rel=&amp;quot;bookmark&amp;quot; is the established standard for permalinks, and is included in the [http://www.w3.org/TR/html401/types.html#type-links| w3c list of rel's], so there is an Occam's Razor case for using this.&lt;br /&gt;
* [[DavidJanes]]: I'd like input from everyone in this -- I'm torn really. Once I knock this thing into more of a complete state, I'll throw this out onto the mailing list for discussion&lt;br /&gt;
* [[DavidJanes]] Also, &amp;quot;link&amp;quot; is horribly generic and is in fact modified through the &amp;quot;rel&amp;quot; attribute in Atom.&lt;br /&gt;
* [[Tantek]]: Agreed with what Kevin wrote.  Also, rel=&amp;quot;link&amp;quot; doesn't actually make sense when you do the analysis as described in the [[rel-faq]].  The destination of the link is not really a &amp;quot;link&amp;quot; itself with respect to the current document/file.&lt;br /&gt;
* [[User:DavidJanes|David Janes]]: OK, I'm happy with this.'''STATUS - RESOLVED'''. We are using &amp;lt;code&amp;gt;rel=&amp;quot;bookmark&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* [[BenjaminCarlyle]]: No real controversy here, unless you want to start giving blog entries or feeds vcards. A vcard could contain entry or feed title as fn, as well as url.&lt;br /&gt;
**  [[RyanKing]] non-issue, you can always use both.&lt;br /&gt;
&lt;br /&gt;
== Entry Published (atom:published) ==&lt;br /&gt;
* &amp;lt;code&amp;gt;published&amp;lt;/code&amp;gt; (Atom consistency)&lt;br /&gt;
** +0.5 [[Tantek]]&lt;br /&gt;
** +1 [[DavidJanes]]&lt;br /&gt;
** +1 [[BenjaminCarlyle]]&lt;br /&gt;
* &amp;lt;code&amp;gt;dtpublished&amp;lt;/code&amp;gt; (Atom consistency with [http://microformats.org/wiki/naming-principles#dt_properties dt unofficial pattern])&lt;br /&gt;
** +0.5 [[Tantek]] (want to consider it, while we can)&lt;br /&gt;
* &amp;lt;code&amp;gt;VJOURNAL CREATED&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Discussion ===&lt;br /&gt;
* [[BenjaminCarlyle]]: I would still like to see a clear engagement with [[last-modified-brainstorming|last-modified]] before voting on this one.&lt;br /&gt;
* [[Tantek]]: last-modified reflects the last time the page/file was actually modified, most likely by the user.  IMHO it is a 1:1 mapping of the &amp;quot;Date Modified&amp;quot; of a file in a file system.  It is a direct mapping of what date is shown for HTTP directory listings.&amp;lt;p&amp;gt;published is defined in Atom quite differently from that, and among the alternatives it seems best to take the name from Atom precisely.&amp;lt;/p&amp;gt;&lt;br /&gt;
* [[BenjaminCarlyle]]: From the [[last-modified-brainstorming]] purpose statement, emphasis added. &amp;quot;To specify the date of publication and the date of modification of a web page (&amp;lt;em&amp;gt;or a part thereof&amp;lt;/em&amp;gt;)&amp;quot;&lt;br /&gt;
* [[Tantek]]: Note that Atom chose to drop &amp;quot;created&amp;quot; which is much more reflective of what current file systems etc. support.&amp;lt;p&amp;gt;The concept of &amp;quot;published&amp;quot; is distinct from a generic &amp;quot;created&amp;quot; notion, in that it indicates when the content was made public or made available to readers (even on intranets) which is often very different than when the author started typing the entry or even first saved the entry.&amp;lt;/p&amp;gt;&lt;br /&gt;
* [[DavidJanes]]: It's simple, it's clear, it's not being used it's not being used already. We can make [[last-modified-brainstorming|last-modified]] consistent afterwards&lt;br /&gt;
* [[RyanKing]]: I'm a bit wary of using someing so generic as 'published' for this. I need to go back throught [[blog-post-examples]] to see what conventions we have.&lt;br /&gt;
* [[Tantek]]: I have the same concerns as Ryan, and in addition, it may be useful from a parsing perspective to adopt a [http://microformats.org/wiki/naming-principles#dt_properties dt prefix convention] for ISO8601 typed properties.&lt;br /&gt;
&lt;br /&gt;
== Entry Updated (atom:updated) ==&lt;br /&gt;
&lt;br /&gt;
'''STATUS - RESOLVED - 'updated''''&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;updated&amp;lt;/code&amp;gt; (Atom consistency)&lt;br /&gt;
** +1 Tantek&lt;br /&gt;
** +1 DavidJanes&lt;br /&gt;
* &amp;lt;code&amp;gt;dtupdated&amp;lt;/code&amp;gt; (Atom consistency with [http://microformats.org/wiki/naming-principles#dt_properties dt unofficial pattern])&lt;br /&gt;
** +&amp;amp;frac12; Paul Bryson, Not as human readable&lt;br /&gt;
** +0.5 [[Tantek]] (want to consider it, while we can)&lt;br /&gt;
* &amp;lt;code&amp;gt;last-modified&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;VJOURNAL LAST-MODIFIED&amp;lt;/code&amp;gt; (also HTTP)&lt;br /&gt;
** dtstamp&lt;br /&gt;
** dtupdated&lt;br /&gt;
&lt;br /&gt;
=== Discussion ===&lt;br /&gt;
* [[PaulBryson]]: I would prefer to maintain some consistency with already existing date naming conventions, but acknowledge that these aren't as clearly human readable as they could be.&lt;br /&gt;
* [[BenjaminCarlyle]]: I would still like to see a clear engagement with [[last-modified-brainstorming|last-modified]] before voting on this one.&lt;br /&gt;
* [[Tantek]]: See discussion for published.  Updated is closer to last-modified than published is, however, upon careful reading of the definition of updated in Atom, it is clear that the user has the option of not changing the updated date even if they change the entry, e.g. by fixing a spelling error or something.  Thus there is an implied stronger meaning of &amp;quot;this entry has been semantically changed&amp;quot; that is a different enough semantic from last-modified as to justify a new name, and among the alternatives it seems best to take the name from Atom precisely.&lt;br /&gt;
* [[BenjaminCarlyle]]: From [[last-modified-brainstorming]] semantics:&amp;lt;p&amp;gt;&amp;quot;Since both Atom and HTTP define the last-modified date (or its equivalent) as a &amp;quot;user-defined&amp;quot; value, this microformat should have the same semantics. In other words, the value should represent the last instance that the resource was changed in a way deemed significant to the publisher/author, which is not neccessarily the same as a file-system modified date-time.&amp;quot;&amp;lt;/p&amp;gt;&lt;br /&gt;
* [[Tantek]]: They are both user defined values but *different* user defined values. &amp;lt;p&amp;gt;It is VERY important to note this distinction because Atom chose to note it.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;In the 99% case, file-system, web-server (HTTP) context, the last-modified date reflects the last time the *user* modified the file or page, WITHOUT consideration for whether or not the user wanted that change to reflect a change in the last-modified date.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Atom specifically allows for the exception that a user might not update the &amp;quot;updated&amp;quot; date, even when they change the underlying blog post, spelling corrections or whatever.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;This is in stark contrast to the traditional application model, where in a word processor, even if you change one character and save, you change the file system last-modified date, and hence the HTTP last-modified headers.&amp;lt;/p&amp;gt;&lt;br /&gt;
* [[DavidJanes]]:  we can make [[last-modified-brainstorming|last-modified]] consistent afterwards&lt;br /&gt;
go back throught [[blog-post-examples]] to see what conventions we have.&lt;br /&gt;
* [[Tantek]]: Similar to comments on &amp;quot;published&amp;quot;, it may be useful from a parsing perspective to adopt a [http://microformats.org/wiki/naming-principles#dt_properties dt prefix convention] for ISO8601 typed properties.&lt;br /&gt;
&lt;br /&gt;
== Entry Author (atom:author) ==&lt;br /&gt;
&lt;br /&gt;
'''STATUS - RESOLVED - 'author' required, should use &amp;lt;code&amp;gt;&amp;amp;lt;address&amp;amp;gt;&amp;lt;/code&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; (Atom consistency)&lt;br /&gt;
** +1 [[Tantek]]&lt;br /&gt;
** +1 [[BenjaminCarlyle]]&lt;br /&gt;
&lt;br /&gt;
=== Discussion ===&lt;br /&gt;
* [[BenjaminCarlyle]]: I think an author concept is generally useful to microformats, so long as you can make it clear whether it is the author of the uf wrapper or the author of the uf content that is being described. I think any wavering over whether author and contributor are both required is probably a step outside the atom specification. This may be worthwhile, with an xfn-style external definition that could relate a person to a work... or even a rel-tag-based relationship. Can room be left open for both of these possibilities for future expansion, while still providing a clear author -&amp;gt; atom:author translation?&lt;br /&gt;
* [[Tantek]]: My point is that in practice (&amp;gt;80% case again), contributor is not used.  Thus we should exclude it from hAtom in the first version.  However, I am ok with ''reserving'' contributor with the intent that if it does somehow take off, we can add it later.&lt;br /&gt;
* [[RyanKing]] is &amp;amp;lt;address&amp;amp;gt; not sufficient for 'author' semantics?&lt;br /&gt;
* [[DimitriGlazkov]] I don't believe it is. The author of the feed and the author of the page (which is what &amp;amp;lt;address&amp;amp;gt; implies could be two different things. I just ran into this problem when trying to mark up a feed inside of a [http://fuzzycontent.com/index.php/2006/03/14/context-wants-to-be-free-too/ post].&lt;br /&gt;
&lt;br /&gt;
== Entry Contributor (atom:contributor) ==&lt;br /&gt;
** -1 Tantek (see Discussion)&lt;br /&gt;
* &amp;lt;code&amp;gt;contributor&amp;lt;/code&amp;gt; (Atom consistency)&lt;br /&gt;
** +1 Tantek&lt;br /&gt;
** +1 DavidJanes&lt;br /&gt;
&lt;br /&gt;
=== Discussion ===&lt;br /&gt;
* [[Tantek]]: I recommend we postpone contributor from hAtom first version (thus the -1 before any choices), since the 80% case does not need &amp;quot;contributor&amp;quot;.  We should reserve the name so we can add it later if we need it (thus the +1 on &amp;quot;contributor&amp;quot;).&lt;br /&gt;
* [[DavidJanes]]: '''RESOLUTION: DEFERRED'''&lt;br /&gt;
&lt;br /&gt;
== Entry Geo (geo:Point) ==&lt;br /&gt;
* [[Brian]]: GeoRSS is away to embed geo-position information into an entry, it is NOT part of Atom nor is this directly part of hAtom. This is an addition that can add value to a post. Microformats has already defined a way to add [[geo]] position data into HTML it is possible to combine the two in a single entry.&lt;br /&gt;
&lt;br /&gt;
=== GeoRSS Resources ===&lt;br /&gt;
* [[Brian]]: [[http://www.georss.org/ GeoRSS]]&lt;br /&gt;
* [[Brian]]: [[http://radar.oreilly.com/archives/2006/02/google_maps_extension_for_geor.html Google Maps Extension for GeoRSS]]&lt;br /&gt;
&lt;br /&gt;
== Questions and Comments ==&lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
* There seems to be nothing in the hAtom specification to supply metadata for the blog (title, description, url, feedurl). There is nothing defined for the encapsulation of comments, comment counts, or links to comment sections. The microformat would be much more useful with these capabilities added.-- [[User:Singpolyma|singpolyma]] 03:35, 3 Jan 2006 (PST)&lt;br /&gt;
** We've deliberately restricted this to being a &amp;quot;blog post&amp;quot; microformat at this point to make the problem manageable. Once the core elements are defined, we will consider extended the spec to cover as much as Atom does. Also note that microformats are compositable, thus, all these things could potentially be defined elsewhere with detriment to this standard. -- [[DavidJanes]]&lt;br /&gt;
** [[RyanKing]]: '''STATUS:DEFERRED/REJECTED''': As David says, our scope is limited. After we can establish the core specification of hAtom, we'll look at adding more properties.&lt;br /&gt;
&lt;br /&gt;
=== Relationship to hReview definitions needs clarification ===&lt;br /&gt;
[DavidJanes?] hAtom will define terminology for the general act of publication that overlaps with hReview's terminology for the specific act of publishing a review of something. The following terms could be pushed back into hReview:&lt;br /&gt;
&lt;br /&gt;
* atom:published -&amp;gt; hReview dtreviewed&lt;br /&gt;
* atom:author    -&amp;gt; hReview reviewer&lt;br /&gt;
&lt;br /&gt;
[[Tantek]]: &amp;quot;Pushed back&amp;quot; is the wrong direction here.&lt;br /&gt;
&lt;br /&gt;
The right direction is &amp;quot;re-use&amp;quot; by new proposals/drafts.  If you see anything in hReview that appears to overlap this new specification, the first thing to do is to see if you can reuse those terms from hReview in this new specification, not vice versa.&lt;br /&gt;
&lt;br /&gt;
In addition, &amp;quot;published&amp;quot; does not mean the same as &amp;quot;dtreviewed&amp;quot; (you might write a restaurant review just after you eat there, but not actually &amp;quot;publish&amp;quot; it until later).  &amp;quot;reviewer&amp;quot; is also a more precise semantic than &amp;quot;author&amp;quot;, thus the two should not be collapsed.&lt;br /&gt;
&lt;br /&gt;
=== hCards ===&lt;br /&gt;
&lt;br /&gt;
[[DavidJanes]]: Should hCards be required for the &amp;lt;code&amp;gt;&amp;amp;lt;address&amp;gt;&amp;lt;/code&amp;gt; of the Entry Poster? MAY, MUST, SHOULD? Your thoughts please.&lt;br /&gt;
&lt;br /&gt;
RESOLVED: MUST use hCard for author.&lt;br /&gt;
&lt;br /&gt;
* [[User:RobertBachmann|Robert Bachmann]]: “MUST” or at least “SHOULD” because atom:author is specified as &amp;quot;The 'atom:author' element is a Person construct that indicates the author of the entry or feed.&amp;quot; and &amp;lt;code&amp;gt;&amp;amp;lt;address&amp;amp;gt;&amp;lt;/code&amp;gt;’s semantics are too loose to describe [http://atompub.org/2005/08/17/draft-ietf-atompub-format-11.html#rfc.section.3.2 an Atom person construct] but using &amp;lt;code&amp;gt;&amp;amp;lt;address class=&amp;quot;vcard&amp;quot;&amp;amp;gt;&amp;lt;/code&amp;gt; we would have pretty good 1:1 mappings:&lt;br /&gt;
** atom:name &amp;amp;harr; hCard’s FN&lt;br /&gt;
** atom:email &amp;amp;harr; hCard’s EMAIL&lt;br /&gt;
** atom:uri &amp;amp;harr; hCard’s URI&lt;br /&gt;
* '''STATUS - OPEN'''. &amp;quot;MAY&amp;quot; is the answer.&lt;br /&gt;
* [[Tantek]]: I think this should be MUST.  Atom should have referenced vCard for these semantics and made the mistake of making up their own terms.  Let's undo that mistake with hAtom.  Also, [[hreview|hReview]] 0.3 has made hCard a MUST for the &amp;quot;reviewer&amp;quot; property, based on experience and [[hreview-feedback|feedback]].  Thus we may want to just follow suit with hAtom as well.&lt;br /&gt;
* [[DavidJanes]]: I had based the behavior on hReview 0.2. The problem is getting meaningful information into the blog templates and also I would appeal to parsimony, that is:&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;div class=&amp;quot;author&amp;quot;&amp;gt;bonehead&amp;lt;/div&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;p&amp;gt;has an assumed defined mapping to&amp;lt;/p&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;div class=&amp;quot;author vcard&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fn&amp;quot;&amp;gt;bonehead&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;p&amp;gt;Since in many cases we're not going to get much more information than that, why add the verbosity? I note an analogous situation in hCard, where N.* are not required because they can be inferred algorithmically.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Comparisons ===&lt;br /&gt;
&lt;br /&gt;
This seems precisely analogous to [http://www.meyerweb.com/eric/tools/s5/xoxo-structure-ref.html S5]:&lt;br /&gt;
* atomentry &amp;lt;-&amp;gt; slide&lt;br /&gt;
* content &amp;lt;-&amp;gt; slidecontent&lt;br /&gt;
* summary &amp;lt;-&amp;gt; handout&lt;br /&gt;
I'm all for NOT boiling the ocean, but these really seem like the same cup of tea.&lt;br /&gt;
&lt;br /&gt;
--[[Ernie Prabhakar]]&lt;br /&gt;
&lt;br /&gt;
* [[User:DavidJanes|David Janes]]: See the [[#Purpose]] section above. Basically that drove the design decision for the naming&amp;lt;p&amp;gt;'''STATUS - REJECTED'''. We're sticking with atom terminology (entry, content, summary).&amp;lt;/p&amp;gt;&lt;br /&gt;
* [[Tantek]]: As far as the analogy to S5, yes, there is an analogy, but that doesn't make them the same.  The semantics that are represented are different enough to let these evolve independently and see if content authors want them to converge or not.  Note that you can overlay hAtom and S5 in the same markup.  Anyone that is serious about converging these should *try* using both at the same time in a *real* slide presentation example and report back their experience.&lt;br /&gt;
&lt;br /&gt;
=== Repeated Elements ===&lt;br /&gt;
We allow certain elements to be repeated, such as Entry Permalink, Entry Published and Entry Title, even though there can be at most one real value. We provide &amp;quot;disambiguation&amp;quot; rules for sorting out which is the real value. See [[hatom#Nesting_Rules|here]], [[hatom#Entry_Title|here]], [[hatom#Entry_Permalink|here]] and [[hatom#Entry_Published|here]].&lt;br /&gt;
&lt;br /&gt;
Your thoughts please... -- [[User:DavidJanes|David Janes]]&lt;br /&gt;
&lt;br /&gt;
'''STATUS - RESOLVED'''. The spec has explicit rules for disambiguating all these items if they appear multiple times.&lt;br /&gt;
&lt;br /&gt;
=== Opaqueness ===&lt;br /&gt;
If you have concerns about [[hatom#hAtom_Opaque|opaqueness]], that is, stopping interpretation below certain hAtom elements, raise them here.&lt;br /&gt;
&lt;br /&gt;
==== Opaqueness of other microformat elements ====&lt;br /&gt;
How would we handle a case where someone wanted to provide a vcard under the class~=entry element for an individual who was neither author or contributor? Consider the hypothetical case where someone wanted to list their &amp;quot;muse&amp;quot; alongside article author and contributors. If this vcard included a title it might be included accidentally as an &amp;lt;atom:title&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To summarise,&lt;br /&gt;
Is it possible that other microformats found under the class~=entry or class~=feed elements need to be considered opaque?&lt;br /&gt;
&lt;br /&gt;
-- [[BenjaminCarlyle]]&lt;br /&gt;
&lt;br /&gt;
* [[User:DavidJanes|David Janes]]: The issue of &amp;quot;muse&amp;quot; and such is somewhat out of scope. However, I grasp your larger point -- what if we wanted to extend or compositie hAtom in the future. Given the 80-20 rule right now, my feeling is to set aside the problem and if it arises, define a &amp;lt;code&amp;gt;class~=&amp;quot;opaque&amp;quot;&amp;lt;/code&amp;gt; element. -- &lt;br /&gt;
* [[Tantek]]: See the [[mfo-examples]] document, and add further thoughts on this matter there.&lt;br /&gt;
&lt;br /&gt;
==== Opaqueness of summary and content ====&lt;br /&gt;
[[DavidJanes]]?: What one publisher considers the entry content may differ from another publisher's point of view. Is the content simply a div that does not contain any author/updated/published metadata etc, or could some of that metadata be relevant to the content as well as the entry? Consider updated. [[last-modified-brainstorming]] introduces an idea of using &amp;lt;code&amp;gt;&amp;amp;lt;ins&amp;amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;amp;lt;del&amp;amp;gt;&amp;lt;/code&amp;gt; elements to indicate update time. Updates are also often included in entry content with further information. This suggests to me that the line of opaqueness is blurry.&lt;br /&gt;
&lt;br /&gt;
Perhaps content and summary should not be opaque, and instead rely on the [[mfo]] proposal to avoid parsing into microformats below the content level. This approach would allow a single div to contain both &amp;quot;entry&amp;quot; and &amp;quot;content&amp;quot; classes should all metadata be considered content by the author, or would permit any other subset of the metadata to be considered content without repeating one's self.&lt;br /&gt;
&lt;br /&gt;
Consider also the &amp;quot;read more&amp;quot;-style blog. The following nesting of div elements is illegal under current opacity rules:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;amp;lt;div class=&amp;quot;content&amp;quot;&amp;gt;&amp;amp;lt;div class=&amp;quot;summary&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;...&amp;lt;/div&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A further example is provided by _fil_ on #microformats, who uses the rel-tag microformat within his atom:content to be handled as tags in his feed reader.&lt;br /&gt;
&lt;br /&gt;
=== Identification ===&lt;br /&gt;
The current spec under Schema:Nomenclature:Entry includes the text:&lt;br /&gt;
&amp;quot;if practical, also define id=&amp;quot;unique-identifier&amp;quot; to the Entry&amp;quot;&lt;br /&gt;
What should be done with this id by parsers? How does this interact (if at all) with the interpretation of a rel=bookmark within the entry?&lt;br /&gt;
&lt;br /&gt;
Also, how should a feed &amp;lt;id&amp;gt; element be filled out from a hAtom source document? Is a rel=bookmark at the feed level required?&lt;br /&gt;
&lt;br /&gt;
The id elements in atom are supposed to survive all future movements of the blog to new hosting arrangements and the like. Are current feed URLs or even rel=bookmarks solid enough?&lt;br /&gt;
&lt;br /&gt;
'''STATUS - OPEN'''.&lt;br /&gt;
&lt;br /&gt;
=== HTML Title ===&lt;br /&gt;
Atom permits title to be either plain text or html. hAtom2Atom.xsl currently uses a plain text translation, and some feed readers seem not to handle html titles well (liferea does not normalize-whitespace, for example). Should a hAtom title element become a plain text or a html atom title? If so, should a subset of html be passed through rather than all html (including id, etc)?&lt;br /&gt;
&lt;br /&gt;
=== rel-tag ===&lt;br /&gt;
Should hAtom use rel-tag for atom category elements? -- [[DavidJanes]]&lt;br /&gt;
&lt;br /&gt;
* [[Tantek]]: IMHO yes.&lt;br /&gt;
* A version of this is currently implemented in hAtom2Atom.xsl, but the interpretation of rel-tag is not straightforward.&lt;br /&gt;
* rel-tag uses the last path segment of a URI as its tag, for example &amp;lt;code&amp;gt;&amp;amp;lt;a href=&amp;quot;http://apple.com/ipod&amp;quot; rel=&amp;quot;tag&amp;quot;&amp;gt;iPod&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt;. Human-friendly content is permitted within the anchor. Atom defines three attributes on a category element. &amp;quot;term&amp;quot; is the category in use. &amp;quot;scheme&amp;quot; is a namespace for this category. &amp;quot;label&amp;quot; is a human-friendly text-only version of the category.&lt;br /&gt;
* This looks like a clear mapping to me - term is last path segment; scheme is the tagspace and label is the text within the anchor? The problem is if the scheme + tag is not a true URL  but a URI. So for your example, term is 'ipod, scheme is 'http://apple.com/' and label is iPod. [[User:Kevin Marks|Kevin Marks]] 15:03, 31 Dec 2005 (PST)&lt;br /&gt;
* hAtom2Atom.xsl does not currently supply a scheme. Label is taken from the content of the anchor tag, and no special handling for content such as the title attribute of an img element is performed. Term is the portion of the href after the last slash character.&lt;br /&gt;
* [[rel-tag]] permits url encoding for IRIs, as well as conversion of spaces to plus (+) characters. It is unclear whether the conversion of rel-tag data to atom:category/@term should attempt to reverse any such encoding. The handling of plus characters may be especially difficult to reverse (are the plus characters, or spaces?).&lt;br /&gt;
&lt;br /&gt;
* They are spaces. If you want plus characters use %2B Perhaps I should add this to rel-tag. [[User:Kevin Marks|Kevin Marks]] 15:03, 31 Dec 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
=== Excess disambiguation rules? ===&lt;br /&gt;
Disambiguation rules apply to feed and entry title, and hAtom2Atom.xsl implements these. Rules also apply to permalink, published, and updated. These are currently not implemented. If they appear multiple times in the source document they are repeated multiple times.&lt;br /&gt;
&lt;br /&gt;
It is clear that the data relating to these fields may be repeated within a hAtom entry, however the class notation may not. Only one element need be marked with rel=&amp;quot;bookmark&amp;quot;. Only one need be marked published, and one updated. Should the disambiguation rules be removed and only one element be allowed for each value, or is there value to the publisher in marking different elements with the hAtom class names?&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
==== mfo ====&lt;br /&gt;
Does this specification depend on acceptance of a hAtom-compatible mfo?&lt;br /&gt;
See [[mfo-examples]].&lt;br /&gt;
&lt;br /&gt;
=== Is atom:content necessary? ===&lt;br /&gt;
Atom's structure is built up around separating content and other metadata. atom:updated, atom:author, and the like are separate from atom:content any may contain repeated data. Microformats are built around bringing the content and the metadata back together. Is there are genuine use case for identifying only part of the atom entry as content? Presumably the whole html entry is fit for human consumption, or it wouldn't be part of a microformatted web page. Could that whole html snippet be used as the content?&lt;br /&gt;
&lt;br /&gt;
=== Published as default value for atom:updated ===&lt;br /&gt;
It seems to be common practice to include an &amp;quot;updated&amp;quot; section within the main blog content to track updates to an atom:entry as they occur. It is less common to include a value for atom:published within atom:content. atom:published is usually provided by a machine, but atom:updated is often provided by a human.&lt;br /&gt;
&lt;br /&gt;
I suggest that if a value of published exists but no value for updated exists that the required updated field be filled out from the optional published field. I think this would make changing the required value of updated easier for publishers. Also, several updates may occur to a single entry. I suggest that a disambiguation rule be applied such that the the latest timestamp of any updated field be used if several exist. The overal parser semantics would therefore be:&lt;br /&gt;
# If multiple updated fields exist, choose the most recent one.&lt;br /&gt;
# If only one updated field exists, choose that value.&lt;br /&gt;
# If no updated field exists but a published field exists, use the published value for atom:updated.&lt;br /&gt;
: + 1 [[User:RobertBachmann|Robert Bachmann]]&lt;br /&gt;
&lt;br /&gt;
=== Designating the page author ===&lt;br /&gt;
&lt;br /&gt;
(2006-02-07 raised by [[User:RobertBachmann|Robert Bachmann]])&lt;br /&gt;
&lt;br /&gt;
“[I]f an Entry has 0 Entry Author elements, the &amp;quot;logical Entry Author&amp;quot; is assumed to be the author of the XHTML page”&lt;br /&gt;
&lt;br /&gt;
* How do I designate the page author(s)? &lt;br /&gt;
** &amp;lt;code&amp;gt;class=&amp;quot;author&amp;quot;&amp;lt;/code&amp;gt; outside of the hAtom entry?&lt;br /&gt;
** &amp;lt;code&amp;gt;&amp;amp;lt;address class=&amp;quot;author&amp;quot;&amp;amp;gt;&amp;lt;/code&amp;gt; outside of the hAtom entry?&lt;br /&gt;
** &amp;lt;code&amp;gt;&amp;amp;lt;address&amp;amp;gt;&amp;lt;/code&amp;gt; outside of the hAtom feed (i.e. at the page level)?&lt;br /&gt;
* How do I designate the feed author(s)?&lt;br /&gt;
&lt;br /&gt;
(2006-02-13 example by [[User:ChrisCasciano|Chris Casciano]])&lt;br /&gt;
There is a live case showing this issue at http://chunkysoup.net - The posts are now hatom'd but since I am the only author the individual entries do not repeast the info with each entry. I do have an hcard with my (the page author's) information in the fotter of the page, but at the moment it is not designated via the &amp;lt;address&amp;gt; element due to sematics/content. FWIW, it is also outside of the block designated as the hfeed.&lt;br /&gt;
&lt;br /&gt;
==== Proposal ====&lt;br /&gt;
* If no author is found at the entry level try to use the author(s) at the feed level (i.e: &amp;lt;code&amp;gt;class=&amp;quot;author&amp;quot;&amp;lt;/code&amp;gt; at the feed level)&lt;br /&gt;
* If no author is found at the feed level try to use all &amp;lt;address&amp;gt;’s outside of the feed as authors.&lt;br /&gt;
&lt;br /&gt;
== Entry Updated Required? -- Blogger ==&lt;br /&gt;
* 2006-03-06 raised by [[User:Singpolyma|singpolyma]].&lt;br /&gt;
*# The [[hatom|hAtom]] 0.1 spec states ''if there is no Entry Updated element...the page is invalid hAtom''  I have a real problem with this because I work with [http://www.blogger.com/ Blogger], where we cannot output [[datetime-design-pattern]]-compatible datestrings for our posts... We can output some different human-readable formats and we can output a nanosecond unix-timestamp, but the template tags will not output YYYY-MM-DDTHH:MM:SS+ZZ:ZZ no matter what you do... so how are we to resolve this so that Blogger blogs can use hAtom?  I ask primarily because I am wanting to update my [http://blogxoxo.blogspot.com/2006/01/xoxo-blog-format.html XOXO Blog Format], which is based on hAtom, to comply with the new version of the standard -- and all my test-cases are on Blogger blogs...&lt;br /&gt;
&lt;br /&gt;
== hAtom 0.2 ==&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[hatom|hAtom]] - the draft proposal&lt;br /&gt;
* [[hatom-faq]] - knowledge base&lt;br /&gt;
* [[blog-post-brainstorming]]&lt;br /&gt;
* [[blog-post-formats]]&lt;br /&gt;
* [[blog-post-examples]]&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;
* [[mfo-examples]]&lt;br /&gt;
* [[naming-principles]]&lt;br /&gt;
&lt;br /&gt;
== Template ==&lt;br /&gt;
&lt;br /&gt;
Please use this format (copy and paste this to the end of the list to add your issues):&lt;br /&gt;
* YYYY-MM-DD raised by [http://yourhomepage.example.com YOURNAME].&lt;br /&gt;
*# ''Issue 1: Here is the first issue I have.''&lt;br /&gt;
*# ''Issue 2: Here is the second issue I have.''&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=events/2006-03-21-mix06-microformats&amp;diff=31772</id>
		<title>events/2006-03-21-mix06-microformats</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=events/2006-03-21-mix06-microformats&amp;diff=31772"/>
		<updated>2006-03-22T12:49:41Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: /* Lessons from the Trenches */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Microformats discussions at Mix06 =&lt;br /&gt;
&lt;br /&gt;
March 21st, 2006&lt;br /&gt;
&lt;br /&gt;
== Lessons from the Trenches ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Lessons from the Trenches: Engineering Great AJAX Experiences&amp;quot;&lt;br /&gt;
&lt;br /&gt;
11am-12:15pm&lt;br /&gt;
&lt;br /&gt;
Presenter: [http://spaces.msn.com/siteexperts/ Scott Isaacs]&lt;br /&gt;
&lt;br /&gt;
Slides: [http://www.weblogging.com/decks/lessons.ppt PowerPoint Document]&lt;br /&gt;
&lt;br /&gt;
Notes/Quotes:&lt;br /&gt;
* taken by Tantek Çelik live at the event into #mix06 on irc.freenode.net&lt;br /&gt;
* cleaned up and archived here by Dimitri Glazkov&lt;br /&gt;
&lt;br /&gt;
=== Modern Development Patterns ===&lt;br /&gt;
* Apply OO principles to web development&lt;br /&gt;
* Shared methodology with Atlas&lt;br /&gt;
* Namespaces, Encapsulation, Inheritance, Object Lifecycle&lt;br /&gt;
* Separate semantics, presentation, and behavior&lt;br /&gt;
&lt;br /&gt;
=== Live Clipboard Demo ===&lt;br /&gt;
* '''&amp;quot;microformats are another key aspect of Web 2.0&amp;quot;*'''&lt;br /&gt;
* '''hCard for contacts, start with class=&amp;quot;vcard&amp;quot;'''&lt;br /&gt;
* '''similarly use hCalendar for events'''&lt;br /&gt;
* '''what Live Clipboard is a use of microformats for integrating your data'''&lt;br /&gt;
* (starts demo)&lt;br /&gt;
* '''starting with just the microformat -- &amp;quot;key part of the ecosystem for remixing the Web&amp;quot;'''&lt;br /&gt;
* '''&amp;quot;I can basically say anything on the page that has class name vcard, I'm going to bind one of those Live Clipboard container objects to it&amp;quot;'''&lt;br /&gt;
* '''&amp;quot;then I'm going to specify the resources to bind to it, ex: clipControl.js and .css&amp;quot;'''&lt;br /&gt;
* '''dynamic recognition of microformats on the page'''&lt;br /&gt;
* '''&amp;quot;any microformat on the page, I want to make copyable&amp;quot;'''&lt;br /&gt;
** &amp;quot;I wanted to copy the hCalendar&amp;quot;&lt;br /&gt;
** &amp;quot;I copied it from IE&amp;quot;&lt;br /&gt;
** &amp;quot;I went to Firefox&amp;quot;&lt;br /&gt;
** &amp;quot;and I pasted&amp;quot;&lt;br /&gt;
** &amp;quot;and the event item shows up on a page viewed in Firefox&amp;quot;&lt;br /&gt;
** &amp;quot;I can copy and paste this whereever I want&amp;quot;&lt;br /&gt;
** &amp;quot;I can copy and paste from Eventful&amp;quot;&lt;br /&gt;
** '''&amp;quot;I can do the same thing with other microformats on the page&amp;quot;'''&lt;br /&gt;
** &amp;quot;I can copy a contact from the IE page ?and paste into that same page that I pasted the event&amp;quot;&lt;br /&gt;
* '''&amp;quot;all the contacts in Hotmail will be hCard automatically remixable into the rest of the Web&amp;quot;'''&lt;br /&gt;
* '''if you start building gadgets with microformats, we'll make them automatically remixable with other gadgets'''&lt;br /&gt;
* '''start exploring using microformats in your web pages'''&lt;br /&gt;
* '''we can start establishing an ecosystem of relevant data'''&lt;br /&gt;
=== XML Proxying And Scalability ===&lt;br /&gt;
=== Web Service Integration ===&lt;br /&gt;
* Do not want to continually parse XML&lt;br /&gt;
* we don't want to deal with SOAP envelopes on the client&lt;br /&gt;
* instead, we build javascript proxies&lt;br /&gt;
* Desire a more natural and efficient approach&lt;br /&gt;
* Web Services generate JavaScript proxies: WeatherService.requestWeatherReport(strLocation,onReceipt)&lt;br /&gt;
* Use generic format for transport (e.g., JSON)&lt;br /&gt;
* Incoming requests marshaled to native server format and outgoing responses to client format&lt;br /&gt;
* Use xmlHttpRequest to access the network, but the wire format is transparent to the application&lt;br /&gt;
* Use raw XML for &amp;quot;documents&amp;quot; (e.g. RSS)&lt;br /&gt;
* but parsing a several 100k document will take upwards of 400ms&lt;br /&gt;
* and that is too long&lt;br /&gt;
* user thinks browser has locked up&lt;br /&gt;
* explore other approaches such as JSON to gain the most efficiences&lt;br /&gt;
efficiency&lt;br /&gt;
=== Optimizing the Network ===&lt;br /&gt;
* AJAX-style applications can become very chatty&lt;br /&gt;
...&lt;br /&gt;
=== Be Wary Of Security ===&lt;br /&gt;
* &amp;quot;could probably spend an hour on this one slide, but will try not to&amp;quot;&lt;br /&gt;
* XSS is an industry challenge we all need to address more&lt;br /&gt;
*as you start exposing services at the edge, XSS becomes a much bigger deal&lt;br /&gt;
* e.g. Gmail, within 3 days, coders developed an API to use Gmail as a disk store&lt;br /&gt;
* Define a standard UI feedback metaphor and stick to it&lt;br /&gt;
* (missed slide)&lt;br /&gt;
=== Prioritizing Network Requests ===&lt;br /&gt;
* AJAX Scenario&lt;br /&gt;
* Your page is preloading images&lt;br /&gt;
* User clicks &amp;quot;Buy It&amp;quot; from ...&lt;br /&gt;
&lt;br /&gt;
=== Code/Resource Deveployment ===&lt;br /&gt;
* More Interactivity = More Code = Slower Site (script are executed synchronously serially)&lt;br /&gt;
* How do you build sites with lots of componenets&lt;br /&gt;
* How do you build a &amp;quot;portal&amp;quot; where the user controls the scope of the application&lt;br /&gt;
* How do you efficiently deploy the necessary code and resources?&lt;br /&gt;
* Understand how the browser works&lt;br /&gt;
* Scripts included on the page block and load one at a time&lt;br /&gt;
* Large number of script blocks can greatly stall loading&lt;br /&gt;
* System for deploying code&lt;br /&gt;
* Patterns allow component resources to load in any order&lt;br /&gt;
* Deployed code asynchronously leveraging all available connections&lt;br /&gt;
* Prioritize the loading of components&lt;br /&gt;
* Never expire static content (change the URL to break the cache)&lt;br /&gt;
&lt;br /&gt;
=== X-Browser Development ===&lt;br /&gt;
* Minimize browser specific code in the business logic&lt;br /&gt;
* Abstract and centralize API differences&lt;br /&gt;
* We extend Firefox and Opera DOM to be compatible with IE&lt;br /&gt;
* CSS Differences - Avoid Hacks&lt;br /&gt;
* We classify and override via standard selectors&lt;br /&gt;
* HTML class=&amp;quot;Mozilla M1 D5 Windows&amp;quot;&lt;br /&gt;
* Body {margin:10px}&lt;br /&gt;
* .Mozilla Body {margin:5px} /* Override Mozilla */&lt;br /&gt;
* (hmm... this is quite clever and much more readable)&lt;br /&gt;
* ... missed slide ...&lt;br /&gt;
* demo of Scott's blog&lt;br /&gt;
=== Back Button And Addressability ===&lt;br /&gt;
* Users expect the web to work (I love that line)&lt;br /&gt;
* Demo: MSN Spaces, Windows Live&lt;br /&gt;
* Travelog (History stack) is hard&lt;br /&gt;
* Windows Live beta&lt;br /&gt;
* back button works&lt;br /&gt;
* you can change the hash of the URL [fragment identifier] without reloading the URL&lt;br /&gt;
* and thus keep back button working&lt;br /&gt;
=== Accessibiliy ===&lt;br /&gt;
* Web Accessibility is challenging&lt;br /&gt;
* &amp;quot;Use HTML semantics appropriately&amp;quot;&lt;br /&gt;
* (wow how far semantic HTML awareness has come in the past four years)&lt;br /&gt;
* HTML Accessibility&lt;br /&gt;
* Always use structural semantics to establish &amp;quot;role&amp;quot;&lt;br /&gt;
* E.g., Hn, Label, TH (table headers), lists, etc.&lt;br /&gt;
* (rather than nested DIVs)&lt;br /&gt;
&lt;br /&gt;
=== Building Web Applications ===&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
=== Q&amp;amp;A ===&lt;br /&gt;
&lt;br /&gt;
* Q: What kills JavaScript perf is memory leaks in the browser&lt;br /&gt;
* IE6 has some leaks&lt;br /&gt;
* if you create a circular reference between a document object and a javascript object then it won't go away&lt;br /&gt;
&lt;br /&gt;
* Q: mashups with SSL&lt;br /&gt;
* A: interesting challenge. the real question is how do we securely integrate in a way that is trusted by partners and customers? you have to go entirely HTTPS across the board&lt;br /&gt;
&lt;br /&gt;
* Q: are you familiar with the DOJO toolkit? it solves a lot of the problems memory leaks, back button&lt;br /&gt;
* A: haven't looked too deeply at DOJO.  we have a system where objects get created and destroyed all the time.  not sure if they do document level garbage collection or what.&lt;br /&gt;
&lt;br /&gt;
* Q: about Atlas&lt;br /&gt;
* A: ...&lt;br /&gt;
&lt;br /&gt;
* Q: about using AJAX to build a 24fps videogame&lt;br /&gt;
* A: (heh)&lt;br /&gt;
&lt;br /&gt;
* Q: is there someway we could have a simple lean AJAX request?&lt;br /&gt;
* A: ...&lt;br /&gt;
&lt;br /&gt;
* Q: what is wrong with using iframes?&lt;br /&gt;
* A: 1. themes won't work with the iframe ''this is ASP.NET-specific reference'' --[[DimitriGlazkov]]&lt;br /&gt;
* A: 2. iframes consume a lot of memory (read: Trident instance) on the order of 20 megabytes of memory (YIKES!)&lt;br /&gt;
* A: 3. security&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=events/2006-03-21-mix06-microformats&amp;diff=5481</id>
		<title>events/2006-03-21-mix06-microformats</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=events/2006-03-21-mix06-microformats&amp;diff=5481"/>
		<updated>2006-03-22T12:48:41Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: /* Lessons from the Trenches */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Microformats discussions at Mix06 =&lt;br /&gt;
&lt;br /&gt;
March 21st, 2006&lt;br /&gt;
&lt;br /&gt;
== Lessons from the Trenches ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Lessons from the Trenches: Engineering Great AJAX Experiences&amp;quot;&lt;br /&gt;
&lt;br /&gt;
11am-12:15pm&lt;br /&gt;
&lt;br /&gt;
Presenter: [http://spaces.msn.com/siteexperts/ Scott Isaacs]&lt;br /&gt;
Slides: [http://www.weblogging.com/decks/lessons.ppt PowerPoint Document]&lt;br /&gt;
&lt;br /&gt;
Notes/Quotes:&lt;br /&gt;
* taken by Tantek Çelik live at the event into #mix06 on irc.freenode.net&lt;br /&gt;
* cleaned up and archived here by Dimitri Glazkov&lt;br /&gt;
&lt;br /&gt;
=== Modern Development Patterns ===&lt;br /&gt;
* Apply OO principles to web development&lt;br /&gt;
* Shared methodology with Atlas&lt;br /&gt;
* Namespaces, Encapsulation, Inheritance, Object Lifecycle&lt;br /&gt;
* Separate semantics, presentation, and behavior&lt;br /&gt;
&lt;br /&gt;
=== Live Clipboard Demo ===&lt;br /&gt;
* '''&amp;quot;microformats are another key aspect of Web 2.0&amp;quot;*'''&lt;br /&gt;
* '''hCard for contacts, start with class=&amp;quot;vcard&amp;quot;'''&lt;br /&gt;
* '''similarly use hCalendar for events'''&lt;br /&gt;
* '''what Live Clipboard is a use of microformats for integrating your data'''&lt;br /&gt;
* (starts demo)&lt;br /&gt;
* '''starting with just the microformat -- &amp;quot;key part of the ecosystem for remixing the Web&amp;quot;'''&lt;br /&gt;
* '''&amp;quot;I can basically say anything on the page that has class name vcard, I'm going to bind one of those Live Clipboard container objects to it&amp;quot;'''&lt;br /&gt;
* '''&amp;quot;then I'm going to specify the resources to bind to it, ex: clipControl.js and .css&amp;quot;'''&lt;br /&gt;
* '''dynamic recognition of microformats on the page'''&lt;br /&gt;
* '''&amp;quot;any microformat on the page, I want to make copyable&amp;quot;'''&lt;br /&gt;
** &amp;quot;I wanted to copy the hCalendar&amp;quot;&lt;br /&gt;
** &amp;quot;I copied it from IE&amp;quot;&lt;br /&gt;
** &amp;quot;I went to Firefox&amp;quot;&lt;br /&gt;
** &amp;quot;and I pasted&amp;quot;&lt;br /&gt;
** &amp;quot;and the event item shows up on a page viewed in Firefox&amp;quot;&lt;br /&gt;
** &amp;quot;I can copy and paste this whereever I want&amp;quot;&lt;br /&gt;
** &amp;quot;I can copy and paste from Eventful&amp;quot;&lt;br /&gt;
** '''&amp;quot;I can do the same thing with other microformats on the page&amp;quot;'''&lt;br /&gt;
** &amp;quot;I can copy a contact from the IE page ?and paste into that same page that I pasted the event&amp;quot;&lt;br /&gt;
* '''&amp;quot;all the contacts in Hotmail will be hCard automatically remixable into the rest of the Web&amp;quot;'''&lt;br /&gt;
* '''if you start building gadgets with microformats, we'll make them automatically remixable with other gadgets'''&lt;br /&gt;
* '''start exploring using microformats in your web pages'''&lt;br /&gt;
* '''we can start establishing an ecosystem of relevant data'''&lt;br /&gt;
=== XML Proxying And Scalability ===&lt;br /&gt;
=== Web Service Integration ===&lt;br /&gt;
* Do not want to continually parse XML&lt;br /&gt;
* we don't want to deal with SOAP envelopes on the client&lt;br /&gt;
* instead, we build javascript proxies&lt;br /&gt;
* Desire a more natural and efficient approach&lt;br /&gt;
* Web Services generate JavaScript proxies: WeatherService.requestWeatherReport(strLocation,onReceipt)&lt;br /&gt;
* Use generic format for transport (e.g., JSON)&lt;br /&gt;
* Incoming requests marshaled to native server format and outgoing responses to client format&lt;br /&gt;
* Use xmlHttpRequest to access the network, but the wire format is transparent to the application&lt;br /&gt;
* Use raw XML for &amp;quot;documents&amp;quot; (e.g. RSS)&lt;br /&gt;
* but parsing a several 100k document will take upwards of 400ms&lt;br /&gt;
* and that is too long&lt;br /&gt;
* user thinks browser has locked up&lt;br /&gt;
* explore other approaches such as JSON to gain the most efficiences&lt;br /&gt;
efficiency&lt;br /&gt;
=== Optimizing the Network ===&lt;br /&gt;
* AJAX-style applications can become very chatty&lt;br /&gt;
...&lt;br /&gt;
=== Be Wary Of Security ===&lt;br /&gt;
* &amp;quot;could probably spend an hour on this one slide, but will try not to&amp;quot;&lt;br /&gt;
* XSS is an industry challenge we all need to address more&lt;br /&gt;
*as you start exposing services at the edge, XSS becomes a much bigger deal&lt;br /&gt;
* e.g. Gmail, within 3 days, coders developed an API to use Gmail as a disk store&lt;br /&gt;
* Define a standard UI feedback metaphor and stick to it&lt;br /&gt;
* (missed slide)&lt;br /&gt;
=== Prioritizing Network Requests ===&lt;br /&gt;
* AJAX Scenario&lt;br /&gt;
* Your page is preloading images&lt;br /&gt;
* User clicks &amp;quot;Buy It&amp;quot; from ...&lt;br /&gt;
&lt;br /&gt;
=== Code/Resource Deveployment ===&lt;br /&gt;
* More Interactivity = More Code = Slower Site (script are executed synchronously serially)&lt;br /&gt;
* How do you build sites with lots of componenets&lt;br /&gt;
* How do you build a &amp;quot;portal&amp;quot; where the user controls the scope of the application&lt;br /&gt;
* How do you efficiently deploy the necessary code and resources?&lt;br /&gt;
* Understand how the browser works&lt;br /&gt;
* Scripts included on the page block and load one at a time&lt;br /&gt;
* Large number of script blocks can greatly stall loading&lt;br /&gt;
* System for deploying code&lt;br /&gt;
* Patterns allow component resources to load in any order&lt;br /&gt;
* Deployed code asynchronously leveraging all available connections&lt;br /&gt;
* Prioritize the loading of components&lt;br /&gt;
* Never expire static content (change the URL to break the cache)&lt;br /&gt;
&lt;br /&gt;
=== X-Browser Development ===&lt;br /&gt;
* Minimize browser specific code in the business logic&lt;br /&gt;
* Abstract and centralize API differences&lt;br /&gt;
* We extend Firefox and Opera DOM to be compatible with IE&lt;br /&gt;
* CSS Differences - Avoid Hacks&lt;br /&gt;
* We classify and override via standard selectors&lt;br /&gt;
* HTML class=&amp;quot;Mozilla M1 D5 Windows&amp;quot;&lt;br /&gt;
* Body {margin:10px}&lt;br /&gt;
* .Mozilla Body {margin:5px} /* Override Mozilla */&lt;br /&gt;
* (hmm... this is quite clever and much more readable)&lt;br /&gt;
* ... missed slide ...&lt;br /&gt;
* demo of Scott's blog&lt;br /&gt;
=== Back Button And Addressability ===&lt;br /&gt;
* Users expect the web to work (I love that line)&lt;br /&gt;
* Demo: MSN Spaces, Windows Live&lt;br /&gt;
* Travelog (History stack) is hard&lt;br /&gt;
* Windows Live beta&lt;br /&gt;
* back button works&lt;br /&gt;
* you can change the hash of the URL [fragment identifier] without reloading the URL&lt;br /&gt;
* and thus keep back button working&lt;br /&gt;
=== Accessibiliy ===&lt;br /&gt;
* Web Accessibility is challenging&lt;br /&gt;
* &amp;quot;Use HTML semantics appropriately&amp;quot;&lt;br /&gt;
* (wow how far semantic HTML awareness has come in the past four years)&lt;br /&gt;
* HTML Accessibility&lt;br /&gt;
* Always use structural semantics to establish &amp;quot;role&amp;quot;&lt;br /&gt;
* E.g., Hn, Label, TH (table headers), lists, etc.&lt;br /&gt;
* (rather than nested DIVs)&lt;br /&gt;
&lt;br /&gt;
=== Building Web Applications ===&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
=== Q&amp;amp;A ===&lt;br /&gt;
&lt;br /&gt;
* Q: What kills JavaScript perf is memory leaks in the browser&lt;br /&gt;
* IE6 has some leaks&lt;br /&gt;
* if you create a circular reference between a document object and a javascript object then it won't go away&lt;br /&gt;
&lt;br /&gt;
* Q: mashups with SSL&lt;br /&gt;
* A: interesting challenge. the real question is how do we securely integrate in a way that is trusted by partners and customers? you have to go entirely HTTPS across the board&lt;br /&gt;
&lt;br /&gt;
* Q: are you familiar with the DOJO toolkit? it solves a lot of the problems memory leaks, back button&lt;br /&gt;
* A: haven't looked too deeply at DOJO.  we have a system where objects get created and destroyed all the time.  not sure if they do document level garbage collection or what.&lt;br /&gt;
&lt;br /&gt;
* Q: about Atlas&lt;br /&gt;
* A: ...&lt;br /&gt;
&lt;br /&gt;
* Q: about using AJAX to build a 24fps videogame&lt;br /&gt;
* A: (heh)&lt;br /&gt;
&lt;br /&gt;
* Q: is there someway we could have a simple lean AJAX request?&lt;br /&gt;
* A: ...&lt;br /&gt;
&lt;br /&gt;
* Q: what is wrong with using iframes?&lt;br /&gt;
* A: 1. themes won't work with the iframe ''this is ASP.NET-specific reference'' --[[DimitriGlazkov]]&lt;br /&gt;
* A: 2. iframes consume a lot of memory (read: Trident instance) on the order of 20 megabytes of memory (YIKES!)&lt;br /&gt;
* A: 3. security&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=events/2006-03-21-mix06-microformats&amp;diff=5479</id>
		<title>events/2006-03-21-mix06-microformats</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=events/2006-03-21-mix06-microformats&amp;diff=5479"/>
		<updated>2006-03-21T20:30:29Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: /* Q&amp;amp;A */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Microformats discussions at Mix06 =&lt;br /&gt;
&lt;br /&gt;
March 21st, 2006&lt;br /&gt;
&lt;br /&gt;
== Lessons from the Trenches ==&lt;br /&gt;
&lt;br /&gt;
11am-12:15pm&lt;br /&gt;
&lt;br /&gt;
[http://spaces.msn.com/siteexperts/ Scott Isaacs]&lt;br /&gt;
&lt;br /&gt;
Notes/Quotes:&lt;br /&gt;
&lt;br /&gt;
=== Lessons from the Trenches: Engineering Great AJAX Experiences ===&lt;br /&gt;
&lt;br /&gt;
=== Modern Development Patterns ===&lt;br /&gt;
* Apply OO principles to web development&lt;br /&gt;
* Shared methodology with Atlas&lt;br /&gt;
* Namespaces, Encapsulation, Inheritance, Object Lifecycle&lt;br /&gt;
* Separate semantics, presentation, and behavior&lt;br /&gt;
&lt;br /&gt;
=== Live Clipboard Demo ===&lt;br /&gt;
* '''&amp;quot;microformats are another key aspect of Web 2.0&amp;quot;*'''&lt;br /&gt;
* '''hCard for contacts, start with class=&amp;quot;vcard&amp;quot;'''&lt;br /&gt;
* '''similarly use hCalendar for events'''&lt;br /&gt;
* '''what Live Clipboard is a use of microformats for integrating your data'''&lt;br /&gt;
* (starts demo)&lt;br /&gt;
* '''starting with just the microformat -- &amp;quot;key part of the ecosystem for remixing the Web&amp;quot;'''&lt;br /&gt;
* '''&amp;quot;I can basically say anything on the page that has class name vcard, I'm going to bind one of those Live Clipboard container objects to it&amp;quot;'''&lt;br /&gt;
* '''&amp;quot;then I'm going to specify the resources to bind to it, ex: clipControl.js and .css&amp;quot;'''&lt;br /&gt;
* '''dynamic recognition of microformats on the page'''&lt;br /&gt;
* '''&amp;quot;any microformat on the page, I want to make copyable&amp;quot;'''&lt;br /&gt;
** &amp;quot;I wanted to copy the hCalendar&amp;quot;&lt;br /&gt;
** &amp;quot;I copied it from IE&amp;quot;&lt;br /&gt;
** &amp;quot;I went to Firefox&amp;quot;&lt;br /&gt;
** &amp;quot;and I pasted&amp;quot;&lt;br /&gt;
** &amp;quot;and the event item shows up on a page viewed in Firefox&amp;quot;&lt;br /&gt;
** &amp;quot;I can copy and paste this whereever I want&amp;quot;&lt;br /&gt;
** &amp;quot;I can copy and paste from Eventful&amp;quot;&lt;br /&gt;
** '''&amp;quot;I can do the same thing with other microformats on the page&amp;quot;'''&lt;br /&gt;
** &amp;quot;I can copy a contact from the IE page ?and paste into that same page that I pasted the event&amp;quot;&lt;br /&gt;
* '''&amp;quot;all the contacts in Hotmail will be hCard automatically remixable into the rest of the Web&amp;quot;'''&lt;br /&gt;
* '''if you start building gadgets with microformats, we'll make them automatically remixable with other gadgets'''&lt;br /&gt;
* '''start exploring using microformats in your web pages'''&lt;br /&gt;
* '''we can start establishing an ecosystem of relevant data'''&lt;br /&gt;
=== XML Proxying And Scalability ===&lt;br /&gt;
=== Web Service Integration ===&lt;br /&gt;
* Do not want to continually parse XML&lt;br /&gt;
* we don't want to deal with SOAP envelopes on the client&lt;br /&gt;
* instead, we build javascript proxies&lt;br /&gt;
* Desire a more natural and efficient approach&lt;br /&gt;
* Web Services generate JavaScript proxies: WeatherService.requestWeatherReport(strLocation,onReceipt)&lt;br /&gt;
* Use generic format for transport (e.g., JSON)&lt;br /&gt;
* Incoming requests marshaled to native server format and outgoing responses to client format&lt;br /&gt;
* Use xmlHttpRequest to access the network, but the wire format is transparent to the application&lt;br /&gt;
* Use raw XML for &amp;quot;documents&amp;quot; (e.g. RSS)&lt;br /&gt;
* but parsing a several 100k document will take upwards of 400ms&lt;br /&gt;
* and that is too long&lt;br /&gt;
* user thinks browser has locked up&lt;br /&gt;
* explore other approaches such as JSON to gain the most efficiences&lt;br /&gt;
efficiency&lt;br /&gt;
=== Optimizing the Network ===&lt;br /&gt;
* AJAX-style applications can become very chatty&lt;br /&gt;
...&lt;br /&gt;
=== Be Wary Of Security ===&lt;br /&gt;
* &amp;quot;could probably spend an hour on this one slide, but will try not to&amp;quot;&lt;br /&gt;
* XSS is an industry challenge we all need to address more&lt;br /&gt;
*as you start exposing services at the edge, XSS becomes a much bigger deal&lt;br /&gt;
* e.g. Gmail, within 3 days, coders developed an API to use Gmail as a disk store&lt;br /&gt;
* Define a standard UI feedback metaphor and stick to it&lt;br /&gt;
* (missed slide)&lt;br /&gt;
=== Prioritizing Network Requests ===&lt;br /&gt;
* AJAX Scenario&lt;br /&gt;
* Your page is preloading images&lt;br /&gt;
* User clicks &amp;quot;Buy It&amp;quot; from ...&lt;br /&gt;
&lt;br /&gt;
=== Code/Resource Deveployment ===&lt;br /&gt;
* More Interactivity = More Code = Slower Site (script are executed synchronously serially)&lt;br /&gt;
* How do you build sites with lots of componenets&lt;br /&gt;
* How do you build a &amp;quot;portal&amp;quot; where the user controls the scope of the application&lt;br /&gt;
* How do you efficiently deploy the necessary code and resources?&lt;br /&gt;
* Understand how the browser works&lt;br /&gt;
* Scripts included on the page block and load one at a time&lt;br /&gt;
* Large number of script blocks can greatly stall loading&lt;br /&gt;
* System for deploying code&lt;br /&gt;
* Patterns allow component resources to load in any order&lt;br /&gt;
* Deployed code asynchronously leveraging all available connections&lt;br /&gt;
* Prioritize the loading of components&lt;br /&gt;
* Never expire static content (change the URL to break the cache)&lt;br /&gt;
&lt;br /&gt;
=== X-Browser Development ===&lt;br /&gt;
* Minimize browser specific code in the business logic&lt;br /&gt;
* Abstract and centralize API differences&lt;br /&gt;
* We extend Firefox and Opera DOM to be compatible with IE&lt;br /&gt;
* CSS Differences - Avoid Hacks&lt;br /&gt;
* We classify and override via standard selectors&lt;br /&gt;
* HTML class=&amp;quot;Mozilla M1 D5 Windows&amp;quot;&lt;br /&gt;
* Body {margin:10px}&lt;br /&gt;
* .Mozilla Body {margin:5px} /* Override Mozilla */&lt;br /&gt;
* (hmm... this is quite clever and much more readable)&lt;br /&gt;
* ... missed slide ...&lt;br /&gt;
* demo of Scott's blog&lt;br /&gt;
=== Back Button And Addressability ===&lt;br /&gt;
* Users expect the web to work (I love that line)&lt;br /&gt;
* Demo: MSN Spaces, Windows Live&lt;br /&gt;
* Travelog (History stack) is hard&lt;br /&gt;
* Windows Live beta&lt;br /&gt;
* back button works&lt;br /&gt;
* you can change the hash of the URL [fragment identifier] without reloading the URL&lt;br /&gt;
* and thus keep back button working&lt;br /&gt;
=== Accessibiliy ===&lt;br /&gt;
* Web Accessibility is challenging&lt;br /&gt;
* &amp;quot;Use HTML semantics appropriately&amp;quot;&lt;br /&gt;
* (wow how far semantic HTML awareness has come in the past four years)&lt;br /&gt;
* HTML Accessibility&lt;br /&gt;
* Always use structural semantics to establish &amp;quot;role&amp;quot;&lt;br /&gt;
* E.g., Hn, Label, TH (table headers), lists, etc.&lt;br /&gt;
* (rather than nested DIVs)&lt;br /&gt;
&lt;br /&gt;
=== Building Web Applications ===&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
=== Q&amp;amp;A ===&lt;br /&gt;
&lt;br /&gt;
* Q: What kills JavaScript perf is memory leaks in the browser&lt;br /&gt;
* IE6 has some leaks&lt;br /&gt;
* if you create a circular reference between a document object and a javascript object then it won't go away&lt;br /&gt;
&lt;br /&gt;
* Q: mashups with SSL&lt;br /&gt;
* A: interesting challenge. the real question is how do we securely integrate in a way that is trusted by partners and customers? you have to go entirely HTTPS across the board&lt;br /&gt;
&lt;br /&gt;
* Q: are you familiar with the DOJO toolkit? it solves a lot of the problems memory leaks, back button&lt;br /&gt;
* A: haven't looked too deeply at DOJO.  we have a system where objects get created and destroyed all the time.  not sure if they do document level garbage collection or what.&lt;br /&gt;
&lt;br /&gt;
* Q: about Atlas&lt;br /&gt;
* A: ...&lt;br /&gt;
&lt;br /&gt;
* Q: about using AJAX to build a 24fps videogame&lt;br /&gt;
* A: (heh)&lt;br /&gt;
&lt;br /&gt;
* Q: is there someway we could have a simple lean AJAX request?&lt;br /&gt;
* A: ...&lt;br /&gt;
&lt;br /&gt;
* Q: what is wrong with using iframes?&lt;br /&gt;
* A: 1. themes won't work with the iframe ''this is ASP.NET-specific reference'' --[[DimitriGlazkov]]&lt;br /&gt;
* A: 2. iframes consume a lot of memory (read: Trident instance) on the order of 20 megabytes of memory (YIKES!)&lt;br /&gt;
* A: 3. security&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=events/2006-03-21-mix06-microformats&amp;diff=5477</id>
		<title>events/2006-03-21-mix06-microformats</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=events/2006-03-21-mix06-microformats&amp;diff=5477"/>
		<updated>2006-03-21T20:29:56Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Microformats discussions at Mix06 =&lt;br /&gt;
&lt;br /&gt;
March 21st, 2006&lt;br /&gt;
&lt;br /&gt;
== Lessons from the Trenches ==&lt;br /&gt;
&lt;br /&gt;
11am-12:15pm&lt;br /&gt;
&lt;br /&gt;
[http://spaces.msn.com/siteexperts/ Scott Isaacs]&lt;br /&gt;
&lt;br /&gt;
Notes/Quotes:&lt;br /&gt;
&lt;br /&gt;
=== Lessons from the Trenches: Engineering Great AJAX Experiences ===&lt;br /&gt;
&lt;br /&gt;
=== Modern Development Patterns ===&lt;br /&gt;
* Apply OO principles to web development&lt;br /&gt;
* Shared methodology with Atlas&lt;br /&gt;
* Namespaces, Encapsulation, Inheritance, Object Lifecycle&lt;br /&gt;
* Separate semantics, presentation, and behavior&lt;br /&gt;
&lt;br /&gt;
=== Live Clipboard Demo ===&lt;br /&gt;
* '''&amp;quot;microformats are another key aspect of Web 2.0&amp;quot;*'''&lt;br /&gt;
* '''hCard for contacts, start with class=&amp;quot;vcard&amp;quot;'''&lt;br /&gt;
* '''similarly use hCalendar for events'''&lt;br /&gt;
* '''what Live Clipboard is a use of microformats for integrating your data'''&lt;br /&gt;
* (starts demo)&lt;br /&gt;
* '''starting with just the microformat -- &amp;quot;key part of the ecosystem for remixing the Web&amp;quot;'''&lt;br /&gt;
* '''&amp;quot;I can basically say anything on the page that has class name vcard, I'm going to bind one of those Live Clipboard container objects to it&amp;quot;'''&lt;br /&gt;
* '''&amp;quot;then I'm going to specify the resources to bind to it, ex: clipControl.js and .css&amp;quot;'''&lt;br /&gt;
* '''dynamic recognition of microformats on the page'''&lt;br /&gt;
* '''&amp;quot;any microformat on the page, I want to make copyable&amp;quot;'''&lt;br /&gt;
** &amp;quot;I wanted to copy the hCalendar&amp;quot;&lt;br /&gt;
** &amp;quot;I copied it from IE&amp;quot;&lt;br /&gt;
** &amp;quot;I went to Firefox&amp;quot;&lt;br /&gt;
** &amp;quot;and I pasted&amp;quot;&lt;br /&gt;
** &amp;quot;and the event item shows up on a page viewed in Firefox&amp;quot;&lt;br /&gt;
** &amp;quot;I can copy and paste this whereever I want&amp;quot;&lt;br /&gt;
** &amp;quot;I can copy and paste from Eventful&amp;quot;&lt;br /&gt;
** '''&amp;quot;I can do the same thing with other microformats on the page&amp;quot;'''&lt;br /&gt;
** &amp;quot;I can copy a contact from the IE page ?and paste into that same page that I pasted the event&amp;quot;&lt;br /&gt;
* '''&amp;quot;all the contacts in Hotmail will be hCard automatically remixable into the rest of the Web&amp;quot;'''&lt;br /&gt;
* '''if you start building gadgets with microformats, we'll make them automatically remixable with other gadgets'''&lt;br /&gt;
* '''start exploring using microformats in your web pages'''&lt;br /&gt;
* '''we can start establishing an ecosystem of relevant data'''&lt;br /&gt;
=== XML Proxying And Scalability ===&lt;br /&gt;
=== Web Service Integration ===&lt;br /&gt;
* Do not want to continually parse XML&lt;br /&gt;
* we don't want to deal with SOAP envelopes on the client&lt;br /&gt;
* instead, we build javascript proxies&lt;br /&gt;
* Desire a more natural and efficient approach&lt;br /&gt;
* Web Services generate JavaScript proxies: WeatherService.requestWeatherReport(strLocation,onReceipt)&lt;br /&gt;
* Use generic format for transport (e.g., JSON)&lt;br /&gt;
* Incoming requests marshaled to native server format and outgoing responses to client format&lt;br /&gt;
* Use xmlHttpRequest to access the network, but the wire format is transparent to the application&lt;br /&gt;
* Use raw XML for &amp;quot;documents&amp;quot; (e.g. RSS)&lt;br /&gt;
* but parsing a several 100k document will take upwards of 400ms&lt;br /&gt;
* and that is too long&lt;br /&gt;
* user thinks browser has locked up&lt;br /&gt;
* explore other approaches such as JSON to gain the most efficiences&lt;br /&gt;
efficiency&lt;br /&gt;
=== Optimizing the Network ===&lt;br /&gt;
* AJAX-style applications can become very chatty&lt;br /&gt;
...&lt;br /&gt;
=== Be Wary Of Security ===&lt;br /&gt;
* &amp;quot;could probably spend an hour on this one slide, but will try not to&amp;quot;&lt;br /&gt;
* XSS is an industry challenge we all need to address more&lt;br /&gt;
*as you start exposing services at the edge, XSS becomes a much bigger deal&lt;br /&gt;
* e.g. Gmail, within 3 days, coders developed an API to use Gmail as a disk store&lt;br /&gt;
* Define a standard UI feedback metaphor and stick to it&lt;br /&gt;
* (missed slide)&lt;br /&gt;
=== Prioritizing Network Requests ===&lt;br /&gt;
* AJAX Scenario&lt;br /&gt;
* Your page is preloading images&lt;br /&gt;
* User clicks &amp;quot;Buy It&amp;quot; from ...&lt;br /&gt;
&lt;br /&gt;
=== Code/Resource Deveployment ===&lt;br /&gt;
* More Interactivity = More Code = Slower Site (script are executed synchronously serially)&lt;br /&gt;
* How do you build sites with lots of componenets&lt;br /&gt;
* How do you build a &amp;quot;portal&amp;quot; where the user controls the scope of the application&lt;br /&gt;
* How do you efficiently deploy the necessary code and resources?&lt;br /&gt;
* Understand how the browser works&lt;br /&gt;
* Scripts included on the page block and load one at a time&lt;br /&gt;
* Large number of script blocks can greatly stall loading&lt;br /&gt;
* System for deploying code&lt;br /&gt;
* Patterns allow component resources to load in any order&lt;br /&gt;
* Deployed code asynchronously leveraging all available connections&lt;br /&gt;
* Prioritize the loading of components&lt;br /&gt;
* Never expire static content (change the URL to break the cache)&lt;br /&gt;
&lt;br /&gt;
=== X-Browser Development ===&lt;br /&gt;
* Minimize browser specific code in the business logic&lt;br /&gt;
* Abstract and centralize API differences&lt;br /&gt;
* We extend Firefox and Opera DOM to be compatible with IE&lt;br /&gt;
* CSS Differences - Avoid Hacks&lt;br /&gt;
* We classify and override via standard selectors&lt;br /&gt;
* HTML class=&amp;quot;Mozilla M1 D5 Windows&amp;quot;&lt;br /&gt;
* Body {margin:10px}&lt;br /&gt;
* .Mozilla Body {margin:5px} /* Override Mozilla */&lt;br /&gt;
* (hmm... this is quite clever and much more readable)&lt;br /&gt;
* ... missed slide ...&lt;br /&gt;
* demo of Scott's blog&lt;br /&gt;
=== Back Button And Addressability ===&lt;br /&gt;
* Users expect the web to work (I love that line)&lt;br /&gt;
* Demo: MSN Spaces, Windows Live&lt;br /&gt;
* Travelog (History stack) is hard&lt;br /&gt;
* Windows Live beta&lt;br /&gt;
* back button works&lt;br /&gt;
* you can change the hash of the URL [fragment identifier] without reloading the URL&lt;br /&gt;
* and thus keep back button working&lt;br /&gt;
=== Accessibiliy ===&lt;br /&gt;
* Web Accessibility is challenging&lt;br /&gt;
* &amp;quot;Use HTML semantics appropriately&amp;quot;&lt;br /&gt;
* (wow how far semantic HTML awareness has come in the past four years)&lt;br /&gt;
* HTML Accessibility&lt;br /&gt;
* Always use structural semantics to establish &amp;quot;role&amp;quot;&lt;br /&gt;
* E.g., Hn, Label, TH (table headers), lists, etc.&lt;br /&gt;
* (rather than nested DIVs)&lt;br /&gt;
&lt;br /&gt;
=== Building Web Applications ===&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
=== Q&amp;amp;A ===&lt;br /&gt;
&lt;br /&gt;
* Q: What kills JavaScript perf is memory leaks in the browser&lt;br /&gt;
* IE6 has some leaks&lt;br /&gt;
* if you create a circular reference between a document object and a javascript object then it won't go away&lt;br /&gt;
&lt;br /&gt;
* Q: mashups with SSL&lt;br /&gt;
* A: interesting challenge. the real question is how do we securely integrate in a way that is trusted by partners and customers? you have to go entirely HTTPS across the board&lt;br /&gt;
&lt;br /&gt;
* Q: are you familiar with the DOJO toolkit? it solves a lot of the problems memory leaks, back button&lt;br /&gt;
* A: haven't looked too deeply at DOJO.  we have a system where objects get created and destroyed all the time.  not sure if they do document level garbage collection or what.&lt;br /&gt;
&lt;br /&gt;
* Q: about Atlas&lt;br /&gt;
* A: ...&lt;br /&gt;
&lt;br /&gt;
* Q: about using AJAX to build a 24fps videogame&lt;br /&gt;
* A: (heh)&lt;br /&gt;
&lt;br /&gt;
* Q: is there someway we could have a simple lean AJAX request?&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
* Q: what is wrong with using iframes?&lt;br /&gt;
* A: 1. themes won't work with the iframe ''this is ASP.NET-specific reference'' --[[DimitriGlazkov]]&lt;br /&gt;
* A: 2. iframes consume a lot of memory (read: Trident instance) on the order of 20 megabytes of memory (YIKES!)&lt;br /&gt;
* A: 3. security&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=events/2006-03-21-mix06-microformats&amp;diff=5476</id>
		<title>events/2006-03-21-mix06-microformats</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=events/2006-03-21-mix06-microformats&amp;diff=5476"/>
		<updated>2006-03-21T20:16:47Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: formatting changes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Microformats discussions at Mix06 =&lt;br /&gt;
&lt;br /&gt;
March 21st, 2006&lt;br /&gt;
&lt;br /&gt;
== Lessons from the Trenches ==&lt;br /&gt;
&lt;br /&gt;
11am-12:15pm&lt;br /&gt;
&lt;br /&gt;
[[http://spaces.msn.com/siteexperts/}Scott Isaa]]&lt;br /&gt;
&lt;br /&gt;
Notes/Quotes:&lt;br /&gt;
&lt;br /&gt;
=== Lessons from the Trenches: Engineering Great AJAX Experiences ===&lt;br /&gt;
&lt;br /&gt;
=== Modern Development Patterns ===&lt;br /&gt;
* Apply OO principles to web development&lt;br /&gt;
* Shared methodology with Atlas&lt;br /&gt;
* Namespaces, Encapsulation, Inheritance, Object Lifecycle&lt;br /&gt;
* Separate semantics, presentation, and behavior&lt;br /&gt;
&lt;br /&gt;
=== Live Clipboard Demo ===&lt;br /&gt;
* '''&amp;quot;microformats are another key aspect of Web 2.0&amp;quot;*'''&lt;br /&gt;
* '''hCard for contacts, start with class=&amp;quot;vcard&amp;quot;'''&lt;br /&gt;
* '''similarly use hCalendar for events'''&lt;br /&gt;
* '''what Live Clipboard is a use of microformats for integrating your data'''&lt;br /&gt;
* (starts demo)&lt;br /&gt;
* '''starting with just the microformat -- &amp;quot;key part of the ecosystem for remixing the Web&amp;quot;'''&lt;br /&gt;
* '''&amp;quot;I can basically say anything on the page that has class name vcard, I'm going to bind one of those Live Clipboard container objects to it&amp;quot;'''&lt;br /&gt;
* '''&amp;quot;then I'm going to specify the resources to bind to it, ex: clipControl.js and .css&amp;quot;'''&lt;br /&gt;
* '''dynamic recognition of microformats on the page'''&lt;br /&gt;
* '''&amp;quot;any microformat on the page, I want to make copyable&amp;quot;'''&lt;br /&gt;
** &amp;quot;I wanted to copy the hCalendar&amp;quot;&lt;br /&gt;
** &amp;quot;I copied it from IE&amp;quot;&lt;br /&gt;
** &amp;quot;I went to Firefox&amp;quot;&lt;br /&gt;
** &amp;quot;and I pasted&amp;quot;&lt;br /&gt;
** &amp;quot;and the event item shows up on a page viewed in Firefox&amp;quot;&lt;br /&gt;
** &amp;quot;I can copy and paste this whereever I want&amp;quot;&lt;br /&gt;
** &amp;quot;I can copy and paste from Eventful&amp;quot;&lt;br /&gt;
** '''&amp;quot;I can do the same thing with other microformats on the page&amp;quot;'''&lt;br /&gt;
** &amp;quot;I can copy a contact from the IE page ?and paste into that same page that I pasted the event&amp;quot;&lt;br /&gt;
* '''&amp;quot;all the contacts in Hotmail will be hCard automatically remixable into the rest of the Web&amp;quot;'''&lt;br /&gt;
* '''if you start building gadgets with microformats, we'll make them automatically remixable with other gadgets'''&lt;br /&gt;
* '''start exploring using microformats in your web pages'''&lt;br /&gt;
* '''we can start establishing an ecosystem of relevant data'''&lt;br /&gt;
=== XML Proxying And Scalability ===&lt;br /&gt;
=== Web Service Integration ===&lt;br /&gt;
* Do not want to continually parse XML&lt;br /&gt;
* we don't want to deal with SOAP envelopes on the client&lt;br /&gt;
* instead, we build javascript proxies&lt;br /&gt;
* Desire a more natural and efficient approach&lt;br /&gt;
* Web Services generate JavaScript proxies: WeatherService.requestWeatherReport(strLocation,onReceipt)&lt;br /&gt;
* Use generic format for transport (e.g., JSON)&lt;br /&gt;
* Incoming requests marshaled to native server format and outgoing responses to client format&lt;br /&gt;
* Use xmlHttpRequest to access the network, but the wire format is transparent to the application&lt;br /&gt;
* Use raw XML for &amp;quot;documents&amp;quot; (e.g. RSS)&lt;br /&gt;
* but parsing a several 100k document will take upwards of 400ms&lt;br /&gt;
* and that is too long&lt;br /&gt;
* user thinks browser has locked up&lt;br /&gt;
* explore other approaches such as JSON to gain the most efficiences&lt;br /&gt;
efficiency&lt;br /&gt;
=== Optimizing the Network ===&lt;br /&gt;
* AJAX-style applications can become very chatty&lt;br /&gt;
...&lt;br /&gt;
=== Be Wary Of Security ===&lt;br /&gt;
* &amp;quot;could probably spend an hour on this one slide, but will try not to&amp;quot;&lt;br /&gt;
* XSS is an industry challenge we all need to address more&lt;br /&gt;
*as you start exposing services at the edge, XSS becomes a much bigger deal&lt;br /&gt;
* e.g. Gmail, within 3 days, coders developed an API to use Gmail as a disk store&lt;br /&gt;
* Define a standard UI feedback metaphor and stick to it&lt;br /&gt;
* (missed slide)&lt;br /&gt;
=== Prioritizing Network Requests ===&lt;br /&gt;
* AJAX Scenario&lt;br /&gt;
* Your page is preloading images&lt;br /&gt;
* User clicks &amp;quot;Buy It&amp;quot; from ...&lt;br /&gt;
&lt;br /&gt;
=== Code/Resource Deveployment ===&lt;br /&gt;
* More Interactivity = More Code = Slower Site (script are executed synchronously serially)&lt;br /&gt;
* How do you build sites with lots of componenets&lt;br /&gt;
* How do you build a &amp;quot;portal&amp;quot; where the user controls the scope of the application&lt;br /&gt;
* How do you efficiently deploy the necessary code and resources?&lt;br /&gt;
* Understand how the browser works&lt;br /&gt;
* Scripts included on the page block and load one at a time&lt;br /&gt;
* Large number of script blocks can greatly stall loading&lt;br /&gt;
* System for deploying code&lt;br /&gt;
* Patterns allow component resources to load in any order&lt;br /&gt;
* Deployed code asynchronously leveraging all available connections&lt;br /&gt;
* Prioritize the loading of components&lt;br /&gt;
* Never expire static content (change the URL to break the cache)&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=events/2006-03-21-mix06-microformats&amp;diff=5475</id>
		<title>events/2006-03-21-mix06-microformats</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=events/2006-03-21-mix06-microformats&amp;diff=5475"/>
		<updated>2006-03-21T20:13:36Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Microformats discussions at Mix06 =&lt;br /&gt;
&lt;br /&gt;
March 21st, 2006&lt;br /&gt;
&lt;br /&gt;
== Lessons from the Trenches ==&lt;br /&gt;
&lt;br /&gt;
11am-12:15pm&lt;br /&gt;
&lt;br /&gt;
[[http://spaces.msn.com/siteexperts/}Scott Isaa]]&lt;br /&gt;
&lt;br /&gt;
Notes/Quotes:&lt;br /&gt;
&lt;br /&gt;
=== Lessons from the Trenches: Engineering Great AJAX Experiences ===&lt;br /&gt;
&lt;br /&gt;
=== Modern Development Patterns ===&lt;br /&gt;
* Apply OO principles to web development&lt;br /&gt;
* Shared methodology with Atlas&lt;br /&gt;
* Namespaces, Encapsulation, Inheritance, Object Lifecycle&lt;br /&gt;
* Separate semantics, presentation, and behavior&lt;br /&gt;
&lt;br /&gt;
=== Live Clipboard Demo ===&lt;br /&gt;
* *&amp;quot;microformats are another key aspect of Web 2.0&amp;quot;*&lt;br /&gt;
* *hCard for contacts, start with class=&amp;quot;vcard&amp;quot;*&lt;br /&gt;
* *similarly use hCalendar for events*&lt;br /&gt;
* *what Live Clipboard is a use of microformats for integrating your data*&lt;br /&gt;
* (starts demo)&lt;br /&gt;
* *starting with just the microformat -- &amp;quot;key part of the ecosystem for remixing the Web&amp;quot;*&lt;br /&gt;
* *&amp;quot;I can basically say anything on the page that has class name vcard, I'm going to bind one of those Live Clipboard container objects to it&amp;quot;*&lt;br /&gt;
* *&amp;quot;then I'm going to specify the resources to bind to it, ex: clipControl.js and .css&amp;quot;*&lt;br /&gt;
* *dynamic recognition of microformats on the page*&lt;br /&gt;
* *&amp;quot;any microformat on the page, I want to make copyable&amp;quot;*&lt;br /&gt;
** *&amp;quot;I wanted to copy the hCalendar&amp;quot;*&lt;br /&gt;
** *&amp;quot;I copied it from IE&amp;quot;*&lt;br /&gt;
** *&amp;quot;I went to Firefox&amp;quot;*&lt;br /&gt;
** *&amp;quot;and I pasted&amp;quot;*&lt;br /&gt;
** *&amp;quot;and the event item shows up on a page viewed in Firefox&amp;quot;*&lt;br /&gt;
** *&amp;quot;I can copy and paste this whereever I want&amp;quot;*&lt;br /&gt;
** *&amp;quot;I can copy and paste from Eventful&amp;quot;*&lt;br /&gt;
** *&amp;quot;I can do the same thing with other microformats on the page&amp;quot;*&lt;br /&gt;
** *&amp;quot;I can copy a contact from the IE page ?and paste into that same page that I pasted the event&amp;quot;*&lt;br /&gt;
* *&amp;quot;all the contacts in Hotmail will be hCard automatically remixable into the rest of the Web&amp;quot;*&lt;br /&gt;
* *if you start building gadgets with microformats, we'll make them automatically remixable with other gadgets*&lt;br /&gt;
* *start exploring using microformats in your web pages*&lt;br /&gt;
* *we can start establishing an ecosystem of relevant data*&lt;br /&gt;
=== XML Proxying And Scalability ===&lt;br /&gt;
=== Web Service Integration ===&lt;br /&gt;
* Do not want to continually parse XML&lt;br /&gt;
* we don't want to deal with SOAP envelopes on the client&lt;br /&gt;
* instead, we build javascript proxies&lt;br /&gt;
* Desire a more natural and efficient approach&lt;br /&gt;
* Web Services generate JavaScript proxies: WeatherService.requestWeatherReport(strLocation,onReceipt)&lt;br /&gt;
* Use generic format for transport (e.g., JSON)&lt;br /&gt;
* Incoming requests marshaled to native server format and outgoing responses to client format&lt;br /&gt;
* Use xmlHttpRequest to access the network, but the wire format is transparent to the application&lt;br /&gt;
* Use raw XML for &amp;quot;documents&amp;quot; (e.g. RSS)&lt;br /&gt;
* but parsing a several 100k document will take upwards of 400ms&lt;br /&gt;
* and that is too long&lt;br /&gt;
* user thinks browser has locked up&lt;br /&gt;
* explore other approaches such as JSON to gain the most efficiences&lt;br /&gt;
efficiency&lt;br /&gt;
=== Optimizing the Network ===&lt;br /&gt;
* AJAX-style applications can become very chatty&lt;br /&gt;
...&lt;br /&gt;
=== Be Wary Of Security ===&lt;br /&gt;
* &amp;quot;could probably spend an hour on this one slide, but will try not to&amp;quot;&lt;br /&gt;
* XSS is an industry challenge we all need to address more&lt;br /&gt;
*as you start exposing services at the edge, XSS becomes a much bigger deal&lt;br /&gt;
* e.g. Gmail, within 3 days, coders developed an API to use Gmail as a disk store&lt;br /&gt;
* Define a standard UI feedback metaphor and stick to it&lt;br /&gt;
* (missed slide)&lt;br /&gt;
=== Prioritizing Network Requests ===&lt;br /&gt;
* AJAX Scenario&lt;br /&gt;
* Your page is preloading images&lt;br /&gt;
* User clicks &amp;quot;Buy It&amp;quot; from ...&lt;br /&gt;
&lt;br /&gt;
=== Code/Resource Deveployment ===&lt;br /&gt;
* More Interactivity = More Code = Slower Site (script are executed synchronously serially)&lt;br /&gt;
* How do you build sites with lots of componenets&lt;br /&gt;
* How do you build a &amp;quot;portal&amp;quot; where the user controls the scope of the application&lt;br /&gt;
* How do you efficiently deploy the necessary code and resources?&lt;br /&gt;
* Understand how the browser works&lt;br /&gt;
* Scripts included on the page block and load one at a time&lt;br /&gt;
* Large number of script blocks can greatly stall loading&lt;br /&gt;
* System for deploying code&lt;br /&gt;
* Patterns allow component resources to load in any order&lt;br /&gt;
* Deployed code asynchronously leveraging all available connections&lt;br /&gt;
* Prioritize the loading of components&lt;br /&gt;
* Never expire static content (change the URL to break the cache)&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=events/2006-03-21-mix06-microformats&amp;diff=5474</id>
		<title>events/2006-03-21-mix06-microformats</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=events/2006-03-21-mix06-microformats&amp;diff=5474"/>
		<updated>2006-03-21T20:06:14Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Microformats discussions at Mix06 =&lt;br /&gt;
&lt;br /&gt;
March 21st, 2006&lt;br /&gt;
&lt;br /&gt;
== Lessons from the Trenches ==&lt;br /&gt;
&lt;br /&gt;
11am-12:15pm&lt;br /&gt;
&lt;br /&gt;
Scott Isaacs&lt;br /&gt;
&lt;br /&gt;
Notes/Quotes:&lt;br /&gt;
&lt;br /&gt;
=== Lessons from the Trenches: Engineering Great AJAX Experiences ===&lt;br /&gt;
&lt;br /&gt;
=== Modern Development Patterns ===&lt;br /&gt;
* Apply OO principles to web development&lt;br /&gt;
* Shared methodology with Atlas&lt;br /&gt;
* Namespaces, Encapsulation, Inheritance, Object Lifecycle&lt;br /&gt;
* Separate semantics, presentation, and behavior&lt;br /&gt;
&lt;br /&gt;
=== Live Clipboard Demo ===&lt;br /&gt;
* &amp;quot;microformats are another key aspect of Web 2.0&amp;quot;&lt;br /&gt;
* hCard for contacts, start with class=&amp;quot;vcard&amp;quot;&lt;br /&gt;
* similarly use hCalendar for events&lt;br /&gt;
* what Live Clipboard is a use of microformats for integrating your data&lt;br /&gt;
* (starts demo)&lt;br /&gt;
* starting with just the microformat -- &amp;quot;key part of the ecosystem for remixing the Web&amp;quot;&lt;br /&gt;
* &amp;quot;I can basically say anything on the page that has class name vcard, I'm going to bind one of those Live Clipboard container objects to it&amp;quot;&lt;br /&gt;
* &amp;quot;then I'm going to specify the resources to bind to it, ex: clipControl.js and .css&amp;quot;&lt;br /&gt;
* dynamic recognition of microformats on the page&lt;br /&gt;
* &amp;quot;any microformat on the page, I want to make copyable&amp;quot;&lt;br /&gt;
** &amp;quot;I wanted to copy the hCalendar&amp;quot;&lt;br /&gt;
** &amp;quot;I copied it from IE&amp;quot;&lt;br /&gt;
** &amp;quot;I went to Firefox&amp;quot;&lt;br /&gt;
** &amp;quot;and I pasted&amp;quot;&lt;br /&gt;
** &amp;quot;and the event item shows up on a page viewed in Firefox&amp;quot;&lt;br /&gt;
** &amp;quot;I can copy and paste this whereever I want&amp;quot;&lt;br /&gt;
** &amp;quot;I can copy and paste from Eventful&amp;quot;&lt;br /&gt;
** &amp;quot;I can do the same thing with other microformats on the page&amp;quot;&lt;br /&gt;
** &amp;quot;I can copy a contact from the IE page ?and paste into that same page that I pasted the event&amp;quot;&lt;br /&gt;
* &amp;quot;all the contacts in Hotmail will be hCard automatically remixable into the rest of the Web&amp;quot;&lt;br /&gt;
* if you start building gadgets with microformats, we'll make them automatically remixable with other gadgets&lt;br /&gt;
* start exploring using microformats in your web pages&lt;br /&gt;
* we can start establishing an ecosystem of relevant data&lt;br /&gt;
=== XML Proxying And Scalability ===&lt;br /&gt;
=== Web Service Integration ===&lt;br /&gt;
* Do not want to continually parse XML&lt;br /&gt;
* we don't want to deal with SOAP envelopes on the client&lt;br /&gt;
* instead, we build javascript proxies&lt;br /&gt;
* Desire a more natural and efficient approach&lt;br /&gt;
* Web Services generate JavaScript proxies: WeatherService.requestWeatherReport(strLocation,onReceipt)&lt;br /&gt;
* Use generic format for transport (e.g., JSON)&lt;br /&gt;
* Incoming requests marshaled to native server format and outgoing responses to client format&lt;br /&gt;
* Use xmlHttpRequest to access the network, but the wire format is transparent to the application&lt;br /&gt;
* Use raw XML for &amp;quot;documents&amp;quot; (e.g. RSS)&lt;br /&gt;
* but parsing a several 100k document will take upwards of 400ms&lt;br /&gt;
* and that is too long&lt;br /&gt;
* user thinks browser has locked up&lt;br /&gt;
* explore other approaches such as JSON to gain the most efficiences&lt;br /&gt;
efficiency&lt;br /&gt;
=== Optimizing the Network ===&lt;br /&gt;
* AJAX-style applications can become very chatty&lt;br /&gt;
...&lt;br /&gt;
=== Be Wary Of Security ===&lt;br /&gt;
* &amp;quot;could probably spend an hour on this one slide, but will try not to&amp;quot;&lt;br /&gt;
* XSS is an industry challenge we all need to address more&lt;br /&gt;
*as you start exposing services at the edge, XSS becomes a much bigger deal&lt;br /&gt;
* e.g. Gmail, within 3 days, coders developed an API to use Gmail as a disk store&lt;br /&gt;
* Define a standard UI feedback metaphor and stick to it&lt;br /&gt;
* (missed slide)&lt;br /&gt;
=== Prioritizing Network Requests ===&lt;br /&gt;
* AJAX Scenario&lt;br /&gt;
* Your page is preloading images&lt;br /&gt;
* User clicks &amp;quot;Buy It&amp;quot; from ...&lt;br /&gt;
&lt;br /&gt;
=== Code/Resource Deveployment ===&lt;br /&gt;
* More Interactivity = More Code = Slower Site (script are executed synchronously serially)&lt;br /&gt;
* How do you build sites with lots of componenets&lt;br /&gt;
* How do you build a &amp;quot;portal&amp;quot; where the user controls the scope of the application&lt;br /&gt;
* How do you efficiently deploy the necessary code and resources?&lt;br /&gt;
* Understand how the browser works&lt;br /&gt;
* Scripts included on the page block and load one at a time&lt;br /&gt;
* Large number of script blocks can greatly stall loading&lt;br /&gt;
* System for deploying code&lt;br /&gt;
* Patterns allow component resources to load in any order&lt;br /&gt;
* Deployed code asynchronously leveraging all available connections&lt;br /&gt;
* Prioritize the loading of components&lt;br /&gt;
* Never expire static content (change the URL to break the cache)&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=events/2006-03-21-mix06-microformats&amp;diff=5473</id>
		<title>events/2006-03-21-mix06-microformats</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=events/2006-03-21-mix06-microformats&amp;diff=5473"/>
		<updated>2006-03-21T20:04:31Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Microformats discussions at Mix06 =&lt;br /&gt;
&lt;br /&gt;
March 21st, 2006&lt;br /&gt;
&lt;br /&gt;
== Lessons from the Trenches ==&lt;br /&gt;
&lt;br /&gt;
11am-12:15pm&lt;br /&gt;
&lt;br /&gt;
Scott Isaacs&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Lessons from the Trenches: Engineering Great AJAX Experiences&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Notes/Quotes:&lt;br /&gt;
&lt;br /&gt;
=== Modern Development Patterns ===&lt;br /&gt;
* Apply OO principles to web development&lt;br /&gt;
* Shared methodology with Atlas&lt;br /&gt;
* Namespaces, Encapsulation, Inheritance, Object Lifecycle&lt;br /&gt;
* Separate semantics, presentation, and behavior&lt;br /&gt;
&lt;br /&gt;
=== Live Clipboard Demo ===&lt;br /&gt;
* &amp;quot;microformats are another key aspect of Web 2.0&amp;quot;&lt;br /&gt;
* hCard for contacts, start with class=&amp;quot;vcard&amp;quot;&lt;br /&gt;
* similarly use hCalendar for events&lt;br /&gt;
* what Live Clipboard is a use of microformats for integrating your data&lt;br /&gt;
* (starts demo)&lt;br /&gt;
* starting with just the microformat -- &amp;quot;key part of the ecosystem for remixing the Web&amp;quot;&lt;br /&gt;
* &amp;quot;I can basically say anything on the page that has class name vcard, I'm going to bind one of those Live Clipboard container objects to it&amp;quot;&lt;br /&gt;
* &amp;quot;then I'm going to specify the resources to bind to it, ex: clipControl.js and .css&amp;quot;&lt;br /&gt;
* dynamic recognition of microformats on the page&lt;br /&gt;
* &amp;quot;any microformat on the page, I want to make copyable&amp;quot;&lt;br /&gt;
** &amp;quot;I wanted to copy the hCalendar&amp;quot;&lt;br /&gt;
** &amp;quot;I copied it from IE&amp;quot;&lt;br /&gt;
** &amp;quot;I went to Firefox&amp;quot;&lt;br /&gt;
** &amp;quot;and I pasted&amp;quot;&lt;br /&gt;
** &amp;quot;and the event item shows up on a page viewed in Firefox&amp;quot;&lt;br /&gt;
** &amp;quot;I can copy and paste this whereever I want&amp;quot;&lt;br /&gt;
** &amp;quot;I can copy and paste from Eventful&amp;quot;&lt;br /&gt;
** &amp;quot;I can do the same thing with other microformats on the page&amp;quot;&lt;br /&gt;
** &amp;quot;I can copy a contact from the IE page ?and paste into that same page that I pasted the event&amp;quot;&lt;br /&gt;
* &amp;quot;all the contacts in Hotmail will be hCard automatically remixable into the rest of the Web&amp;quot;&lt;br /&gt;
* if you start building gadgets with microformats, we'll make them automatically remixable with other gadgets&lt;br /&gt;
* start exploring using microformats in your web pages&lt;br /&gt;
* we can start establishing an ecosystem of relevant data&lt;br /&gt;
=== XML Proxying And Scalability ===&lt;br /&gt;
=== Web Service Integration ===&lt;br /&gt;
* Do not want to continually parse XML&lt;br /&gt;
* we don't want to deal with SOAP envelopes on the client&lt;br /&gt;
* instead, we build javascript proxies&lt;br /&gt;
* Desire a more natural and efficient approach&lt;br /&gt;
* Web Services generate JavaScript proxies: WeatherService.requestWeatherReport(strLocation,onReceipt)&lt;br /&gt;
* Use generic format for transport (e.g., JSON)&lt;br /&gt;
* Incoming requests marshaled to native server format and outgoing responses to client format&lt;br /&gt;
* Use xmlHttpRequest to access the network, but the wire format is transparent to the application&lt;br /&gt;
* Use raw XML for &amp;quot;documents&amp;quot; (e.g. RSS)&lt;br /&gt;
* but parsing a several 100k document will take upwards of 400ms&lt;br /&gt;
* and that is too long&lt;br /&gt;
* user thinks browser has locked up&lt;br /&gt;
* explore other approaches such as JSON to gain the most efficiences&lt;br /&gt;
efficiency&lt;br /&gt;
=== Optimizing the Network ===&lt;br /&gt;
* AJAX-style applications can become very chatty&lt;br /&gt;
...&lt;br /&gt;
=== Be Wary Of Security ===&lt;br /&gt;
* &amp;quot;could probably spend an hour on this one slide, but will try not to&amp;quot;&lt;br /&gt;
* XSS is an industry challenge we all need to address more&lt;br /&gt;
*as you start exposing services at the edge, XSS becomes a much bigger deal&lt;br /&gt;
* e.g. Gmail, within 3 days, coders developed an API to use Gmail as a disk store&lt;br /&gt;
* Define a standard UI feedback metaphor and stick to it&lt;br /&gt;
* (missed slide)&lt;br /&gt;
=== Prioritizing Network Requests ===&lt;br /&gt;
* AJAX Scenario&lt;br /&gt;
* Your page is preloading images&lt;br /&gt;
* User clicks &amp;quot;Buy It&amp;quot; from ...&lt;br /&gt;
&lt;br /&gt;
=== Code/Resource Deveployment ===&lt;br /&gt;
* More Interactivity = More Code = Slower Site (script are executed synchronously serially)&lt;br /&gt;
* How do you build sites with lots of componenets&lt;br /&gt;
* How do you build a &amp;quot;portal&amp;quot; where the user controls the scope of the application&lt;br /&gt;
* How do you efficiently deploy the necessary code and resources?&lt;br /&gt;
* Understand how the browser works&lt;br /&gt;
* Scripts included on the page block and load one at a time&lt;br /&gt;
* Large number of script blocks can greatly stall loading&lt;br /&gt;
* System for deploying code&lt;br /&gt;
* Patterns allow component resources to load in any order&lt;br /&gt;
* Deployed code asynchronously leveraging all available connections&lt;br /&gt;
* Prioritize the loading of components&lt;br /&gt;
* Never expire static content (change the URL to break the cache)&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=events/2006-03-21-mix06-microformats&amp;diff=5472</id>
		<title>events/2006-03-21-mix06-microformats</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=events/2006-03-21-mix06-microformats&amp;diff=5472"/>
		<updated>2006-03-21T19:51:14Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: first dump&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Microformats discussions at Mix06 =&lt;br /&gt;
&lt;br /&gt;
March 21st, 2006&lt;br /&gt;
&lt;br /&gt;
== Lessons from the Trenches ==&lt;br /&gt;
&lt;br /&gt;
11am-12:15pm&lt;br /&gt;
&lt;br /&gt;
Scott Isaacs&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Lessons from the Trenches: Engineering Great AJAX Experiences&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Notes/Quotes:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Modern Development Patterns&amp;quot;*&lt;br /&gt;
​* Apply OO principles to web development&lt;br /&gt;
​* Shared methodology with Atlas&lt;br /&gt;
​* Namespaces, Encapsulation, Inheritance, Object Lifecycle&lt;br /&gt;
​* Separate semantics, presentation, and behavior&lt;br /&gt;
​&amp;quot;Live Clipboard Demo&amp;quot;&lt;br /&gt;
​* microformats are another key aspect of Web 2.0&lt;br /&gt;
​​* ​hCard for contacts, start with class=&amp;quot;vcard&amp;quot;&lt;br /&gt;
​* similarly use hCalendar for events&lt;br /&gt;
​* what Live Clipboard is a use of microformats for integrating your data&lt;br /&gt;
​* (starts demo)&lt;br /&gt;
​* &amp;quot;Live Clipboard Demo&amp;quot;&lt;br /&gt;
​* starting with just the microformat&lt;br /&gt;
​​* &amp;quot;key part of the ecosystem for remixing the Web&lt;br /&gt;
​* &amp;quot;I can basically say anything on the page that has class name vcard, I'm going to bind one of those Live Clipboard container objects to it&amp;quot;&lt;br /&gt;
​* &amp;quot;then I'm going to specify the resources to bind to it, ex: clipControl.js and .css&lt;br /&gt;
​* dynamic recognition of microformats on the page&lt;br /&gt;
​* any microformat on the page, I want to make copyable&lt;br /&gt;
​* I wanted to copy the hCalendar&lt;br /&gt;
​* I copied it from IE&lt;br /&gt;
​* I went to Firefox&lt;br /&gt;
​* and I pasted&lt;br /&gt;
​* and the event item shows up on a page viewed in Firefox&lt;br /&gt;
​* I can copy and paste this whereever I want&lt;br /&gt;
​* I can copy and paste from Eventful&lt;br /&gt;
​* I can do the same thing with other microformats on the page&lt;br /&gt;
​* I can copy a contact from the IE page ​and paste into that same page that I pasted the event&lt;br /&gt;
​* &amp;quot;​all the contacts in Hotmail will be hCard automatically remixable into the rest of the Web&amp;quot;&lt;br /&gt;
​* if you start building gadgets with microformats, we'll make them automatically remixable with other gadgets&lt;br /&gt;
* ​start exploring using microformats in your web pages&lt;br /&gt;
​​* ​we can start establishing an ecosystem of relevant data&lt;br /&gt;
​&amp;quot;XML Proxying And Scalability&amp;quot;&lt;br /&gt;
​&amp;quot;Web Service Integration&amp;quot;&lt;br /&gt;
​* Do not want to continually parse XML&lt;br /&gt;
​* we don't want to deal with SOAP envelopes on the client&lt;br /&gt;
​* instead, we build javascript proxies&lt;br /&gt;
​* Desire a more natural and efficient approach&lt;br /&gt;
​* Web Services generate JavaScript proxies: WeatherService.requestWeatherRepo​rt(strLocation,onReceipt)&lt;br /&gt;
​* Use generic format for transport (e.g., JSON)&lt;br /&gt;
​* Incoming requests marshaled to native server format and outgoing responses to client format&lt;br /&gt;
​* Use xmlHttpRequest to access the network, but the wire format is transparent to the application&lt;br /&gt;
​* Use raw XML for &amp;quot;documents&amp;quot; (e.g. RSS)&lt;br /&gt;
​but parsing a several 100k document will take upwards of 400ms&lt;br /&gt;
and that is too long&lt;br /&gt;
​user thinks browser has locked up&lt;br /&gt;
​explore other approaches such as JSON to gain the most efficiences&lt;br /&gt;
​efficiency&lt;br /&gt;
​&amp;quot;Optimizing the Network&amp;quot;&lt;br /&gt;
​* AJAX-style applications can become very chatty&lt;br /&gt;
...&lt;br /&gt;
&amp;quot;Be Wary Of Security&amp;quot;&lt;br /&gt;
​could probably spend an hour on this one slide, but will try not to&lt;br /&gt;
​XSS is an industry challenge we all need to address more&lt;br /&gt;
as you start exposing services at the edge, XSS becomes a much bigger deal&lt;br /&gt;
​​​e.g. Gmail, within 3 days, coders developed an API to use Gmail as a disk store&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=hcard-brainstorming&amp;diff=5056</id>
		<title>hcard-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=hcard-brainstorming&amp;diff=5056"/>
		<updated>2006-02-22T19:05:57Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: /* Implied &amp;quot;FN and N&amp;quot; Optimization (proposal) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= hCard Brainstorming =&lt;br /&gt;
__TOC__&lt;br /&gt;
== Authors ==&lt;br /&gt;
* [http://suda.co.uk/ Brian Suda]&lt;br /&gt;
* [http://tantek.com/log/ Tantek Çelik], [http://technorati.com Technorati, Inc]&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
* See [[hcard-examples]], which provides several illustrative instructive examples, as well as 1:1 hCard examples for each example in [http://www.ietf.org/rfc/rfc2426.txt RFC 2426].&lt;br /&gt;
&lt;br /&gt;
=== Using RFC2806 with hCard ===&lt;br /&gt;
&lt;br /&gt;
[http://www.ietf.org/rfc/rfc2806.txt RFC 2806] defines the telephone scheme &amp;quot;tel:&amp;quot;, &amp;quot;fax:&amp;quot; and &amp;quot;modem:&amp;quot; to handle phone communications with URIs in the same way, &amp;quot;mailto:&amp;quot; is defined for email. It's part of the list or registered schemes by IANA : [http://www.iana.org/assignments/uri-schemes Uniform Resource Identifier (URI) SCHEMES]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
tel   telephone [RFC2806]&lt;br /&gt;
fax   fax       [RFC2806]&lt;br /&gt;
modem modem     [RFC2806]&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is practical to write your tel number like this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;a class=&amp;quot;tel&amp;quot;      href=&amp;quot;tel:+1-919-555-7878&amp;gt;+1-919-555-7878&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or even&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;a class=&amp;quot;tel&amp;quot;      href=&amp;quot;tel:+1-919-555-7878&amp;gt;Mr Smith's phone&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can add support for &amp;quot;tel:&amp;quot; to your desktop and to your browser&lt;br /&gt;
&lt;br /&gt;
* For Gnome, edit ~/.gnome/Gnome and add something to the URL Handlers section. (Dan Connolly uses this to get galeon to launch telnum from [http://dev.w3.org/cvsweb/2001/telagent/ telagent sources] for tel URIs)&lt;br /&gt;
* In Mozilla, [http://dizzy.mozdev.org/ Dizzy]&lt;br /&gt;
* In Internet Explorer, [http://msdn.microsoft.com/workshop/networking/pluggable/overview/overview.asp Asynchronous Pluggable Protocols]&lt;br /&gt;
&lt;br /&gt;
On the CSS front… You could for example add automagically an icon. I have put the property !important for those who wants to add it to their own stylesheet in their browsers, so they know type of links when browsing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
a[href^=&amp;quot;tel:&amp;quot;]:before {&lt;br /&gt;
    content: '\260f  ' !important;&lt;br /&gt;
    padding-left: 20px !important; }&lt;br /&gt;
&lt;br /&gt;
a[href^=&amp;quot;mailto:&amp;quot;]:before {&lt;br /&gt;
    content: '\2709  ' !important;&lt;br /&gt;
    padding-left: 20px !important; }&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Encoding &amp;quot;modern&amp;quot; attributes ==&lt;br /&gt;
&lt;br /&gt;
Since vCard was first established, various interactive communication technologies and addressing schemes have been widely adopted.  Although there aren't specific properties for these technologies / addressing schemes, they can be captured as URLs or email addresses.&lt;br /&gt;
&lt;br /&gt;
This has now been written up for the most part. See:&lt;br /&gt;
&lt;br /&gt;
http://microformats.org/wiki/hcard-examples#New_Types_of_Contact_Info&lt;br /&gt;
&lt;br /&gt;
Still to be addressed:&lt;br /&gt;
&lt;br /&gt;
* iChat mac.com  addresses, simply store &amp;quot;@mac.com&amp;quot; email addresses, e.g.&lt;br /&gt;
** &amp;lt;code&amp;gt;&amp;amp;lt;a class=&amp;quot;email&amp;quot; href=&amp;quot;mailto:steve@mac.com&amp;quot;&amp;amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
* MSN Instant Messenger, you can simple store &amp;quot;@hotmail.com&amp;quot; or &amp;quot;@msn.com&amp;quot; or &amp;quot;@passport.com&amp;quot; email addresses.&lt;br /&gt;
* Internet Relay Chat (IRC), use &amp;quot;irc:&amp;quot; URLs.&lt;br /&gt;
&lt;br /&gt;
== Encoding Company data as a Business Card (proposal) ==&lt;br /&gt;
In the wild there are several hCards that do not currently validate because they are businesses that have omitted the &amp;quot;fn&amp;quot; property in favor of the &amp;quot;org&amp;quot; property.&lt;br /&gt;
&lt;br /&gt;
Proposal: hCards representing a business or organization MUST set fn AND org to the same value.  Parsers may then use this equivalence, if detected, to treat an hCard as the contact info for a business or organization rather than an individual.&lt;br /&gt;
&lt;br /&gt;
Note that [http://microformats.org/wiki/vcard-implementations#organization_vs._individual Apple Address Book supports this semantic when importing vCards].&lt;br /&gt;
&lt;br /&gt;
See the [http://technorati.com/about/contact.html Technorati Contact Info] for an example.&lt;br /&gt;
&lt;br /&gt;
== Implied &amp;quot;FN and N&amp;quot; Optimization (proposal) ==&lt;br /&gt;
&lt;br /&gt;
Right now a parser first looks for an &amp;quot;n&amp;quot; element.&lt;br /&gt;
&lt;br /&gt;
And then if no &amp;quot;n&amp;quot; is present, look for an &amp;quot;fn&amp;quot; element to use to imply an &amp;quot;n&amp;quot; element per the &amp;quot;implied n property&amp;quot; rules in the spec.&lt;br /&gt;
&lt;br /&gt;
BACKGROUND:&lt;br /&gt;
&lt;br /&gt;
Due to the prevalence of the use of &amp;quot;nicknames&amp;quot; or &amp;quot;handles&amp;quot; on the Web, in actual content published on the Web (e.g. authors of reviews), there has been a discussion about adding a &amp;quot;fn&amp;quot; shortcut to the &amp;quot;n&amp;quot; shortcut that used the &amp;quot;nickname&amp;quot; as a fallback.&lt;br /&gt;
&lt;br /&gt;
PROPOSAL:&lt;br /&gt;
&lt;br /&gt;
We should consider adding one more implied optimization after the steps documented above and that is:&lt;br /&gt;
&lt;br /&gt;
If no &amp;quot;fn&amp;quot; is present either, then look for a &amp;quot;nickname&amp;quot; element to use to imply both the &amp;quot;fn&amp;quot;, and the &amp;quot;n/given-name&amp;quot;, leaving the &amp;quot;n/family-name&amp;quot; as empty.&lt;br /&gt;
&lt;br /&gt;
This would enable &amp;quot;nickname&amp;quot; only hCards for denoting and individual on a website, which is quite common on blogs and reviews published on the Web.&lt;br /&gt;
* +1 [[User:Atamido|Atamido]]&lt;br /&gt;
* +1 [[User:ChrisMessina|ChrisMessina]] - note: multiple alternate nicknames should also be allowed&lt;br /&gt;
* +1 [[User:DimitriGlazkov|DimitriGlazkov]]&lt;br /&gt;
&lt;br /&gt;
== CSS Styles ==&lt;br /&gt;
Not only can you create semantics with the hCard values, but you can add CSS styles to them as well. You are free to style the terms in any way you want, but here we can list a few ideas for how to style terms.&lt;br /&gt;
&lt;br /&gt;
If you want to encode hCard data, but do NOT want to display it in the HTML code, then you can hide that tag in CSS with the following code:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;display: none&amp;quot;&amp;gt;Hidden Data&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Transforming applications will still find the data and use it when converting hCards to vCards.&lt;br /&gt;
&lt;br /&gt;
== Auto-Discovery ==&lt;br /&gt;
There is currently a debate over the best way to add an auto discovery link to your HTML to extract the vCard.&lt;br /&gt;
&lt;br /&gt;
On the page with the hCard encoding, the best link would be as follows:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; &amp;lt;link rel=&amp;quot;alternate&amp;quot; type=&amp;quot;text/vcard&amp;quot; href=&amp;quot;...&amp;quot; /&amp;gt; &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
this HTML page is an alternate view of the vCard.&lt;br /&gt;
&lt;br /&gt;
[[User:EtanWexler|EtanWexler]] disagrees with the value of the “type” attribute. The [http://www.iana.org/ Internet Assigned Numbers Authority] has no registration for a “text/vcard” type. The [http://www.iana.org/assignments/media-types/text/ registered and appropriate type] for vCard entities is “text/directory”, as defined in Internet RFC 2425, “[http://www.rfc-editor.org/rfc/rfc2425.txt A MIME Content-Type for Directory Information]”. RFC 2426, “[http://www.rfc-editor.org/rfc/rfc2425.txt vCard MIME Directory Profile]”, specifies the vCard profile for “text/directory” entities, which profile the MIME/HTTP header field “Content-Type” would indicate with a “profile” parameter whose value is “VCARD”. It is unclear whether the HTML/XHTML “type” attribute allows values with parameters. On 2004-05-23, [http://bjoern.hoehrmann.de/ Björn Höhrmann] sent to the [http://www.w3.org/2002/05/html/charter HTML Working Group] a [http://www.w3.org/mid/40ccdc4d.97400945@smtp.bjoern.hoehrmann.de request for clarification] on the issue.&lt;br /&gt;
&lt;br /&gt;
When on a different page, referencing that encoded page in the href would ''not'' be an alternate view of the current page. So a different rel type must be established to decribe that relationship. The ideas vary from specific to vague. The list and categories follow:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
rel=&amp;quot;contactinfo&amp;quot;&lt;br /&gt;
rel=&amp;quot;profile&amp;quot;&lt;br /&gt;
rel=&amp;quot;author&amp;quot;&lt;br /&gt;
rel='PIM'&lt;br /&gt;
rel='person'&lt;br /&gt;
rel='about'&lt;br /&gt;
rel='contact'&lt;br /&gt;
rel='hcard'&lt;br /&gt;
rel='microformat'&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Example of mixing two rel types to a single page.&lt;br /&gt;
rel=&amp;quot;hcard xfn&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Note: using rel=&amp;quot;vcard&amp;quot; indicates a link directly to a vCard. If the document links to an hCard instead, the indication is untrue and inappropriate.&lt;br /&gt;
&lt;br /&gt;
=== Auto-Discovery for XFN ===&lt;br /&gt;
&lt;br /&gt;
An author will typically their XFN information on a specific page, rather than all pages.  In particular, a specific page separate from the home page of their blog, and thus it would be useful to have an explicit rel value to assist in auto-discovery of XFN information.&lt;br /&gt;
&lt;br /&gt;
This was suggested by Jens Alfke on 20050606 at the WWDC blogger's dinner.&lt;br /&gt;
&lt;br /&gt;
== Issues with vCard Applications ==&lt;br /&gt;
See [[vcard-implementations]].&lt;br /&gt;
&lt;br /&gt;
== Open Questions ==&lt;br /&gt;
&lt;br /&gt;
Q: since many of the components would be using CSS classes for encoding data, it is possible to MIX two different profiles. (e.g. hCard and XFN) There are no real constraints on where/how to enforce class names, these are based on the html profile, since it is difficult to associate the text within the attribute to a specific profile. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;a href=&amp;quot;mailto:joe.smith@example.com&amp;quot; class=&amp;quot;fn&amp;quot; rel=&amp;quot;met&amp;quot;&amp;gt;Joe Smith&amp;lt;/a&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-- [http://suda.co.uk/ Brian Suda]&lt;br /&gt;
&lt;br /&gt;
Q: Preserving White space? Should the transforming applications preserve extra white space characters? For example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;http://mywebsite.com/&amp;quot; class=&amp;quot;fn n&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;given-name&amp;quot;&amp;gt;John&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;other-names&amp;quot;&amp;gt;Q.&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;family-name&amp;quot;&amp;gt;Public&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When transformed into a vCard, the N property will pick apart the span tags and create the value for N correctly seperated by colons. The FN property will take a string and simply display it. There are two possible renderings for FN:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
John Q. Public&lt;br /&gt;
&lt;br /&gt;
    John&lt;br /&gt;
    Q.&lt;br /&gt;
    Public&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Either the white-space is preserved or it is not. Which should the transforming applications render?&lt;br /&gt;
&lt;br /&gt;
-- [http://suda.co.uk/ Brian Suda]&lt;br /&gt;
&lt;br /&gt;
A: The parsing application should follow the white space collapsing rules of the mime type it retrieves.  I.e. if it retrieves a &amp;quot;text/html&amp;quot; document, it should do HTML white space collapsing.&lt;br /&gt;
&lt;br /&gt;
-- [http://tantek.com/log/ Tantek]&lt;br /&gt;
&lt;br /&gt;
Many of the Questions and Answers are relevant to both [&amp;quot;hCal&amp;quot;] and hCard.&lt;br /&gt;
&lt;br /&gt;
Q: Would it be appropriate to wrap the name of the vCard owner with &amp;lt;dfn/&amp;gt;? This may give the hCard some added semantic value in the XHTML document.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;agent&amp;quot;&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;email&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;a class=&amp;quot;internet&amp;quot; href=&amp;quot;mailto:jfriday@host.com&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;dfn&amp;gt;&lt;br /&gt;
       &amp;lt;span class=&amp;quot;fn&amp;quot;&amp;gt;Joe Friday&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;/dfn&amp;gt;&lt;br /&gt;
   &amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;tel&amp;quot;&amp;gt;+1-919-555-7878&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;title&amp;quot;&amp;gt;Area Administrator, Assistant&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
-- [http://www.ben-ward.co.uk/ Ben Ward]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
Applications that are hCard aware or can convert hCard to vCard formats.&lt;br /&gt;
&lt;br /&gt;
=== Copy hCards favelet(s) ===&lt;br /&gt;
* I think a Favelet would work nicely here. When you find a page that is hCard friendly, you click the favlet and you get yourself a vCard. This is done!  See X2V in the implementations section of the [[hcard|hCard]] spec.&lt;br /&gt;
&lt;br /&gt;
=== Distributed Commentor Icons ===&lt;br /&gt;
&lt;br /&gt;
* See [http://thedredge.org/2005/06/using-hcards-in-your-blog/ using hCards in your blog] for an example of hCards used for comment authors (commentors).  The system used there, &amp;quot;Gravatars&amp;quot;, is a centralized site that serves commentor icons that requires login etc.  &lt;br /&gt;
&lt;br /&gt;
What if we gave each commentor the option of hosting their own icon?&lt;br /&gt;
&lt;br /&gt;
A distributed commentor icon implementation could work like this:&lt;br /&gt;
&lt;br /&gt;
# Given the URL of a commentor, look for an &amp;lt;code&amp;gt;&amp;lt;address&amp;gt;&amp;lt;/code&amp;gt; element with classname of &amp;quot;vcard&amp;quot; at the commentor's URL.  The &amp;lt;code&amp;gt;&amp;lt;address&amp;gt;&amp;lt;/code&amp;gt; element is supposed to be the contact information for the page (see [[hcard-faq|hCard FAQ]] for more info), so this makes sense.&lt;br /&gt;
# Next, look for the first element inside that hcard that has a classname of &amp;quot;logo&amp;quot;.&lt;br /&gt;
# Hopefully that element is an &amp;lt;code&amp;gt;&amp;lt;img&amp;gt;&amp;lt;/code&amp;gt;, and if so, use its src to get the commentor's icon.&lt;br /&gt;
# Presto.  You've got distributed commentor icons!&lt;br /&gt;
&lt;br /&gt;
== Spam prevention ==&lt;br /&gt;
hCard uses &amp;lt;code&amp;gt;mailto:&amp;lt;/code&amp;gt; links, and therefore&lt;br /&gt;
it automatically &amp;quot;inherits&amp;quot; the disadvantage of &amp;lt;code&amp;gt;mailto:&amp;lt;/code&amp;gt; links:&lt;br /&gt;
These links can be easily detected by emails spiders (used by spammers).&lt;br /&gt;
&lt;br /&gt;
There are ways to prevent email address detection by simple email spiders, while&lt;br /&gt;
still retaining full compatibility with (X)HTML applications.&lt;br /&gt;
One common way is to &amp;quot;encode&amp;quot; the the &amp;quot;m&amp;quot; of &amp;quot;mail&amp;quot; and &amp;quot;@&amp;quot; with character entities:&lt;br /&gt;
&lt;br /&gt;
Example of the original link:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;a class=&amp;quot;email&amp;quot; href=&amp;quot;mailto:john.smith@example.com&amp;quot;&amp;gt;john.smith@example.com&amp;lt;/a&amp;gt; &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example of the &amp;quot;encoded&amp;quot; link:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;a class=&amp;quot;e&amp;amp;amp;#109;ail&amp;quot; href=&amp;quot;&amp;amp;amp;#109;ailto:john.smith&amp;amp;amp;#064;example.com&amp;quot;&amp;gt;john.smith&amp;amp;amp;#064;example.com&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Simple email spiders which do not do character entity decoding will therefore not be able to find your email address.&lt;br /&gt;
&lt;br /&gt;
''Note:'' Perhaps there are or will be email spiders which can decode entities, so the this technique will only help with some (cheap) email spiders.&lt;br /&gt;
(See also: http://rbach.priv.at/Misc/2005/EmailSpiderTest)&lt;br /&gt;
&lt;br /&gt;
== Tutorials ==&lt;br /&gt;
* How to hCard encode entries in Popular blog software.&lt;br /&gt;
* Good reasons to publish your hCard&lt;br /&gt;
** as a business, get people to put you in their address book so they'll find you later&lt;br /&gt;
** as a business with an email list, get people to add you (with email address) to their address book so that your email list works via whitelisting via the address book.&lt;br /&gt;
&lt;br /&gt;
== Parsing ==&lt;br /&gt;
See separate [[hcard-parsing|hCard parsing]] page.&lt;br /&gt;
&lt;br /&gt;
== Post vCard additions ==&lt;br /&gt;
&lt;br /&gt;
Some have found vCard to be limiting in terms of the data/properties/fields they want to express in contact information.  Some implementations use vCard extensions to express such information.&lt;br /&gt;
&lt;br /&gt;
This section is for documentation of such suggested additions.  Note, we will require empirical evidence of actual *real world* examples on the Web of people publishing this information as part of contact information, before considering such additions/extensions.&lt;br /&gt;
&lt;br /&gt;
* altitude. From [[hcard-issues]].&lt;br /&gt;
** No evidence provided that contact information on the Web publishes this information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* The [[hcard-profile]] needs verification and perhaps a URL for retrieving the actual XMDP, rather than as &amp;amp;lt;pre&amp;amp;gt; text on a wiki page.&lt;br /&gt;
* Complete translating the examples from the vCard spec into hCard, and place them on a separate hCard examples page.&lt;br /&gt;
* Create a &amp;quot;rich&amp;quot; but realistic hCard example, say for example for a salesperson, who wants to put a whole bunch of contact information on their website in order to be found/contacted easily.&lt;br /&gt;
* Provide examples of how to encode instant messaging (IM) accounts. Figure out what would the mailto: or aim: URL in hCard look like in vCard. And take a look at what vCard applications do today with IM addresses.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Normative References ===&lt;br /&gt;
* [http://www.ietf.org/rfc/rfc2426.txt RFC 2426] vCard RFC&lt;br /&gt;
* [http://www.ietf.org/rfc/rfc2397 RFC 2397] data URI RFC&lt;br /&gt;
* [http://gmpg.org/xmdp/ XMDP]&lt;br /&gt;
=== Informative References ===&lt;br /&gt;
* [http://www.imc.org/pdi/ Personal Data Interchange (PDI) at the Internet Mail Consortium]&lt;br /&gt;
* [http://tantek.com/log/2004/07.html#d27t1049 Markup language design notes]&lt;br /&gt;
* [http://tantek.com/log/2002/12.html#L20021216t2238 A Touch of Class]&lt;br /&gt;
&lt;br /&gt;
== Other Implementations/Ideas ==&lt;br /&gt;
* [http://www.w3.org/TR/2001/NOTE-vcard-rdf-20010222/ Representing vCard Objects in RDF/XML] This could allow conversion of vCard data from XHTML to RDF and from RDF to XHTML&lt;br /&gt;
* It would also be possible to convert XFN and hCard to FoaF and back.&lt;br /&gt;
&lt;br /&gt;
== Rejected Suggestions ==&lt;br /&gt;
&lt;br /&gt;
Suggestion: ''The use of class=&amp;quot;url&amp;quot; on an &amp;lt;a&amp;gt; tag to represent an hCard URL property is redundant. By virtue of the &amp;lt;a&amp;gt; tag you know this is a URL.''&lt;br /&gt;
&lt;br /&gt;
Rejected.  This is a bad suggestion because although it appears to reduce redunancy and keep things cleaner, it also creates a few problems. Without explicitly noting that this is a URL then any &amp;lt;a&amp;gt; tags within a 'vcard' would be considered a URL, for example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;vcard&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;ul class=&amp;quot;categories&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://w3c.org&amp;quot;&amp;gt;W3C&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is no way to &amp;quot;turn-off&amp;quot; the encoding of the W3C URL, whereas if &amp;quot;url&amp;quot; needed to be explicitly listed in the class attribute list, then by NOT listing it you could effectively turn it off.&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=irc&amp;diff=3898</id>
		<title>irc</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=irc&amp;diff=3898"/>
		<updated>2006-01-04T21:41:09Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: /* People on irc */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
= Microformats IRC =&lt;br /&gt;
&lt;br /&gt;
We have an IRC channel, [irc://irc.freenode.net#microformats #microformats on the freenode network].&lt;br /&gt;
&lt;br /&gt;
There's typically someone there at any point during the day, though there isn't always active discussion. Sometimes, though this is the best place to discuss issues that need lots of back and forth discussion.&lt;br /&gt;
&lt;br /&gt;
== People on irc ==&lt;br /&gt;
A list of IRC regulars and their normal timezones.&lt;br /&gt;
&lt;br /&gt;
* [[User:RyanKing|kingryan]] (-0800)&lt;br /&gt;
* [[User:EdwardOConnor|hober]] (-0800)&lt;br /&gt;
* [[User:RobertBachmann|RobertBachmann]]&lt;br /&gt;
* [[User:Tantek|Tantek]] (-0800)&lt;br /&gt;
* [http://epeus.blogspot.com/ KevinMarks] (-0800)&lt;br /&gt;
* [[User:DimitriGlazkov|dglazkov]] (-0600)&lt;br /&gt;
* [[User:ChrisMessina|factoryjoe]] (-0800)&lt;br /&gt;
* [[User:IanHickson|Hixie]] (-0800)&lt;br /&gt;
* [[User:neuro]]&lt;br /&gt;
* [[User:JoeGregorio|jcgregorio]]&lt;br /&gt;
* [[User:Cgriego|cgriego]]&lt;br /&gt;
&lt;br /&gt;
=== bots ===&lt;br /&gt;
&lt;br /&gt;
* [[mfbot]]&lt;br /&gt;
* [[mflogbot]]&lt;br /&gt;
&lt;br /&gt;
== IRC meetups ==&lt;br /&gt;
&lt;br /&gt;
The idea of having IRC meetups (that is, a set time for meeting on IRC) has been suggested by [[User:RyanKing|Ryan King]], as it appears to work well for the WordPress community and may help us from time-to-time. As of yet, there are no plans to have meetups, though.&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=rest/brainstorming&amp;diff=9345</id>
		<title>rest/brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=rest/brainstorming&amp;diff=9345"/>
		<updated>2005-10-20T02:14:03Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: /* Verbs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= XHTML-REST Brainstorming =&lt;br /&gt;
&lt;br /&gt;
This page collects ideas from [[rest-examples]] how to best encode [[REST]] data in an XHTML microformat.&lt;br /&gt;
&lt;br /&gt;
== Constraints ==&lt;br /&gt;
&lt;br /&gt;
The underlying premise of this investigation is that REST is less useful that it could be due to concerns about a) interoperability, and b) discoverability.   To address this, we propose adopting microformat-style conventions to further constrain the ways REST already constrains web services.&lt;br /&gt;
&lt;br /&gt;
In particular, we constrain REST to work with existing web browser clients -- yet also be machine-parseable.   This means:&lt;br /&gt;
* All inputs must be url-encoded (or maybe mime/multipart)&lt;br /&gt;
* All output must be XHTML, either:&lt;br /&gt;
** XOXO: [[xoxo]] (dl, ul, ol)&lt;br /&gt;
** XOXT: [[table-brainstorms]] (table-th-tr-td)&lt;br /&gt;
* All URI links must be encoded as either:&lt;br /&gt;
** Anchors (&amp;amp;lt;a&amp;amp;rt;) (via 'href')&lt;br /&gt;
** Forms (&amp;amp;lt;a&amp;amp;rt;) (via 'action')&lt;br /&gt;
* Only GET and POST actions are supported&lt;br /&gt;
&lt;br /&gt;
This may seem  very strict, but that's the point: by adding more constraints, we reduce gratuitous degrees of freedom and enable greater consistency.&lt;br /&gt;
&lt;br /&gt;
This may not solve every conceivable problem, but it should handle the 50% case pretty well:&lt;br /&gt;
* REST: 80% of web services&lt;br /&gt;
* XHTML: 80% of XML expressiveness&lt;br /&gt;
* GET/POST + urlencoding: 80% of queries&lt;br /&gt;
or, put another way:&lt;br /&gt;
* 80% x 80% x 80% = 51.2% of the benefit for&lt;br /&gt;
* 20% x 20% x 20% = 0.8% of the effort &lt;br /&gt;
&lt;br /&gt;
== Conventions ==&lt;br /&gt;
&lt;br /&gt;
To make parsing and auto-discovery easier -- and also simplify the design process -- we propose the following additional conventions.&lt;br /&gt;
&lt;br /&gt;
=== Nouns ===&lt;br /&gt;
&lt;br /&gt;
As usual in REST, every ''noun'' must be a URI.   However, we explicitly define three types of URIs:&lt;br /&gt;
;base:The base URI for the web service, e.g.: &amp;lt;code&amp;gt;http://example.com/site/&amp;lt;/code&amp;gt;.&lt;br /&gt;
;records:URIs representing individual entities, e.g.: &amp;lt;code&amp;gt;http://example.com/webservice/users/me%40drernie.com&amp;lt;/code&amp;gt;.&lt;br /&gt;
;tables:The URIs used to create or search for those instances, e.g.: &amp;lt;code&amp;gt;http://example.com/webservice/users&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Note that each record is defined by a set of key-value pairs living under that table.&lt;br /&gt;
&lt;br /&gt;
There can also be 'singletons' - a class which only has a single instance.&lt;br /&gt;
&lt;br /&gt;
=== Verbs ===&lt;br /&gt;
&lt;br /&gt;
REST depends on using verbs properly. Your typical verbs are POST (create), GET (retrieve), PUT (update), and DELETE (delete). More verbs can be defined and used, but the listed above are most commonly used and supported.&lt;br /&gt;
&lt;br /&gt;
As we know, HTML forms spec (and therefore commonly used UAs) only provides support for POST and GET verbs. This limitation has been the biggest argument against mixing HTML and REST: tunnelling of PUT and DELETE verbs through POST (or even worse, GET) creates architectural unREST.&lt;br /&gt;
&lt;br /&gt;
However, some architectures simply do not need deletion and update operations. Using HTML with REST requires employing such architectures.&lt;br /&gt;
&lt;br /&gt;
While that may seem overly restrictive, as a practical matter those cover the &amp;quot;80%&amp;quot; of public web services we are trying to solve (after all, you are welcome to use your own private methods if you need to).&lt;br /&gt;
&lt;br /&gt;
Even better, we can define very precise semantics for what GET &amp;amp; POST mean for each of the different nouns:&lt;br /&gt;
&lt;br /&gt;
 GET base&lt;br /&gt;
 GET base?view=api # Return hyperlinks and forms&lt;br /&gt;
 GET base?query   # search for records across multiple table&lt;br /&gt;
&lt;br /&gt;
 GET table&lt;br /&gt;
 GET table?view=api&lt;br /&gt;
 GET table?query  # search for records in that table&lt;br /&gt;
 POST table?create # create record&lt;br /&gt;
&lt;br /&gt;
 GET record # encode as xoxo&lt;br /&gt;
 GET record?view=edit # encode as hyperlinks/anchors&lt;br /&gt;
 GET record?view=api # encode as hyperlinks/anchors + descriptions&lt;br /&gt;
 POST record?update # update record -- this is tunnelling, a no-no&lt;br /&gt;
&lt;br /&gt;
For simplicity, we assume:&lt;br /&gt;
* users can not delete anything&lt;br /&gt;
* users can not create tables (or singletons)&lt;br /&gt;
&lt;br /&gt;
To be sure, there are natural ways to extend this protocol to provide that functionality.  However, as that is primarly for admin usage, and thus a private API, we're glossing over it here.  From a user's point of view, we provide analogous capabilities using POST:&lt;br /&gt;
* &amp;quot;DELETE&amp;quot; is replaced by &amp;quot;mark for deletion&amp;quot;&lt;br /&gt;
* &amp;quot;PUT&amp;quot; is replaced by &amp;quot;ask table to create record&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Format ===&lt;br /&gt;
&lt;br /&gt;
Results should be returned in a xoxo-compatible format.  In particular, query results should leverage &lt;br /&gt;
[http://opensearch.a9.com/spec/opensearchresponse/1.1/ OpenSearch 1.1]. &lt;br /&gt;
&lt;br /&gt;
[''Do HTML bindings for this already exist?'']&lt;br /&gt;
&lt;br /&gt;
== Questions for further research ==&lt;br /&gt;
&lt;br /&gt;
== Patterns ==&lt;br /&gt;
&lt;br /&gt;
=== Anchor Design Pattern ===&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;a class=&amp;quot;rest&amp;quot; href=&amp;quot;http//somesite.com/prog/adduser&amp;quot;&amp;gt;label&amp;amp;lt;/a&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Forms Design Pattern ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.opendarwin.org/~drernie/rest-api.html REST self-describing API proposal]&lt;br /&gt;
* [http://opensearch.a9.com/ OpenSearch search results standard (REST-like)]&lt;br /&gt;
* [[rest-proposal-preso]]&lt;br /&gt;
* [[duhper-proposal-preso]]&lt;br /&gt;
&lt;br /&gt;
[http://www.opendarwin.org/~drernie/rest-api.html Proposed REST API]&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=rest/brainstorming&amp;diff=2245</id>
		<title>rest/brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=rest/brainstorming&amp;diff=2245"/>
		<updated>2005-10-20T02:11:24Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: /* Verbs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= XHTML-REST Brainstorming =&lt;br /&gt;
&lt;br /&gt;
This page collects ideas from [[rest-examples]] how to best encode [[REST]] data in an XHTML microformat.&lt;br /&gt;
&lt;br /&gt;
== Constraints ==&lt;br /&gt;
&lt;br /&gt;
The underlying premise of this investigation is that REST is less useful that it could be due to concerns about a) interoperability, and b) discoverability.   To address this, we propose adopting microformat-style conventions to further constrain the ways REST already constrains web services.&lt;br /&gt;
&lt;br /&gt;
In particular, we constrain REST to work with existing web browser clients -- yet also be machine-parseable.   This means:&lt;br /&gt;
* All inputs must be url-encoded (or maybe mime/multipart)&lt;br /&gt;
* All output must be XHTML, either:&lt;br /&gt;
** XOXO: [[xoxo]] (dl, ul, ol)&lt;br /&gt;
** XOXT: [[table-brainstorms]] (table-th-tr-td)&lt;br /&gt;
* All URI links must be encoded as either:&lt;br /&gt;
** Anchors (&amp;amp;lt;a&amp;amp;rt;) (via 'href')&lt;br /&gt;
** Forms (&amp;amp;lt;a&amp;amp;rt;) (via 'action')&lt;br /&gt;
* Only GET and POST actions are supported&lt;br /&gt;
&lt;br /&gt;
This may seem  very strict, but that's the point: by adding more constraints, we reduce gratuitous degrees of freedom and enable greater consistency.&lt;br /&gt;
&lt;br /&gt;
This may not solve every conceivable problem, but it should handle the 50% case pretty well:&lt;br /&gt;
* REST: 80% of web services&lt;br /&gt;
* XHTML: 80% of XML expressiveness&lt;br /&gt;
* GET/POST + urlencoding: 80% of queries&lt;br /&gt;
or, put another way:&lt;br /&gt;
* 80% x 80% x 80% = 51.2% of the benefit for&lt;br /&gt;
* 20% x 20% x 20% = 0.8% of the effort &lt;br /&gt;
&lt;br /&gt;
== Conventions ==&lt;br /&gt;
&lt;br /&gt;
To make parsing and auto-discovery easier -- and also simplify the design process -- we propose the following additional conventions.&lt;br /&gt;
&lt;br /&gt;
=== Nouns ===&lt;br /&gt;
&lt;br /&gt;
As usual in REST, every ''noun'' must be a URI.   However, we explicitly define three types of URIs:&lt;br /&gt;
;base:The base URI for the web service, e.g.: &amp;lt;code&amp;gt;http://example.com/site/&amp;lt;/code&amp;gt;.&lt;br /&gt;
;records:URIs representing individual entities, e.g.: &amp;lt;code&amp;gt;http://example.com/webservice/users/me%40drernie.com&amp;lt;/code&amp;gt;.&lt;br /&gt;
;tables:The URIs used to create or search for those instances, e.g.: &amp;lt;code&amp;gt;http://example.com/webservice/users&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Note that each record is defined by a set of key-value pairs living under that table.&lt;br /&gt;
&lt;br /&gt;
There can also be 'singletons' - a class which only has a single instance.&lt;br /&gt;
&lt;br /&gt;
=== Verbs ===&lt;br /&gt;
&lt;br /&gt;
REST depends on using verbs properly. Your typical verbs are POST (create), GET (retrieve), PUT (update), and DELETE (delete). More verbs can be defined and used, but the listed above are most commonly used and supported.&lt;br /&gt;
&lt;br /&gt;
As we know, HTML forms spec (and therefore commonly used UAs) only provides support for POST and GET verbs. This limitation has been the biggest argument against mixing HTML and REST: tunnelling of PUT and DELETE verbs through POST  (or even worse, GET) creates architectural unREST.&lt;br /&gt;
&lt;br /&gt;
However, some architectures simply do not need deletion and update operations. Using HTML with REST requires employing such architectures.&lt;br /&gt;
&lt;br /&gt;
While that may seem overly restrictive, as a practical matter those cover the &amp;quot;80%&amp;quot; of public web services we are trying to solve (after all, you are welcome to use your own private methods if you need to).&lt;br /&gt;
&lt;br /&gt;
Even better, we can define very precise semantics for what GET &amp;amp; POST mean for each of the different nouns:&lt;br /&gt;
&lt;br /&gt;
 GET base&lt;br /&gt;
 GET base?view=api # Return hyperlinks and forms&lt;br /&gt;
 GET base?query   # search for records across multiple table&lt;br /&gt;
&lt;br /&gt;
 GET table&lt;br /&gt;
 GET table?view=api&lt;br /&gt;
 GET table?query  # search for records in that table&lt;br /&gt;
 POST table?create # create record&lt;br /&gt;
&lt;br /&gt;
 GET record # encode as xoxo&lt;br /&gt;
 GET record?view=edit # encode as hyperlinks/anchors&lt;br /&gt;
 GET record?view=api # encode as hyperlinks/anchors + descriptions&lt;br /&gt;
 POST record?update # update record&lt;br /&gt;
&lt;br /&gt;
For simplicity, we assume:&lt;br /&gt;
* users can not delete anything&lt;br /&gt;
* users can not create tables (or singletons)&lt;br /&gt;
&lt;br /&gt;
To be sure, there are natural ways to extend this protocol to provide that functionality.  However, as that is primarly for admin usage, and thus a private API, we're glossing over it here.  From a user's point of view, we provide analogous capabilities using POST:&lt;br /&gt;
* &amp;quot;DELETE&amp;quot; is replaced by &amp;quot;mark for deletion&amp;quot;&lt;br /&gt;
* &amp;quot;PUT&amp;quot; is replaced by &amp;quot;ask table to create record&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Format ===&lt;br /&gt;
&lt;br /&gt;
Results should be returned in a xoxo-compatible format.  In particular, query results should leverage &lt;br /&gt;
[http://opensearch.a9.com/spec/opensearchresponse/1.1/ OpenSearch 1.1]. &lt;br /&gt;
&lt;br /&gt;
[''Do HTML bindings for this already exist?'']&lt;br /&gt;
&lt;br /&gt;
== Questions for further research ==&lt;br /&gt;
&lt;br /&gt;
== Patterns ==&lt;br /&gt;
&lt;br /&gt;
=== Anchor Design Pattern ===&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;a class=&amp;quot;rest&amp;quot; href=&amp;quot;http//somesite.com/prog/adduser&amp;quot;&amp;gt;label&amp;amp;lt;/a&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Forms Design Pattern ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.opendarwin.org/~drernie/rest-api.html REST self-describing API proposal]&lt;br /&gt;
* [http://opensearch.a9.com/ OpenSearch search results standard (REST-like)]&lt;br /&gt;
* [[rest-proposal-preso]]&lt;br /&gt;
* [[duhper-proposal-preso]]&lt;br /&gt;
&lt;br /&gt;
[http://www.opendarwin.org/~drernie/rest-api.html Proposed REST API]&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=rest/brainstorming&amp;diff=2244</id>
		<title>rest/brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=rest/brainstorming&amp;diff=2244"/>
		<updated>2005-10-20T02:10:48Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: /* Verbs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= XHTML-REST Brainstorming =&lt;br /&gt;
&lt;br /&gt;
This page collects ideas from [[rest-examples]] how to best encode [[REST]] data in an XHTML microformat.&lt;br /&gt;
&lt;br /&gt;
== Constraints ==&lt;br /&gt;
&lt;br /&gt;
The underlying premise of this investigation is that REST is less useful that it could be due to concerns about a) interoperability, and b) discoverability.   To address this, we propose adopting microformat-style conventions to further constrain the ways REST already constrains web services.&lt;br /&gt;
&lt;br /&gt;
In particular, we constrain REST to work with existing web browser clients -- yet also be machine-parseable.   This means:&lt;br /&gt;
* All inputs must be url-encoded (or maybe mime/multipart)&lt;br /&gt;
* All output must be XHTML, either:&lt;br /&gt;
** XOXO: [[xoxo]] (dl, ul, ol)&lt;br /&gt;
** XOXT: [[table-brainstorms]] (table-th-tr-td)&lt;br /&gt;
* All URI links must be encoded as either:&lt;br /&gt;
** Anchors (&amp;amp;lt;a&amp;amp;rt;) (via 'href')&lt;br /&gt;
** Forms (&amp;amp;lt;a&amp;amp;rt;) (via 'action')&lt;br /&gt;
* Only GET and POST actions are supported&lt;br /&gt;
&lt;br /&gt;
This may seem  very strict, but that's the point: by adding more constraints, we reduce gratuitous degrees of freedom and enable greater consistency.&lt;br /&gt;
&lt;br /&gt;
This may not solve every conceivable problem, but it should handle the 50% case pretty well:&lt;br /&gt;
* REST: 80% of web services&lt;br /&gt;
* XHTML: 80% of XML expressiveness&lt;br /&gt;
* GET/POST + urlencoding: 80% of queries&lt;br /&gt;
or, put another way:&lt;br /&gt;
* 80% x 80% x 80% = 51.2% of the benefit for&lt;br /&gt;
* 20% x 20% x 20% = 0.8% of the effort &lt;br /&gt;
&lt;br /&gt;
== Conventions ==&lt;br /&gt;
&lt;br /&gt;
To make parsing and auto-discovery easier -- and also simplify the design process -- we propose the following additional conventions.&lt;br /&gt;
&lt;br /&gt;
=== Nouns ===&lt;br /&gt;
&lt;br /&gt;
As usual in REST, every ''noun'' must be a URI.   However, we explicitly define three types of URIs:&lt;br /&gt;
;base:The base URI for the web service, e.g.: &amp;lt;code&amp;gt;http://example.com/site/&amp;lt;/code&amp;gt;.&lt;br /&gt;
;records:URIs representing individual entities, e.g.: &amp;lt;code&amp;gt;http://example.com/webservice/users/me%40drernie.com&amp;lt;/code&amp;gt;.&lt;br /&gt;
;tables:The URIs used to create or search for those instances, e.g.: &amp;lt;code&amp;gt;http://example.com/webservice/users&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Note that each record is defined by a set of key-value pairs living under that table.&lt;br /&gt;
&lt;br /&gt;
There can also be 'singletons' - a class which only has a single instance.&lt;br /&gt;
&lt;br /&gt;
=== Verbs ===&lt;br /&gt;
&lt;br /&gt;
REST depends on using verbs properly. Your typical verbs are POST (create), GET (retrieve), PUT (update), and DELETE (delete). More verbs can be defined and used, but the listed above are most commonly used and supported.&lt;br /&gt;
&lt;br /&gt;
As we know, HTML forms spec (and therefore commonly used UAs) only provides support POST and GET verbs. This limitation has been the biggest argument against mixing HTML and REST: tunnelling of PUT and DELETE verbs through POST  (or even worse, GET) creates architectural unREST.&lt;br /&gt;
&lt;br /&gt;
However, some architectures simply do not need deletion and update operations. Using HTML with REST requires employing such architectures.&lt;br /&gt;
&lt;br /&gt;
While that may seem overly restrictive, as a practical matter those cover the &amp;quot;80%&amp;quot; of public web services we are trying to solve (after all, you are welcome to use your own private methods if you need to).&lt;br /&gt;
&lt;br /&gt;
Even better, we can define very precise semantics for what GET &amp;amp; POST mean for each of the different nouns:&lt;br /&gt;
&lt;br /&gt;
 GET base&lt;br /&gt;
 GET base?view=api # Return hyperlinks and forms&lt;br /&gt;
 GET base?query   # search for records across multiple table&lt;br /&gt;
&lt;br /&gt;
 GET table&lt;br /&gt;
 GET table?view=api&lt;br /&gt;
 GET table?query  # search for records in that table&lt;br /&gt;
 POST table?create # create record&lt;br /&gt;
&lt;br /&gt;
 GET record # encode as xoxo&lt;br /&gt;
 GET record?view=edit # encode as hyperlinks/anchors&lt;br /&gt;
 GET record?view=api # encode as hyperlinks/anchors + descriptions&lt;br /&gt;
 POST record?update # update record&lt;br /&gt;
&lt;br /&gt;
For simplicity, we assume:&lt;br /&gt;
* users can not delete anything&lt;br /&gt;
* users can not create tables (or singletons)&lt;br /&gt;
&lt;br /&gt;
To be sure, there are natural ways to extend this protocol to provide that functionality.  However, as that is primarly for admin usage, and thus a private API, we're glossing over it here.  From a user's point of view, we provide analogous capabilities using POST:&lt;br /&gt;
* &amp;quot;DELETE&amp;quot; is replaced by &amp;quot;mark for deletion&amp;quot;&lt;br /&gt;
* &amp;quot;PUT&amp;quot; is replaced by &amp;quot;ask table to create record&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Format ===&lt;br /&gt;
&lt;br /&gt;
Results should be returned in a xoxo-compatible format.  In particular, query results should leverage &lt;br /&gt;
[http://opensearch.a9.com/spec/opensearchresponse/1.1/ OpenSearch 1.1]. &lt;br /&gt;
&lt;br /&gt;
[''Do HTML bindings for this already exist?'']&lt;br /&gt;
&lt;br /&gt;
== Questions for further research ==&lt;br /&gt;
&lt;br /&gt;
== Patterns ==&lt;br /&gt;
&lt;br /&gt;
=== Anchor Design Pattern ===&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;a class=&amp;quot;rest&amp;quot; href=&amp;quot;http//somesite.com/prog/adduser&amp;quot;&amp;gt;label&amp;amp;lt;/a&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Forms Design Pattern ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.opendarwin.org/~drernie/rest-api.html REST self-describing API proposal]&lt;br /&gt;
* [http://opensearch.a9.com/ OpenSearch search results standard (REST-like)]&lt;br /&gt;
* [[rest-proposal-preso]]&lt;br /&gt;
* [[duhper-proposal-preso]]&lt;br /&gt;
&lt;br /&gt;
[http://www.opendarwin.org/~drernie/rest-api.html Proposed REST API]&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=rest/rex-proposal&amp;diff=2230</id>
		<title>rest/rex-proposal</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=rest/rex-proposal&amp;diff=2230"/>
		<updated>2005-10-18T14:54:04Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: /* DUHPER: A Dual-Use HTML Profile Expressing REST */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= DUHPER: A Dual-Use HTML Profile Expressing REST =&lt;br /&gt;
== The 0.8% Solution for Web Services ==&lt;br /&gt;
==== October 18th, 2005 ====&lt;br /&gt;
&amp;quot;Something better than a diaper-soundex&amp;quot; naming content: XOX-REST = XOXR (SHOCKER)&lt;br /&gt;
&lt;br /&gt;
= Web Services: The Opportunity =&lt;br /&gt;
* &amp;quot;The Next Big Thing&amp;quot;&lt;br /&gt;
* Rewriting the web as a platform&lt;br /&gt;
* Foundation of [Web 2.0] businesses&lt;br /&gt;
** Architecture of participation&lt;br /&gt;
** Infrastructure for collaboration&lt;br /&gt;
* Enterprise App Integration (EAI) all over again&lt;br /&gt;
&lt;br /&gt;
= Web Services: The Problem =&lt;br /&gt;
* Can work really well when you have:&lt;br /&gt;
** Well-defined community&lt;br /&gt;
** Well-run governance&lt;br /&gt;
** Well-understood problem space&lt;br /&gt;
* Not true of the public Internet&lt;br /&gt;
* Not true of most vertical industries&lt;br /&gt;
&lt;br /&gt;
= The Answer(?): REST vs. RPC =&lt;br /&gt;
* RPC: Remote Procedure Calls&lt;br /&gt;
** URIs are method names&lt;br /&gt;
** XML is the arguments format&lt;br /&gt;
** Implemented in [http://www.xmlrpc.com/ XML-RPC] and [http://www.w3schools.com/soap/soap_intro.asp SOAP]&lt;br /&gt;
* [http://www.xfront.com/REST-Web-Services.html REST]: Representational State Transfer&lt;br /&gt;
** Nouns are URIs, verbs are HTTP: GET, PUT, POST, DELETE&lt;br /&gt;
** XML documents are state information&lt;br /&gt;
** Implemented at [http://www.xml.com/pub/a/2005/09/21/atom-store-web-database.html Atom], [http://www.oreillynet.com/pub/wlg/3005 Amazon] (sorta)&lt;br /&gt;
&lt;br /&gt;
= Advantages of REST over RPC =&lt;br /&gt;
* Much simpler to design&lt;br /&gt;
** Easy to identify appropriate nouns&lt;br /&gt;
** Don't need to define methods (verbs)&lt;br /&gt;
** Don't need a complete object model&lt;br /&gt;
* Easier to learn/invoke&lt;br /&gt;
** Always know what a URI means&lt;br /&gt;
** Need not 'tunnel' XML inside XML&lt;br /&gt;
&lt;br /&gt;
= Challenges of REST =&lt;br /&gt;
;Discoverability: No standard way to find services&lt;br /&gt;
;Interoperability: Too many incompatible ways to encode links, data&lt;br /&gt;
;Extensability: What if your schema isn't 100% right?&lt;br /&gt;
;Comprehensability: What the heck does &amp;quot;state transfer&amp;quot; mean?&lt;br /&gt;
&lt;br /&gt;
= Proposal: A Dual-Use (X)HTML Profile =&lt;br /&gt;
* Subset of REST that works with browsers&lt;br /&gt;
** XHTML Basic vs. arbitrary XML&lt;br /&gt;
** Just GET &amp;amp; POST (not PUT or DELETE)&lt;br /&gt;
** Encode URIs in hyperlinks (&amp;amp;lt;a href&amp;gt;) and forms (&amp;amp;lt;form action&amp;gt;)&lt;br /&gt;
** Inputs always key-value pairs (like database table)&lt;br /&gt;
* With CSS and AJAX, can '''be''' the website&lt;br /&gt;
** DRY = Don't Repeat Yourself&lt;br /&gt;
** Makes discovery and documentation trivial&lt;br /&gt;
&lt;br /&gt;
= Three Challenges =&lt;br /&gt;
* Is HTML Machine-Parseable?&lt;br /&gt;
* Are there really only two verbs?&lt;br /&gt;
* Can you build real apps on key-value encoding?&lt;br /&gt;
&lt;br /&gt;
= Challenge #1: Machine-Parseability =&lt;br /&gt;
* Screen scraping all over again? No!&lt;br /&gt;
* Use the &amp;quot;secret sauce&amp;quot; of &amp;quot;semantic salt&amp;quot;&lt;br /&gt;
** cf. &amp;quot;syntactic sugar&amp;quot; -- hides unpleasant details&lt;br /&gt;
** &amp;quot;semantic salt&amp;quot; -- brings out latent structure&lt;br /&gt;
* In other words, &amp;quot;[http://tantek.com/presentations/2005/06/what-are-microformats/ microformats]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= What Are Microformats? =&lt;br /&gt;
* simple social conventions (rel=&amp;quot;proflie&amp;quot;)&lt;br /&gt;
* using existing tags or brief CSS class names&lt;br /&gt;
* to encode machine-readable semantics&lt;br /&gt;
* in human-readable HTML, XHTML, or even XML&lt;br /&gt;
** cf. &amp;amp;lt;link rel&amp;gt; in Atom&lt;br /&gt;
&lt;br /&gt;
= Kinds of Microformats =&lt;br /&gt;
* Link annotation, e.g.:&lt;br /&gt;
** RelTag (Technorati): &amp;amp;lt;a rel=&amp;quot;tag&amp;quot; href=...&amp;gt;&lt;br /&gt;
** RelNoFollow (Gooogle):  &amp;amp;lt;a rel=&amp;quot;nofollow&amp;quot; href=...&amp;gt;&lt;br /&gt;
* User data&lt;br /&gt;
** [http://microformats.org/wiki/hcard hCard] (based on [http://www.ietf.org/rfc/rfc2426.txt vCard])&lt;br /&gt;
** [http://microformats.org/wiki/hcalendar hCalendar] (based on [http://www.ietf.org/rfc/rfc2445.txt iCalendar])&lt;br /&gt;
* Data structures&lt;br /&gt;
** [http://microformats.org/wiki/xoxo XOXO] lists: ol, ul, dl&lt;br /&gt;
** [http://microformats.org/wiki/table-examples XOXT] tables: th, tr, td&lt;br /&gt;
&lt;br /&gt;
= Example: hCard =&lt;br /&gt;
* ''hCard'' class names := ''vCard'' fields&lt;br /&gt;
 &amp;amp;lt;div class=&amp;quot;vcard&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;amp;lt;a class=&amp;quot;url fn&amp;quot; href=&amp;quot;http://tantek.com/&amp;quot;&amp;gt;&lt;br /&gt;
   Tantek Çelik&lt;br /&gt;
  &amp;amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=&amp;quot;org&amp;quot;&amp;gt;Technorati&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Example: eXtensible Open XHTML Outlines =&lt;br /&gt;
* Reuse existing HTML tags&lt;br /&gt;
* Arbitrary data structure (like [http://developer.apple.com/documentation/Cocoa/Conceptual/PropertyLists/Concepts/XMLPListsConcept.html property lists])&lt;br /&gt;
 &amp;amp;lt;dl class='xoxo'&amp;gt; &amp;amp;lt;-- Dictionary --&amp;gt;&lt;br /&gt;
  &amp;amp;lt;dt&amp;gt;Key #1&amp;amp;lt;dt&amp;gt;&lt;br /&gt;
  &amp;amp;lt;dd&amp;gt;&amp;amp;lt;ol&amp;gt; &amp;amp;lt;-- Array --&amp;gt;&lt;br /&gt;
        &amp;amp;lt;li&amp;gt;subitem #1&amp;amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;amp;lt;li&amp;gt;subitem #2&amp;amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;amp;lt;/ol&amp;gt;&amp;amp;lt;/dd&amp;gt;&lt;br /&gt;
 &amp;amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Challenge #2: Only Two Verbs =&lt;br /&gt;
* Overload URI with actions? No!&lt;br /&gt;
* Web 2.0 is an constructive medium&lt;br /&gt;
* Don't store a document: ask for creation&lt;br /&gt;
** POST parent&amp;amp;key1=value1 =&amp;gt; child URI&lt;br /&gt;
* Don't edit document: create new revision&lt;br /&gt;
** The concept of bottomless stack: each document is also a collection of its revisions, with the latest revision sitting at the top of the stack. After the number of revisions reaches the arbitrary size of the stack, oldest revisions fall off the stack into oblivion (note: size=1 and size=0 are possible, too)&lt;br /&gt;
* Don't delete a document: flag for removal&lt;br /&gt;
** POST child&amp;amp;shouldDelete=true&lt;br /&gt;
&lt;br /&gt;
= Challenge #3: Key-Value Data =&lt;br /&gt;
* Encode complex structures as XML text? No!&lt;br /&gt;
* Treat web service like a database&lt;br /&gt;
** Common classes (e.g. users, items, carts) =&amp;gt; tables&lt;br /&gt;
** Key-value dictionaries =&amp;gt; records&lt;br /&gt;
** URIs for each records =&amp;gt; primary keys&lt;br /&gt;
* Need NOT reflect actual internal database&lt;br /&gt;
** Can present a synthetic view&lt;br /&gt;
** But, makes a great starting point (cf. [http://www.rubyonrails.org/ Ruby on Rails]&lt;br /&gt;
&lt;br /&gt;
= The 0.8% Solution for Web Services =&lt;br /&gt;
* (80% of benefit/20% of effort)^3&lt;br /&gt;
** XOXO vs. XML: 80/20&lt;br /&gt;
** GET/POST vs. REST: 80/20 x 80/20 = 64/4&lt;br /&gt;
** Key-Value vs. structured input: 80/20 x 64/4 = [http://en.wikipedia.org/wiki/Pareto_principle 51.2/0.8]&lt;br /&gt;
* Half the benefit for 1% of the effort!&lt;br /&gt;
** Maybe not everything, but the basics easily&lt;br /&gt;
* Power comes from how much you can ignore&lt;br /&gt;
** cf. [http://intertwingly.net/slides/2005/rs/ Radical Simplification]&lt;br /&gt;
&lt;br /&gt;
= Advantages =&lt;br /&gt;
* Reuse existing semantics and structure&lt;br /&gt;
** Generally only one way to encode something&lt;br /&gt;
* Reduce possible degrees of freedom&lt;br /&gt;
** Simplifies design, improves interoperability&lt;br /&gt;
** Focus on the 80% where agreement is easy&lt;br /&gt;
* Increase learnability&lt;br /&gt;
** Everyone (in this space) can write it&lt;br /&gt;
** Everything (in the world) can read it&lt;br /&gt;
** The API is the documentation is the format&lt;br /&gt;
&lt;br /&gt;
= Implications =&lt;br /&gt;
* Is this the &amp;quot;[http://www.gladwell.com/tippingpoint/ tipping point]&amp;quot;?&lt;br /&gt;
** The 'LDAP' of web services?&lt;br /&gt;
** The 'missing link' for REST?&lt;br /&gt;
** The 'killer app' for Ruby on Rails?&lt;br /&gt;
* Why?&lt;br /&gt;
** Looser than XML =&amp;gt; allows innovation &lt;br /&gt;
** Tighter than REST =&amp;gt; encourages interoperability &lt;br /&gt;
** Simpler than SOAP =&amp;gt; enables rapid adoption&lt;br /&gt;
&lt;br /&gt;
= For More Information =&lt;br /&gt;
* Microformats http://microformats.org&lt;br /&gt;
** What are Microformats? http://tantek.com/presentations/2005/06/what-are-microformats/&lt;br /&gt;
** Discussion Lists http://microformats.org/discuss/&lt;br /&gt;
** XOXO: http://microformats.org/wiki/xoxo&lt;br /&gt;
* XHTML and REST&lt;br /&gt;
** research: http://microformats.org/wiki/rest-examples&lt;br /&gt;
** blog: http://www.opendarwin.org/~drernie/&lt;br /&gt;
** This presentation: http://microformats.org/wiki/duhper-proposal-preso&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=rest/rex-proposal&amp;diff=2226</id>
		<title>rest/rex-proposal</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=rest/rex-proposal&amp;diff=2226"/>
		<updated>2005-10-18T14:23:11Z</updated>

		<summary type="html">&lt;p&gt;DimitriGlazkov: /* Challenge #2: Only Two Verbs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= DUHPER: A Dual-Use HTML Profile Expressing REST =&lt;br /&gt;
== The 0.8% Solution for Web Services ==&lt;br /&gt;
==== October 18th, 2005 ====&lt;br /&gt;
&lt;br /&gt;
= Web Services: The Opportunity =&lt;br /&gt;
* &amp;quot;The Next Big Thing&amp;quot;&lt;br /&gt;
* Rewriting the web as a platform&lt;br /&gt;
* Foundation of [Web 2.0] businesses&lt;br /&gt;
** Architecture of participation&lt;br /&gt;
** Infrastructure for collaboration&lt;br /&gt;
* Enterprise App Integration (EAI) all over again&lt;br /&gt;
&lt;br /&gt;
= Web Services: The Problem =&lt;br /&gt;
* Can work really well when you have:&lt;br /&gt;
** Well-defined community&lt;br /&gt;
** Well-run governance&lt;br /&gt;
** Well-understood problem space&lt;br /&gt;
* Not true of the public Internet&lt;br /&gt;
* Not true of most vertical industries&lt;br /&gt;
&lt;br /&gt;
= The Answer(?): REST vs. RPC =&lt;br /&gt;
* RPC: Remote Procedure Calls&lt;br /&gt;
** URIs are method names&lt;br /&gt;
** XML is the arguments format&lt;br /&gt;
** Implemented in [http://www.xmlrpc.com/ XML-RPC] and [http://www.w3schools.com/soap/soap_intro.asp SOAP]&lt;br /&gt;
* [http://www.xfront.com/REST-Web-Services.html REST]: Representational State Transfer&lt;br /&gt;
** Nouns are URIs, verbs are HTTP: GET, PUT, POST, DELETE&lt;br /&gt;
** XML documents are state information&lt;br /&gt;
** Implemented at [http://www.xml.com/pub/a/2005/09/21/atom-store-web-database.html Atom], [http://www.oreillynet.com/pub/wlg/3005 Amazon] (sorta)&lt;br /&gt;
&lt;br /&gt;
= Advantages of REST over RPC =&lt;br /&gt;
* Much simpler to design&lt;br /&gt;
** Easy to identify appropriate nouns&lt;br /&gt;
** Don't need to define methods (verbs)&lt;br /&gt;
** Don't need a complete object model&lt;br /&gt;
* Easier to learn/invoke&lt;br /&gt;
** Always know what a URI means&lt;br /&gt;
** Need not 'tunnel' XML inside XML&lt;br /&gt;
&lt;br /&gt;
= Challenges of REST =&lt;br /&gt;
;Discoverability: No standard way to find services&lt;br /&gt;
;Interoperability: Too many incompatible ways to encode links, data&lt;br /&gt;
;Extensability: What if your schema isn't 100% right?&lt;br /&gt;
;Comprehensability: What the heck does &amp;quot;state transfer&amp;quot; mean?&lt;br /&gt;
&lt;br /&gt;
= Proposal: A Dual-Use (X)HTML Profile =&lt;br /&gt;
* Subset of REST that works with browsers&lt;br /&gt;
** XHTML Basic vs. arbitrary XML&lt;br /&gt;
** Just GET &amp;amp; POST (not PUT or DELETE)&lt;br /&gt;
** Encode URIs in hyperlinks (&amp;amp;lt;a href&amp;gt;) and forms (&amp;amp;lt;form action&amp;gt;)&lt;br /&gt;
** Inputs always key-value pairs (like database table)&lt;br /&gt;
* With CSS and AJAX, can '''be''' the website&lt;br /&gt;
** DRY = Don't Repeat Yourself&lt;br /&gt;
** Makes discovery and documentation trivial&lt;br /&gt;
&lt;br /&gt;
= Three Challenges =&lt;br /&gt;
* Is HTML Machine-Parseable?&lt;br /&gt;
* Are there really only two verbs?&lt;br /&gt;
* Can you build real apps on key-value encoding?&lt;br /&gt;
&lt;br /&gt;
= Challenge #1: Machine-Parseability =&lt;br /&gt;
* Screen scraping all over again? No!&lt;br /&gt;
* Use the &amp;quot;secret sauce&amp;quot; of &amp;quot;semantic salt&amp;quot;&lt;br /&gt;
** cf. &amp;quot;syntactic sugar&amp;quot; -- hides unpleasant details&lt;br /&gt;
** &amp;quot;semantic salt&amp;quot; -- brings out latent structure&lt;br /&gt;
* In other words, &amp;quot;[http://tantek.com/presentations/2005/06/what-are-microformats/ microformats]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= What Are Microformats? =&lt;br /&gt;
* simple social conventions (rel=&amp;quot;proflie&amp;quot;)&lt;br /&gt;
* using existing tags or brief CSS class names&lt;br /&gt;
* to encode machine-readable semantics&lt;br /&gt;
* in human-readable HTML, XHTML, or even XML&lt;br /&gt;
** cf. &amp;amp;lt;link rel&amp;gt; in Atom&lt;br /&gt;
&lt;br /&gt;
= Kinds of Microformats =&lt;br /&gt;
* Link annotation, e.g.:&lt;br /&gt;
** RelTag (Technorati): &amp;amp;lt;a rel=&amp;quot;tag&amp;quot; href=...&amp;gt;&lt;br /&gt;
** RelNoFollow (Gooogle):  &amp;amp;lt;a rel=&amp;quot;nofollow&amp;quot; href=...&amp;gt;&lt;br /&gt;
* User data&lt;br /&gt;
** [http://microformats.org/wiki/hcard hCard] (based on [http://www.ietf.org/rfc/rfc2426.txt vCard])&lt;br /&gt;
** [http://microformats.org/wiki/hcalendar hCalendar] (based on [http://www.ietf.org/rfc/rfc2445.txt iCalendar])&lt;br /&gt;
* Data structures&lt;br /&gt;
** [http://microformats.org/wiki/xoxo XOXO] lists: ol, ul, dl&lt;br /&gt;
** [http://microformats.org/wiki/table-examples XOXT] tables: th, tr, td&lt;br /&gt;
&lt;br /&gt;
= Example: hCard =&lt;br /&gt;
* ''hCard'' class names := ''vCard'' fields&lt;br /&gt;
 &amp;amp;lt;div class=&amp;quot;vcard&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;amp;lt;a class=&amp;quot;url fn&amp;quot; href=&amp;quot;http://tantek.com/&amp;quot;&amp;gt;&lt;br /&gt;
   Tantek Çelik&lt;br /&gt;
  &amp;amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=&amp;quot;org&amp;quot;&amp;gt;Technorati&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Example: eXtensible Open XHTML Outlines =&lt;br /&gt;
* Reuse existing HTML tags&lt;br /&gt;
* Arbitrary data structure (like [http://developer.apple.com/documentation/Cocoa/Conceptual/PropertyLists/Concepts/XMLPListsConcept.html property lists])&lt;br /&gt;
 &amp;amp;lt;dl class='xoxo'&amp;gt; &amp;amp;lt;-- Dictionary --&amp;gt;&lt;br /&gt;
  &amp;amp;lt;dt&amp;gt;Key #1&amp;amp;lt;dt&amp;gt;&lt;br /&gt;
  &amp;amp;lt;dd&amp;gt;&amp;amp;lt;ol&amp;gt; &amp;amp;lt;-- Array --&amp;gt;&lt;br /&gt;
        &amp;amp;lt;li&amp;gt;subitem #1&amp;amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;amp;lt;li&amp;gt;subitem #2&amp;amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;amp;lt;/ol&amp;gt;&amp;amp;lt;/dd&amp;gt;&lt;br /&gt;
 &amp;amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Challenge #2: Only Two Verbs =&lt;br /&gt;
* Overload URI with actions? No!&lt;br /&gt;
* Web 2.0 is an constructive medium&lt;br /&gt;
* Don't store a document: ask for creation&lt;br /&gt;
** POST parent&amp;amp;key1=value1 =&amp;gt; child URI&lt;br /&gt;
* Don't edit document: create new revision&lt;br /&gt;
** The concept of bottomless stack: each document is also a collection of its revisions, with the latest revision sitting at the top of the stack. After the number of revisions reaches the arbitrary size of the stack, oldest revisions fall off the stack into oblivion (note: size=1 and size=0 are possible, too)&lt;br /&gt;
* Don't delete a document: flag for removal&lt;br /&gt;
** POST child&amp;amp;shouldDelete=true&lt;br /&gt;
&lt;br /&gt;
= Challenge #3: Key-Value Data =&lt;br /&gt;
* Encode complex structures as XML text? No!&lt;br /&gt;
* Treat web service like a database&lt;br /&gt;
** Common classes (e.g. users, items, carts) =&amp;gt; tables&lt;br /&gt;
** Key-value dictionaries =&amp;gt; records&lt;br /&gt;
** URIs for each records =&amp;gt; primary keys&lt;br /&gt;
* Need NOT reflect actual internal database&lt;br /&gt;
** Can present a synthetic view&lt;br /&gt;
** But, makes a great starting point (cf. [http://www.rubyonrails.org/ Ruby on Rails]&lt;br /&gt;
&lt;br /&gt;
= The 0.8% Solution for Web Services =&lt;br /&gt;
* (80% of benefit/20% of effort)^3&lt;br /&gt;
** XOXO vs. XML: 80/20&lt;br /&gt;
** GET/POST vs. REST: 80/20 x 80/20 = 64/4&lt;br /&gt;
** Key-Value vs. structured input: 80/20 x 64/4 = [http://en.wikipedia.org/wiki/Pareto_principle 51.2/0.8]&lt;br /&gt;
* Half the benefit for 1% of the effort!&lt;br /&gt;
** Maybe not everything, but the basics easily&lt;br /&gt;
* Power comes from how much you can ignore&lt;br /&gt;
** cf. [http://intertwingly.net/slides/2005/rs/ Radical Simplification]&lt;br /&gt;
&lt;br /&gt;
= Advantages =&lt;br /&gt;
* Reuse existing semantics and structure&lt;br /&gt;
** Generally only one way to encode something&lt;br /&gt;
* Reduce possible degrees of freedom&lt;br /&gt;
** Simplifies design, improves interoperability&lt;br /&gt;
** Focus on the 80% where agreement is easy&lt;br /&gt;
* Increase learnability&lt;br /&gt;
** Everyone (in this space) can write it&lt;br /&gt;
** Everything (in the world) can read it&lt;br /&gt;
** The API is the documentation is the format&lt;br /&gt;
&lt;br /&gt;
= Implications =&lt;br /&gt;
* Is this the &amp;quot;[http://www.gladwell.com/tippingpoint/ tipping point]&amp;quot;?&lt;br /&gt;
** The 'LDAP' of web services?&lt;br /&gt;
** The 'missing link' for REST?&lt;br /&gt;
** The 'killer app' for Ruby on Rails?&lt;br /&gt;
* Why?&lt;br /&gt;
** Looser than XML =&amp;gt; allows innovation &lt;br /&gt;
** Tighter than REST =&amp;gt; encourages interoperability &lt;br /&gt;
** Simpler than SOAP =&amp;gt; enables rapid adoption&lt;br /&gt;
&lt;br /&gt;
= For More Information =&lt;br /&gt;
* Microformats http://microformats.org&lt;br /&gt;
** What are Microformats? http://tantek.com/presentations/2005/06/what-are-microformats/&lt;br /&gt;
** Discussion Lists http://microformats.org/discuss/&lt;br /&gt;
** XOXO: http://microformats.org/wiki/xoxo&lt;br /&gt;
* XHTML and REST&lt;br /&gt;
** research: http://microformats.org/wiki/rest-examples&lt;br /&gt;
** blog: http://www.opendarwin.org/~drernie/&lt;br /&gt;
** This presentation: http://microformats.org/wiki/duhper-proposal-preso&lt;/div&gt;</summary>
		<author><name>DimitriGlazkov</name></author>
	</entry>
</feed>