<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://microformats.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bud</id>
	<title>Microformats Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://microformats.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bud"/>
	<link rel="alternate" type="text/html" href="http://microformats.org/wiki/Special:Contributions/Bud"/>
	<updated>2026-05-05T11:03:44Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xfolk-issues&amp;diff=16069</id>
		<title>xfolk-issues</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xfolk-issues&amp;diff=16069"/>
		<updated>2007-01-04T01:41:30Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* Issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= xFolk issues =&lt;br /&gt;
&lt;br /&gt;
These are externally raised issues about [[xfolk|xFolk]] 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://thecommunityengine.com/home Bud]&lt;br /&gt;
&lt;br /&gt;
== Template ==&lt;br /&gt;
Please use this format:&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;{{OpenIssue}}&amp;lt;/nowiki&amp;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;
== Issues ==&lt;br /&gt;
&lt;br /&gt;
* {{OpenIssue}} 2007-01-01 raised by [[User:AndyMabbett|Andy Mabbett]]&lt;br /&gt;
*# Applying a tag in an xFolk entry also applies it to the linking page. However, certain tags (e.g. &amp;quot;NSFW&amp;quot;) may apply to the page linked to, but '''''not''''' to the linking page.&lt;br /&gt;
&lt;br /&gt;
2007-01-03 addressed by [[User:Bud|Bud Gibson]].  Well, we had a lot of list discussion on this while creating xFolk.  Actually, that was pre-list.  The rationale is that the tags apply to the items in the container not the page simply by convention in xFolk.  It's a specialization of reltag.  The real question I think is what are the scoping rules for reltag.  The assumption here is that the reltag tags only apply to the link within xfolkentry.&lt;br /&gt;
&lt;br /&gt;
* {{OpenIssue}} *Why is this called &amp;quot;xFolk&amp;quot;, and not, say, xBookmark(s) or hBookmark(s)? [[User:AndyMabbett|Andy Mabbett]] 09:16, 19 Nov 2006 (PST)&lt;br /&gt;
&lt;br /&gt;
2007-01-03 addressed by [[User:Bud|Bud Gibson]].  Mainly because the purpose of the microformat was originally to allow harvesting into aggregation services for creating &amp;quot;folksonomies&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* {{OpenIssue}} 2006-06-12 raised by [[User:Singpolyma|singpolyma]]&lt;br /&gt;
*# ''using title attribute for the tagged link &amp;lt;a&amp;gt; element, if it exists, as the entry title'' -- I use the title attribute for a summary description, since this is more [[XOXO]]-compatible. While I lose the ability to have xfolk harvest my descriptions that way, I'm not really worried about that.  What I'm more worried about is xfolk using my descriptions as the title...&lt;br /&gt;
&lt;br /&gt;
2007-01-03 addressed by [[User:Bud|Bud Gibson]].  I'm in a quandary as to how to address this one.  It seems like a basic incompatibility.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* {{OpenIssue}} 2006-04-20 raised by [[User:RCanine|Ryan Cannon]]&lt;br /&gt;
*# ''Issue 1: As xFolk is intended as a list, it seems tedious to have to place &amp;lt;code&amp;gt;class=&amp;quot;xfolkentry&amp;quot;&amp;lt;/code&amp;gt; on every element. Are there implementation problems with creating a container class with that implies &amp;lt;code&amp;gt;class=&amp;quot;xfolkentry&amp;quot;&amp;lt;/code&amp;gt; on every child node?.''&lt;br /&gt;
&lt;br /&gt;
==Related pages==&lt;br /&gt;
{{template:xfolk-related-pages}}&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xfolk&amp;diff=6899</id>
		<title>xfolk</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xfolk&amp;diff=6899"/>
		<updated>2006-06-14T02:48:01Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* Implementations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt; xFolk (RC1) &amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
xFolk is a simple and open format for publishing collections of bookmarks. It better enables services for improving user experience and sharing data in web-based bookmarking software.  xFolk may be embedded in (X)HTML, Atom, RSS, and arbitrary XML. It is one of several open [[microformats|microformat]] standards.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Draft Specification ==&lt;br /&gt;
&lt;br /&gt;
=== Editor/Author ===&lt;br /&gt;
[http://thecommunityengine.com/ Bud Gibson], [http://thecommunityengine.com The Community Engine]&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;
=== Inspiration and Acknowledgments ===&lt;br /&gt;
Thanks to: [http://www.cnbc.cmu.edu/~plaut/ David Plaut] who introduced me to the idea that items may partially belong to many categories at once.  More recently, thanks to: [http://tantek.com/ Tantek Çelik], [http://epeus.blogspot.com/ Kevin Marks], [http://steve.osdir.com/ Steve Mallet], [http://hybernaut.com/ Brian DelVecchio], and [http://blogmarks.net François Hodierne] who have contributed to the development of xFolk with thoughtful critiques and implementations.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Social bookmarking services let users save and tag bookmarks to share with other users.  Over the past year, the number of these services has mushroomed to [http://en.wikipedia.org/wiki/Social_bookmarking over 20], with popular examples including: [http://del.icio.us del.icio.us], [http://furl.com furl], [http://de.lirio.us de.lirio.us], [http://jots.com jots], and [http://blogmarks.net blogmarks].  &lt;br /&gt;
&lt;br /&gt;
Lack of an open, interoperable data standard is a major issue in using social bookmarking services.  An open standard would make it possible to easily collect social bookmark data and remix it to invent new services along the lines of  [http://gataga.com gataga]'s experimental bookmark search engine.  An open standard would also make it possible to write javascripts that work across services [http://johnvey.com/features/deliciousdirector/ as some currently do for del.icio.us], enabling across-the-board improvements in user experience.&lt;br /&gt;
&lt;br /&gt;
xFolk is an open social bookmarking standard that aims to achieve both benefits.  Social bookmarking services that adopt xFolk will continue to differentiate themselves with data services.  But, the data itself will be easy to manipulate by third party scripts and easy to share.  As a result, bookmarking services will be able to offer a wider array of options to their users at low cost and focus on what truly differentiates them.  Individuals or groups operating standalone bookmark repositories will have access to a wider array of functionality than they can produce on their own.&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;
Extensive analysis of social bookmarking services and linkblogs, reported on [http://thecommunityengine.com/home/archives/xfolk elsewhere], reveals that the data published by both bookmarking services and '''many''' different linkblogs are described by the following implied schema:&lt;br /&gt;
&lt;br /&gt;
* A bookmarked or tagged link.&lt;br /&gt;
* A title for the entry.&lt;br /&gt;
* Tags for the link.&lt;br /&gt;
* An extended description or summary of the link.&lt;br /&gt;
&lt;br /&gt;
As demonstrated in early iterations of the xFolk standard, this general schema can be translated into markup by:&lt;br /&gt;
&lt;br /&gt;
# creating a container element for each entry of class &amp;lt;code&amp;gt;xfolkentry&amp;lt;/code&amp;gt;, &lt;br /&gt;
# using an &amp;lt;a&amp;gt; element for the bookmarked or tagged link of class &amp;lt;code&amp;gt;taggedlink&amp;lt;/code&amp;gt;, &lt;br /&gt;
# using title attribute for the tagged link &amp;lt;a&amp;gt; element, if it exists, as the entry title, otherwise using the element value,&lt;br /&gt;
# using [[reltag|RelTag]] for the tags, and&lt;br /&gt;
# using a container element of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, such as &amp;amp;lt;p&amp;gt;, for any extended description or summary.&lt;br /&gt;
&lt;br /&gt;
A given xFolk entry will always contain a tagged link including a title with all other elements optional.  Entries may have more than one tag as well as more than one element of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;.  Multiple elements of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; are ordered by default document order. Semantic elements within xFolk entries may be nested at arbitray depths.&lt;br /&gt;
&lt;br /&gt;
Many social bookmarking systems exist, each with its own markup conventions.  Further, many people are already publishing personal link blogs.  xFolk is designed with ease of adapting to these current practices as a primary goal.  Therefore, few assumptions are made as to the exact kinds of elements used for an xFolk entry.  Rather, the work of defining semantics is left entirely to the class and rel (in the case of [[reltag]]) attribute values.&lt;br /&gt;
&lt;br /&gt;
It is expected that developers will use [http://www.w3.org/TR/xpath XPath] or equivalent syntax in accessing xFolk entry elements.  a requirement for XPath is that the (X)HTML document be well-formed but not necessarily valid.  Thus, while undesirable, it is possible to serviceably use xFolk in an (X)HTML document that does not validate.&lt;br /&gt;
&lt;br /&gt;
=== XMDP Profile ===&lt;br /&gt;
&lt;br /&gt;
See the [[xfolk-profile|xFolk profile]] for the [http://gmpg.org/xmdp XMDP] profile of xFolk.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Here is a sample bookmark as displayed in [http://del.icio.us del.icio.us]'s standard markup.  Lines where the value of elements' class attributes must change to conform to xFolk are marked with a comment at the end.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;amp;lt;div class=&amp;quot;post&amp;quot;&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=&amp;quot;delLink&amp;quot; href=&amp;quot;http://www.sifry.com/alerts/archives/000306.html&amp;quot;&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
      Sifry's Alerts: Technorati launches Related Tags&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt; &lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=&amp;quot;extended&amp;quot;&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    Ever wanted to see what posts are related to other posts, what tags &lt;br /&gt;
    are related to others? Now you can! Just check under the Tag &lt;br /&gt;
    description on most tag pages, like this one, or this one, and you'll&lt;br /&gt;
    see the patterns. Can you smell the emergence?&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=&amp;quot;meta&amp;quot;&amp;amp;gt;&lt;br /&gt;
    to&lt;br /&gt;
    &amp;amp;lt;a class=&amp;quot;delNav&amp;quot; href=&amp;quot;/fpgibson/folksonomy&amp;quot;&amp;amp;gt;folksonomy&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=&amp;quot;delNav&amp;quot; href=&amp;quot;/fpgibson/technorati&amp;quot;&amp;amp;gt;technorati&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    ... &amp;amp;lt;a class=&amp;quot;delNav&amp;quot; href=&amp;quot;/url/cbcabf7de070fdb46598ee679367be49&amp;quot;&amp;amp;gt;&lt;br /&gt;
    and 1 other person&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    ... on 2005-04-09&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The equivalent in xFolk is as follows.  Comments are placed at the end of lines where class attribute changes were required. &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;amp;lt;div class=&amp;quot;xfolkentry&amp;quot;&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=&amp;quot;taggedlink&amp;quot; href=&amp;quot;http://www.sifry.com/alerts/archives/000306.html&amp;quot;&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
      Sifry's Alerts: Technorati launches Related Tags&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt; &lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=&amp;quot;description&amp;quot;&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    Ever wanted to see what posts are related to other posts, what tags &lt;br /&gt;
    are related to others? Now you can! Just check under the Tag &lt;br /&gt;
    description on most tag pages, like this one, or this one, and you'll&lt;br /&gt;
    see the patterns. Can you smell the emergence?&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=&amp;quot;meta&amp;quot;&amp;amp;gt;&lt;br /&gt;
    to&lt;br /&gt;
    &amp;amp;lt;a rel=&amp;quot;tag&amp;quot; href=&amp;quot;/fpgibson/folksonomy&amp;quot;&amp;amp;gt;folksonomy&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a rel=&amp;quot;tag&amp;quot; href=&amp;quot;/fpgibson/technorati&amp;quot;&amp;amp;gt;technorati&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    ... &amp;amp;lt;a class=&amp;quot;delNav&amp;quot; href=&amp;quot;/url/cbcabf7de070fdb46598ee679367be49&amp;quot;&amp;amp;gt;&lt;br /&gt;
    and 1 other person&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    ... on 2005-04-09&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Converting markup to be conformant with xFolk is almost always this easy.  The advantage of xFolk is that it provides one set of class attributes that can be reused across all services and link blogs, almost always with no loss of granularity.  The next section presents several more examples to illustrate this point.&lt;br /&gt;
&lt;br /&gt;
== Many more examples ==&lt;br /&gt;
&lt;br /&gt;
We have numerous examples to help developers incorporate xFolk into their sites.&lt;br /&gt;
&lt;br /&gt;
=== In the wild ===&lt;br /&gt;
&lt;br /&gt;
These are real live examples of functioning systems that publish bookmarks in xFolk.  These 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 publish using xFolk, 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;
* [http://smarking.com/ Smarking] currently publishes all shared links (including search results) using xFolk.&lt;br /&gt;
* [http://unalog.com unalog] currently publishes all shared links (including search results) using xFolk.&lt;br /&gt;
* [http://de.lirio.us de.lirio.us] currently publishes its bookmarks using xFolk (with the deprecated class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, see [[xfolk-profile | the XMDP]]).&lt;br /&gt;
* [http://dev.blogmarks.net/wiki/BlogSync blogmarks] currently exports bookmarks to blogs in xFolk (scroll down to the export example on the page; the deprecated class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, see [[xfolk-profile | the XMDP]]).&lt;br /&gt;
* [http://thecommunityengine.com The Community Engine] uses xFolk (with the deprecated class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, see [[xfolk-profile | the XMDP]]) for its [http://thecommunityengine.com/home main entries] and for its [http://thecommunityengine.com/webcites republished bookmarks].&lt;br /&gt;
&lt;br /&gt;
=== Additional social bookmarking services ===&lt;br /&gt;
&lt;br /&gt;
This example illustrates how xFolk may be applied to one additional service:&lt;br /&gt;
&lt;br /&gt;
* [[xfolk-scuttle | scuttle]]&lt;br /&gt;
&lt;br /&gt;
=== Link blogs ===&lt;br /&gt;
&lt;br /&gt;
Social bookmarking services are only the most recent examples of people publishing links.  Link blogs have been around almost since the beginning of blogging.  They represent somewhat more of a challenge for xFolk because their markup tends to be less semantic from the outset.  The following examples illustrate some particular challenges and how they can be overcome.&lt;br /&gt;
&lt;br /&gt;
* [[xfolk-kottke | kottke]]&lt;br /&gt;
* [[xfolk-pollas | pollas]]&lt;br /&gt;
* [[xfolk-jacobian | jacobian]]&lt;br /&gt;
* [[xfolk-julian-bez | julian-bez]]&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
The following implementations have been developed which generate or use xFolk. If you have an xFolk 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;
* [http://ma.gnolia.com ma.gnolia] now supports xFolk.&lt;br /&gt;
* [http://smarking.com/ Smarking.com] (a social bookmarking service) marks up their tagged links with xFolk! Hat tip: [http://3spots.blogspot.com/2006/05/social-bookmarking-smarking.html 3spots: Social + bookMARKING = Smarking] which itself is an [[hreview|hReview]].&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://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;
* Bud Gibson and Mike Migurski [http://thecommunityengine.com/home/archives/2005/09/vegomatic_an_al.html have written] [http://thecommunityengine.com/veg-o-matic veg-o-matic], an xFolk reblogging tool and service.&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 xFolk and [http://blog.davidjanes.com/mtarchives/2005_08.html#003379 provides a popup menu of actions]. ''This will work with FireFox 1.5+/GreaseMonkey 0.6.4+ now.''&lt;br /&gt;
* [http://www.midgard-project.org/midcom-permalink-6416db7e1f0e297b4cf3dcc285702a8d net.nemein.bookmarks], the bookmark manager in [http://www.midgard-project.org/ Midgard CMS] uses xFolk as the native output format, with added &amp;lt;code&amp;gt;abbr class=posted&amp;lt;/code&amp;gt; for publication date and &amp;lt;code&amp;gt;abbr class=poster&amp;lt;/code&amp;gt; for user who added the bookmark. See [http://bergie.iki.fi/links/ example]&lt;br /&gt;
* [http://de.lirio.us de.lirio.us] currently publishes its bookmarks using xFolk 0.4 (the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of description).&lt;br /&gt;
* [http://dev.blogmarks.net/wiki/BlogSync blogmarks] currently exports bookmarks to blogs in xFolk 0.4 (scroll down to the export example on the page; the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;).&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;
* [[rel-tag]]&lt;br /&gt;
&lt;br /&gt;
=== Informative References ===&lt;br /&gt;
* [http://thecommunityengine.com/home/archives/xfolk articles about xFolk]&lt;br /&gt;
* [http://thecommunityengine.com/home/archives/tags/microformats articles about the business value of microformats]&lt;br /&gt;
* [http://gataga.com gataga social bookmark search engine]&lt;br /&gt;
* [http://johnvey.com/features/deliciousdirector/ an ajax based interface for del.icio.us]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Social_bookmarking social bookmarking defined at wikipedia]&lt;br /&gt;
&lt;br /&gt;
=== Similar Work ===&lt;br /&gt;
* [[hreview | hReview]]&lt;br /&gt;
&lt;br /&gt;
== Work in progress ==&lt;br /&gt;
Although this specification has recently begun to stabilize as indicated by the version RC1, it is still a work in progress.  If warranted, I am prepared to go through multiple release candidates to achieve the narrow purpose of making bookmark entries more genrally accessible with as with as light weight a format as possible.  All changes since the last iteration have been motivated by the implementation experience of developers attempting to achieve this narrow aim.  Further changes will also most likely be motivated by implementation concerns.  See &amp;quot;future directions&amp;quot; below for additional microformat possibilities.&lt;br /&gt;
&lt;br /&gt;
=== Changes since xFolk 0.4 ===&lt;br /&gt;
The class attribute value &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; was deprecated in favor &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; to better conform with other microformat usage and some requests during implementation.  The other change has been to allow use of multiple elements of class &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; based on some use cases discovered in implementation.&lt;br /&gt;
&lt;br /&gt;
=== Future directions ===&lt;br /&gt;
There are several extensions one might imagine for xFolk.  Frequently, these extensions are best achieved by combining xFolk with another microformat.  For instance, one might want to indicate his or her evaluation of the bookmarked item.  This might be achieved by using [[vote-links | Vote Links]] or [[hreview | hReview]] with xFolk.&lt;br /&gt;
&lt;br /&gt;
One can also imagine extending xFolk to provide data conformant with various social bookmarking service APIs, for instance to provide all bookmarks by tag.  These APIs are currently too fluid for specification in any kind of standard.  The APIs and the functionality they provide represent one way social bookmarking services and meta services can differentiate themselves.&lt;br /&gt;
&lt;br /&gt;
A companion format called &amp;quot;xFolk definition&amp;quot; is under development.  xFolk definition will provide a means of explicitly defining the tags used in social bookmarks.&lt;br /&gt;
&lt;br /&gt;
=== Brainstorming ===&lt;br /&gt;
* [[xfolk-brainstorming|xFolk brainstorming]]&lt;br /&gt;
&lt;br /&gt;
== Discussions ==&lt;br /&gt;
&lt;br /&gt;
=== Q&amp;amp;A ===&lt;br /&gt;
* If you have any questions about xFolk, check the [[xfolk-faq|xFolk 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 [[xfolk-issues | xFolk issues]] document.&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=implementation-guidelines&amp;diff=1225</id>
		<title>implementation-guidelines</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=implementation-guidelines&amp;diff=1225"/>
		<updated>2005-07-31T15:46:13Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* Identification */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Guidelines and Strategies for Implementing Microformats=&lt;br /&gt;
&lt;br /&gt;
==Publishers==&lt;br /&gt;
&lt;br /&gt;
* Embedding in XHTML documents. See [[xmdp-faq|XMDP FAQ]].&lt;br /&gt;
* Microformats can be embedded in Atom entries:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;entry&amp;gt;&lt;br /&gt;
   &amp;lt;title&amp;gt;Review of Some Object&amp;lt;/title&amp;gt;&lt;br /&gt;
   &amp;lt;link href=&amp;quot;http://microformats.org/wiki/&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;id&amp;gt;urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a&amp;lt;/id&amp;gt;&lt;br /&gt;
   &amp;lt;updated&amp;gt;20050730T1900-0700&amp;lt;/updated&amp;gt;&lt;br /&gt;
   &amp;lt;content type=&amp;quot;xhtml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;h3 class=&amp;quot;summary&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;item fn&amp;quot;&amp;gt;Some Object&amp;lt;/span&amp;gt; Being Reviewed&amp;lt;/h4&amp;gt;&lt;br /&gt;
       &amp;lt;p&amp;gt;Reviewer: &amp;lt;span class=&amp;quot;reviewer fn&amp;quot;&amp;gt;author name&amp;lt;/span&amp;gt; - &lt;br /&gt;
       &amp;lt;abbr class=&amp;quot;dtreviewed&amp;quot; title=&amp;quot;20050730T1900-0700&amp;quot;&amp;gt;July 30, 2005&amp;lt;/abbr&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
       &amp;lt;blockquote class=&amp;quot;description&amp;quot;&amp;gt;&amp;lt;p&amp;gt;The review content&amp;lt;/p&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
       &amp;lt;span&amp;gt;&amp;lt;span class=&amp;quot;rating&amp;quot;&amp;gt;5&amp;lt;/span&amp;gt; out of 5&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/content&amp;gt;&lt;br /&gt;
 &amp;lt;/entry&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Questions: &lt;br /&gt;
&lt;br /&gt;
* Should an XMDP profile be linked to the Atom entry?&lt;br /&gt;
* Should the hreview class appear in the content container div?&lt;br /&gt;
&lt;br /&gt;
==Identification==&lt;br /&gt;
&lt;br /&gt;
There are several user agent identification strategies.  Currently, Firefox provides strong support for XPath based discovery methods.  Some of these can be adapted to Internet Explorer 6 with a small loss in efficiency and others not at all.  The following examples are in extreme summary form.  It is suggested that you click through on the links for more explanation.&lt;br /&gt;
&lt;br /&gt;
===Firefox/Mozilla Strategies===&lt;br /&gt;
&lt;br /&gt;
The simplest method is just to use an XPath expression to identify the microformat.  Here is an example that does just that:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var allDivs, thisDiv;&lt;br /&gt;
&lt;br /&gt;
allDivs = document.evaluate(&lt;br /&gt;
    &amp;quot;//*[contains(@class, 'xfolkentry')]&amp;quot;,&lt;br /&gt;
    document,&lt;br /&gt;
    null,&lt;br /&gt;
    XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,&lt;br /&gt;
    null);&lt;br /&gt;
		&lt;br /&gt;
// Just run through all elements matched by the XPATH expression and change&lt;br /&gt;
// the background color to an attractive red.&lt;br /&gt;
for (var i = 0; i &amp;lt; allDivs.snapshotLength; i++) {&lt;br /&gt;
    thisDiv = allDivs.snapshotItem(i);&lt;br /&gt;
    // do something here.  For example, change the background color to red.&lt;br /&gt;
    thisDiv.style.backgroundColor = 'red';&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A greasemonkey script that applies this strategy to [http://de.lirio.us de.lirio.us] and an [http://thecommunityengine.com/webcites/ individual linkblog republished from del.icio.us] is available [http://thecommunityengine.com/resources/xfolk-colorize.user.js here] with a tutorial on how the script works and how to modify it for other microformats [http://thecommunityengine.com/home/archives/2005/07/greasemonkey_mi.html here].  Alf Eaton uses this exact XPath strategy in an early [http://hublog.hubmed.org/archives/001149.html script] that he created for [[hreview]].&lt;br /&gt;
&lt;br /&gt;
However, as Alf Eaton also notes, the XPath-only strategy is subject to potential collisions where the class value that denotes the microformat's container element is contained in another class value.  For example 'xfolkentry' is contained in 'mixfolkentry', and the XPath expression would identify both as an [[xfolk]] entry.  While the danger of this particular collision occurring are slight, such may not be the case with other microformats.&lt;br /&gt;
&lt;br /&gt;
To avoid collisions in microformat container values, Alf proposes an amendment to the above strategy that works well for microformats where the container element is identified by a class value.  Alf's strategy is contained in the following code pattern (that does not run as is):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var mf = 'hreview';&lt;br /&gt;
&lt;br /&gt;
var micropath = &amp;quot;//*[contains(@class,'&amp;quot; + mf + &amp;quot;')]&amp;quot;;&lt;br /&gt;
var micromatch = new RegExp('\\b' + mf + '\\b');&lt;br /&gt;
&lt;br /&gt;
var mc = document.evaluate(micropath, document, null,&lt;br /&gt;
XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);&lt;br /&gt;
for (var i = 0; i &amp;lt; mc.snapshotLength; i++) {&lt;br /&gt;
    iNode = mc.snapshotItem(i);&lt;br /&gt;
    if (iNode.className.match(micromatch))&lt;br /&gt;
        doSomething();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that this solution introduces regular expression checking as a second test on the nodes isolated by the XPath expression.  Modifying the first example to use this strategy in a bit of code that is runnable we get:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var allDivs, thisDiv;&lt;br /&gt;
var mf = 'xfolkentry';&lt;br /&gt;
&lt;br /&gt;
var micropath = &amp;quot;//*[contains(@class,'&amp;quot; + mf + &amp;quot;')]&amp;quot;;&lt;br /&gt;
var micromatch = new RegExp('\\b' + mf + '\\b');&lt;br /&gt;
&lt;br /&gt;
allDivs = document.evaluate(&lt;br /&gt;
    micropath,&lt;br /&gt;
    document,&lt;br /&gt;
    null,&lt;br /&gt;
    XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,&lt;br /&gt;
    null);&lt;br /&gt;
		&lt;br /&gt;
for (var i = 0; i &amp;lt; allDivs.snapshotLength; i++) {&lt;br /&gt;
    thisDiv = allDivs.snapshotItem(i);&lt;br /&gt;
    // do something here.  For example, change the background color to red.&lt;br /&gt;
    if (iNode.className.match(micromatch)) // apply the second test&lt;br /&gt;
    thisDiv.style.backgroundColor = 'red';&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Internet Explorer Strategies===&lt;br /&gt;
&lt;br /&gt;
XPath-based strategies can be made to work sometimes in Internet Explorer with [http://glazkov.com/blog/archive/2004/04/06/168.aspx Dimitri Glazkov's javascript library] that harnesses IE's built-in XPath support for traversing HTML DOM.&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=implementation-guidelines&amp;diff=1162</id>
		<title>implementation-guidelines</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=implementation-guidelines&amp;diff=1162"/>
		<updated>2005-07-31T15:44:53Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* Firefox/Mozilla Strategies */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Guidelines and Strategies for Implementing Microformats=&lt;br /&gt;
&lt;br /&gt;
==Publishers==&lt;br /&gt;
&lt;br /&gt;
* Embedding in XHTML documents. See [[xmdp-faq|XMDP FAQ]].&lt;br /&gt;
* Microformats can be embedded in Atom entries:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;entry&amp;gt;&lt;br /&gt;
   &amp;lt;title&amp;gt;Review of Some Object&amp;lt;/title&amp;gt;&lt;br /&gt;
   &amp;lt;link href=&amp;quot;http://microformats.org/wiki/&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;id&amp;gt;urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a&amp;lt;/id&amp;gt;&lt;br /&gt;
   &amp;lt;updated&amp;gt;20050730T1900-0700&amp;lt;/updated&amp;gt;&lt;br /&gt;
   &amp;lt;content type=&amp;quot;xhtml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;h3 class=&amp;quot;summary&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;item fn&amp;quot;&amp;gt;Some Object&amp;lt;/span&amp;gt; Being Reviewed&amp;lt;/h4&amp;gt;&lt;br /&gt;
       &amp;lt;p&amp;gt;Reviewer: &amp;lt;span class=&amp;quot;reviewer fn&amp;quot;&amp;gt;author name&amp;lt;/span&amp;gt; - &lt;br /&gt;
       &amp;lt;abbr class=&amp;quot;dtreviewed&amp;quot; title=&amp;quot;20050730T1900-0700&amp;quot;&amp;gt;July 30, 2005&amp;lt;/abbr&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
       &amp;lt;blockquote class=&amp;quot;description&amp;quot;&amp;gt;&amp;lt;p&amp;gt;The review content&amp;lt;/p&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
       &amp;lt;span&amp;gt;&amp;lt;span class=&amp;quot;rating&amp;quot;&amp;gt;5&amp;lt;/span&amp;gt; out of 5&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/content&amp;gt;&lt;br /&gt;
 &amp;lt;/entry&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Questions: &lt;br /&gt;
&lt;br /&gt;
* Should an XMDP profile be linked to the Atom entry?&lt;br /&gt;
* Should the hreview class appear in the content container div?&lt;br /&gt;
&lt;br /&gt;
==Identification==&lt;br /&gt;
&lt;br /&gt;
There are several user agent identification strategies.  Currently, Firefox provides strong support for XPath based discovery methods.  Some of these can be adapted to Internet Explorer 6 with a small loss in efficiency and others not at all.&lt;br /&gt;
&lt;br /&gt;
===Firefox/Mozilla Strategies===&lt;br /&gt;
&lt;br /&gt;
The simplest method is just to use an XPath expression to identify the microformat.  Here is an example that does just that:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var allDivs, thisDiv;&lt;br /&gt;
&lt;br /&gt;
allDivs = document.evaluate(&lt;br /&gt;
    &amp;quot;//*[contains(@class, 'xfolkentry')]&amp;quot;,&lt;br /&gt;
    document,&lt;br /&gt;
    null,&lt;br /&gt;
    XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,&lt;br /&gt;
    null);&lt;br /&gt;
		&lt;br /&gt;
// Just run through all elements matched by the XPATH expression and change&lt;br /&gt;
// the background color to an attractive red.&lt;br /&gt;
for (var i = 0; i &amp;lt; allDivs.snapshotLength; i++) {&lt;br /&gt;
    thisDiv = allDivs.snapshotItem(i);&lt;br /&gt;
    // do something here.  For example, change the background color to red.&lt;br /&gt;
    thisDiv.style.backgroundColor = 'red';&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A greasemonkey script that applies this strategy to [http://de.lirio.us de.lirio.us] and an [http://thecommunityengine.com/webcites/ individual linkblog republished from del.icio.us] is available [http://thecommunityengine.com/resources/xfolk-colorize.user.js here] with a tutorial on how the script works and how to modify it for other microformats [http://thecommunityengine.com/home/archives/2005/07/greasemonkey_mi.html here].  Alf Eaton uses this exact XPath strategy in an early [http://hublog.hubmed.org/archives/001149.html script] that he created for [[hreview]].&lt;br /&gt;
&lt;br /&gt;
However, as Alf Eaton also notes, the XPath-only strategy is subject to potential collisions where the class value that denotes the microformat's container element is contained in another class value.  For example 'xfolkentry' is contained in 'mixfolkentry', and the XPath expression would identify both as an [[xfolk]] entry.  While the danger of this particular collision occurring are slight, such may not be the case with other microformats.&lt;br /&gt;
&lt;br /&gt;
To avoid collisions in microformat container values, Alf proposes an amendment to the above strategy that works well for microformats where the container element is identified by a class value.  Alf's strategy is contained in the following code pattern (that does not run as is):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var mf = 'hreview';&lt;br /&gt;
&lt;br /&gt;
var micropath = &amp;quot;//*[contains(@class,'&amp;quot; + mf + &amp;quot;')]&amp;quot;;&lt;br /&gt;
var micromatch = new RegExp('\\b' + mf + '\\b');&lt;br /&gt;
&lt;br /&gt;
var mc = document.evaluate(micropath, document, null,&lt;br /&gt;
XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);&lt;br /&gt;
for (var i = 0; i &amp;lt; mc.snapshotLength; i++) {&lt;br /&gt;
    iNode = mc.snapshotItem(i);&lt;br /&gt;
    if (iNode.className.match(micromatch))&lt;br /&gt;
        doSomething();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that this solution introduces regular expression checking as a second test on the nodes isolated by the XPath expression.  Modifying the first example to use this strategy in a bit of code that is runnable we get:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var allDivs, thisDiv;&lt;br /&gt;
var mf = 'xfolkentry';&lt;br /&gt;
&lt;br /&gt;
var micropath = &amp;quot;//*[contains(@class,'&amp;quot; + mf + &amp;quot;')]&amp;quot;;&lt;br /&gt;
var micromatch = new RegExp('\\b' + mf + '\\b');&lt;br /&gt;
&lt;br /&gt;
allDivs = document.evaluate(&lt;br /&gt;
    micropath,&lt;br /&gt;
    document,&lt;br /&gt;
    null,&lt;br /&gt;
    XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,&lt;br /&gt;
    null);&lt;br /&gt;
		&lt;br /&gt;
for (var i = 0; i &amp;lt; allDivs.snapshotLength; i++) {&lt;br /&gt;
    thisDiv = allDivs.snapshotItem(i);&lt;br /&gt;
    // do something here.  For example, change the background color to red.&lt;br /&gt;
    if (iNode.className.match(micromatch)) // apply the second test&lt;br /&gt;
    thisDiv.style.backgroundColor = 'red';&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Internet Explorer Strategies===&lt;br /&gt;
&lt;br /&gt;
XPath-based strategies can be made to work sometimes in Internet Explorer with [http://glazkov.com/blog/archive/2004/04/06/168.aspx Dimitri Glazkov's javascript library] that harnesses IE's built-in XPath support for traversing HTML DOM.&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=implementation-guidelines&amp;diff=1161</id>
		<title>implementation-guidelines</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=implementation-guidelines&amp;diff=1161"/>
		<updated>2005-07-31T15:44:16Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* Identification */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Guidelines and Strategies for Implementing Microformats=&lt;br /&gt;
&lt;br /&gt;
==Publishers==&lt;br /&gt;
&lt;br /&gt;
* Embedding in XHTML documents. See [[xmdp-faq|XMDP FAQ]].&lt;br /&gt;
* Microformats can be embedded in Atom entries:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;entry&amp;gt;&lt;br /&gt;
   &amp;lt;title&amp;gt;Review of Some Object&amp;lt;/title&amp;gt;&lt;br /&gt;
   &amp;lt;link href=&amp;quot;http://microformats.org/wiki/&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;id&amp;gt;urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a&amp;lt;/id&amp;gt;&lt;br /&gt;
   &amp;lt;updated&amp;gt;20050730T1900-0700&amp;lt;/updated&amp;gt;&lt;br /&gt;
   &amp;lt;content type=&amp;quot;xhtml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;h3 class=&amp;quot;summary&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;item fn&amp;quot;&amp;gt;Some Object&amp;lt;/span&amp;gt; Being Reviewed&amp;lt;/h4&amp;gt;&lt;br /&gt;
       &amp;lt;p&amp;gt;Reviewer: &amp;lt;span class=&amp;quot;reviewer fn&amp;quot;&amp;gt;author name&amp;lt;/span&amp;gt; - &lt;br /&gt;
       &amp;lt;abbr class=&amp;quot;dtreviewed&amp;quot; title=&amp;quot;20050730T1900-0700&amp;quot;&amp;gt;July 30, 2005&amp;lt;/abbr&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
       &amp;lt;blockquote class=&amp;quot;description&amp;quot;&amp;gt;&amp;lt;p&amp;gt;The review content&amp;lt;/p&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
       &amp;lt;span&amp;gt;&amp;lt;span class=&amp;quot;rating&amp;quot;&amp;gt;5&amp;lt;/span&amp;gt; out of 5&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/content&amp;gt;&lt;br /&gt;
 &amp;lt;/entry&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Questions: &lt;br /&gt;
&lt;br /&gt;
* Should an XMDP profile be linked to the Atom entry?&lt;br /&gt;
* Should the hreview class appear in the content container div?&lt;br /&gt;
&lt;br /&gt;
==Identification==&lt;br /&gt;
&lt;br /&gt;
There are several user agent identification strategies.  Currently, Firefox provides strong support for XPath based discovery methods.  Some of these can be adapted to Internet Explorer 6 with a small loss in efficiency and others not at all.&lt;br /&gt;
&lt;br /&gt;
===Firefox/Mozilla Strategies===&lt;br /&gt;
&lt;br /&gt;
The simplest method is just to use an XPath expression to identify the microformat.  Here is an example that does just that:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var allDivs, thisDiv;&lt;br /&gt;
&lt;br /&gt;
allDivs = document.evaluate(&lt;br /&gt;
    &amp;quot;//*[contains(@class, 'xfolkentry')]&amp;quot;,&lt;br /&gt;
    document,&lt;br /&gt;
    null,&lt;br /&gt;
    XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,&lt;br /&gt;
    null);&lt;br /&gt;
		&lt;br /&gt;
// Just run through all elements matched by the XPATH expression and change&lt;br /&gt;
// the background color to an attractive red.&lt;br /&gt;
for (var i = 0; i &amp;lt; allDivs.snapshotLength; i++) {&lt;br /&gt;
    thisDiv = allDivs.snapshotItem(i);&lt;br /&gt;
    // do something here.  For example, change the background color to red.&lt;br /&gt;
    thisDiv.style.backgroundColor = 'red';&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A greasemonkey script that applies this strategy to [http://de.lirio.us de.lirio.us] and an [http://thecommunityengine.com/webcites/ individual linkblog republished from del.icio.us] is available [http://thecommunityengine.com/resources/xfolk-colorize.user.js] here with a tutorial on how the script works and how to modify it for other microformats [http://thecommunityengine.com/home/archives/2005/07/greasemonkey_mi.html here].  Alf Eaton uses this exact XPath strategy in an early [http://hublog.hubmed.org/archives/001149.html script] that he created for [[hreview]].&lt;br /&gt;
&lt;br /&gt;
However, as Alf Eaton also notes, the XPath-only strategy is subject to potential collisions where the class value that denotes the microformat's container element is contained in another class value.  For example 'xfolkentry' is contained in 'mixfolkentry', and the XPath expression would identify both as an [[xfolk]] entry.  While the danger of this particular collision occurring are slight, such may not be the case with other microformats.&lt;br /&gt;
&lt;br /&gt;
To avoid collisions in microformat container values, Alf proposes an amendment to the above strategy that works well for microformats where the container element is identified by a class value.  Alf's strategy is contained in the following code pattern (that does not run as is):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var mf = 'hreview';&lt;br /&gt;
&lt;br /&gt;
var micropath = &amp;quot;//*[contains(@class,'&amp;quot; + mf + &amp;quot;')]&amp;quot;;&lt;br /&gt;
var micromatch = new RegExp('\\b' + mf + '\\b');&lt;br /&gt;
&lt;br /&gt;
var mc = document.evaluate(micropath, document, null,&lt;br /&gt;
XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);&lt;br /&gt;
for (var i = 0; i &amp;lt; mc.snapshotLength; i++) {&lt;br /&gt;
    iNode = mc.snapshotItem(i);&lt;br /&gt;
    if (iNode.className.match(micromatch))&lt;br /&gt;
        doSomething();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that this solution introduces regular expression checking as a second test on the nodes isolated by the XPath expression.  Modifying the first example to use this strategy in a bit of code that is runnable we get:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var allDivs, thisDiv;&lt;br /&gt;
var mf = 'xfolkentry';&lt;br /&gt;
&lt;br /&gt;
var micropath = &amp;quot;//*[contains(@class,'&amp;quot; + mf + &amp;quot;')]&amp;quot;;&lt;br /&gt;
var micromatch = new RegExp('\\b' + mf + '\\b');&lt;br /&gt;
&lt;br /&gt;
allDivs = document.evaluate(&lt;br /&gt;
    micropath,&lt;br /&gt;
    document,&lt;br /&gt;
    null,&lt;br /&gt;
    XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,&lt;br /&gt;
    null);&lt;br /&gt;
		&lt;br /&gt;
for (var i = 0; i &amp;lt; allDivs.snapshotLength; i++) {&lt;br /&gt;
    thisDiv = allDivs.snapshotItem(i);&lt;br /&gt;
    // do something here.  For example, change the background color to red.&lt;br /&gt;
    if (iNode.className.match(micromatch)) // apply the second test&lt;br /&gt;
    thisDiv.style.backgroundColor = 'red';&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Internet Explorer Strategies===&lt;br /&gt;
&lt;br /&gt;
XPath-based strategies can be made to work sometimes in Internet Explorer with [http://glazkov.com/blog/archive/2004/04/06/168.aspx Dimitri Glazkov's javascript library] that harnesses IE's built-in XPath support for traversing HTML DOM.&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=implementation-guidelines&amp;diff=1160</id>
		<title>implementation-guidelines</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=implementation-guidelines&amp;diff=1160"/>
		<updated>2005-07-31T15:41:49Z</updated>

		<summary type="html">&lt;p&gt;Bud: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Guidelines and Strategies for Implementing Microformats=&lt;br /&gt;
&lt;br /&gt;
==Publishers==&lt;br /&gt;
&lt;br /&gt;
* Embedding in XHTML documents. See [[xmdp-faq|XMDP FAQ]].&lt;br /&gt;
* Microformats can be embedded in Atom entries:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;entry&amp;gt;&lt;br /&gt;
   &amp;lt;title&amp;gt;Review of Some Object&amp;lt;/title&amp;gt;&lt;br /&gt;
   &amp;lt;link href=&amp;quot;http://microformats.org/wiki/&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;id&amp;gt;urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a&amp;lt;/id&amp;gt;&lt;br /&gt;
   &amp;lt;updated&amp;gt;20050730T1900-0700&amp;lt;/updated&amp;gt;&lt;br /&gt;
   &amp;lt;content type=&amp;quot;xhtml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;div class=&amp;quot;hreview&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;h3 class=&amp;quot;summary&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;item fn&amp;quot;&amp;gt;Some Object&amp;lt;/span&amp;gt; Being Reviewed&amp;lt;/h4&amp;gt;&lt;br /&gt;
       &amp;lt;p&amp;gt;Reviewer: &amp;lt;span class=&amp;quot;reviewer fn&amp;quot;&amp;gt;author name&amp;lt;/span&amp;gt; - &lt;br /&gt;
       &amp;lt;abbr class=&amp;quot;dtreviewed&amp;quot; title=&amp;quot;20050730T1900-0700&amp;quot;&amp;gt;July 30, 2005&amp;lt;/abbr&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
       &amp;lt;blockquote class=&amp;quot;description&amp;quot;&amp;gt;&amp;lt;p&amp;gt;The review content&amp;lt;/p&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
       &amp;lt;span&amp;gt;&amp;lt;span class=&amp;quot;rating&amp;quot;&amp;gt;5&amp;lt;/span&amp;gt; out of 5&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/content&amp;gt;&lt;br /&gt;
 &amp;lt;/entry&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Questions: &lt;br /&gt;
&lt;br /&gt;
* Should an XMDP profile be linked to the Atom entry?&lt;br /&gt;
* Should the hreview class appear in the content container div?&lt;br /&gt;
&lt;br /&gt;
==Identification==&lt;br /&gt;
&lt;br /&gt;
There are several user agent identification strategies.  Currently, Firefox provides strong support for XPath based discovery methods.  Some of these can be adapted to Internet Explorer 6 with a small loss in efficiency and others not at all.&lt;br /&gt;
&lt;br /&gt;
===Firefox/Mozilla Strategies===&lt;br /&gt;
&lt;br /&gt;
The simplest method is just to use an XPath expression to identify the microformat.  Here is an example that does just that:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var allDivs, thisDiv;&lt;br /&gt;
&lt;br /&gt;
allDivs = document.evaluate(&lt;br /&gt;
    &amp;quot;//*[contains(@class, 'xfolkentry')]&amp;quot;,&lt;br /&gt;
    document,&lt;br /&gt;
    null,&lt;br /&gt;
    XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,&lt;br /&gt;
    null);&lt;br /&gt;
		&lt;br /&gt;
// Just run through all elements matched by the XPATH expression and change&lt;br /&gt;
// the background color to an attractive red.&lt;br /&gt;
for (var i = 0; i &amp;lt; allDivs.snapshotLength; i++) {&lt;br /&gt;
    thisDiv = allDivs.snapshotItem(i);&lt;br /&gt;
    // do something here.  For example, change the background color to red.&lt;br /&gt;
    thisDiv.style.backgroundColor = 'red';&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A greasemonkey script that applies this strategy to [http://de.lirio.us de.lirio.us] and an [http://thecommunityengine.com/webcites/ individual linkblog republished from del.icio.us] is available [http://thecommunityengine.com/resources/xfolk-colorize.user.js] here with a tutorial on how the script works and how to modify it for other microformats [http://thecommunityengine.com/home/archives/2005/07/greasemonkey_mi.html here].  Alf Eaton uses this exact XPath strategy in an early [http://hublog.hubmed.org/archives/001149.html script] that he created for [[hreview]].&lt;br /&gt;
&lt;br /&gt;
However, as Alf Eaton also notes, the XPath-only strategy is subject to potential collisions where the class value that denotes the microformat's container element is contained in another class value.  For example 'xfolkentry' is contained in 'mixfolkentry', and the XPath expression would identify both as an [[xfolk]] entry.  While the danger of this particular collision occurring are slight, such may not be the case with other microformats.&lt;br /&gt;
&lt;br /&gt;
To avoid collisions in microformat container values, Alf proposes an amendment to the above strategy that works well for microformats where the container element is identified by a class value.  Alf's strategy is contained in the following code pattern (that does not run as is):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var mf = 'hreview';&lt;br /&gt;
&lt;br /&gt;
var micropath = &amp;quot;//*[contains(@class,'&amp;quot; + mf + &amp;quot;')]&amp;quot;;&lt;br /&gt;
var micromatch = new RegExp('\\b' + mf + '\\b');&lt;br /&gt;
&lt;br /&gt;
var mc = document.evaluate(micropath, document, null,&lt;br /&gt;
XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);&lt;br /&gt;
for (var i = 0; i &amp;lt; mc.snapshotLength; i++) {&lt;br /&gt;
    iNode = mc.snapshotItem(i);&lt;br /&gt;
    if (iNode.className.match(micromatch))&lt;br /&gt;
        doSomething();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that this solution introduces regular expression checking as a second test on the nodes isolated by the XPath expression.  Modifying the first example to use this strategy in a bit of code that is runnable we get:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var allDivs, thisDiv;&lt;br /&gt;
var mf = 'xfolkentry';&lt;br /&gt;
&lt;br /&gt;
var micropath = &amp;quot;//*[contains(@class,'&amp;quot; + mf + &amp;quot;')]&amp;quot;;&lt;br /&gt;
var micromatch = new RegExp('\\b' + mf + '\\b');&lt;br /&gt;
&lt;br /&gt;
allDivs = document.evaluate(&lt;br /&gt;
    &amp;quot;//*[contains(@class, 'xfolkentry')]&amp;quot;,&lt;br /&gt;
    document,&lt;br /&gt;
    null,&lt;br /&gt;
    XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,&lt;br /&gt;
    null);&lt;br /&gt;
		&lt;br /&gt;
for (var i = 0; i &amp;lt; allDivs.snapshotLength; i++) {&lt;br /&gt;
    thisDiv = allDivs.snapshotItem(i);&lt;br /&gt;
    // do something here.  For example, change the background color to red.&lt;br /&gt;
    if (iNode.className.match(micromatch)) // apply the second test&lt;br /&gt;
    thisDiv.style.backgroundColor = 'red';&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Internet Explorer Strategies===&lt;br /&gt;
&lt;br /&gt;
XPath-based strategies can be made to work sometimes in Internet Explorer with [http://glazkov.com/blog/archive/2004/04/06/168.aspx Dimitri Glazkov's javascript library] that harnesses IE's built-in XPath support for traversing HTML DOM.&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xmdp-brainstorming&amp;diff=890</id>
		<title>xmdp-brainstorming</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xmdp-brainstorming&amp;diff=890"/>
		<updated>2005-07-14T03:16:32Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* Raised Issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= XMDP Brainstorming =&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Authors ==&lt;br /&gt;
&lt;br /&gt;
* [http://tantek.com/log/ Tantek Çelik]&lt;br /&gt;
* [http://thecommunityengine.com/home Bud Gibson]&lt;br /&gt;
&lt;br /&gt;
Add your name here if you make significant contributions to this page and wish to take responsibility for them.&lt;br /&gt;
&lt;br /&gt;
=== UNDER CONSTRUCTION ===&lt;br /&gt;
&lt;br /&gt;
NOTE: This page is currently a bit of a mishmash of [[xmdp-faq]] , [[xmdp-issues]], and XMDP brainstorming.  I'm going to need to spend some time separating all this out.  - [http://tantek.com/log/ Tantek Çelik]&lt;br /&gt;
&lt;br /&gt;
= XMDP brainstorming =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Tantek Çelik has developed the &amp;lt;a href=&amp;quot;http://gmpg.org/xmdp/&amp;quot; title=&amp;quot;XHTML Meta-data Profile&amp;quot;&amp;gt;XMDP&amp;lt;/a&amp;gt; to define extensions to XHTML including rel values, class names, and &amp;amp;lt;meta name&amp;amp;gt; properties and values.  Per the [http://gmpg.org/xmdp/description XMDP spec], a link to a microformat's XMDP in the profile attribute of head element indicates that that microformat's vocabulary is formally defined in the document.  A parser could read the allowed attribute values from the linked XMDP and use their presence in the document to infer that that particular microformat was in use.&lt;br /&gt;
&lt;br /&gt;
=== Raised Issues ===&lt;br /&gt;
&lt;br /&gt;
* Just because a profile value mentioned in a microformat's linked XMDP also appears in the document does not mean that that microformat is in use.  Such co-occurrences could be purely by chance.&lt;br /&gt;
** REJECTED. No this does not make sense.  By definition, an XMDP profile defines certain properties and values.  Any use of such property or value in the document is thus defined by th definition in the XMDP.&lt;br /&gt;
** [[User:Bud|Bud]] 20:01, 13 Jul 2005 (PDT): Actually, this is far from clear.  Reading this excerpt from [http://gmpg.org/xmdp/description the XMDP description]:  &amp;quot;This specification does not define a set of legal meta data properties. The meaning of a property and the set of legal values for that property should be defined in a reference lexicon called a profile. For example, a profile designed to help search engines index documents might define properties such as &amp;quot;author&amp;quot;, &amp;quot;copyright&amp;quot;, &amp;quot;keywords&amp;quot;, etc.&amp;quot; seems not to imply exclusivity for the whole document, only for the part covered by the profile.  If we assumed the quoted words implied exclusivity for the whole document, then only defined attribute values could be used '''for the whole document'''.  The current usage suggests that we mean the profile to only cover the part of the document covered by the microformat.  As such, we cannot use occurrence of a value to connote presence of the microformat.  Consider this example, xFolk and hCalendar both use a description class attribute value.  Presence of that value is therefore indeterminate as to which format is being used, even if we accepted your claim here, which seems dubious.&lt;br /&gt;
* Currently, the XMDP can only be linked from the profile attribute of the head element.  In many instances, authors will not have access to the head element.&lt;br /&gt;
** ACCEPTED. There are two additional proposed ways to link to XMDP profiles&lt;br /&gt;
**# &amp;amp;lt;link rel=&amp;quot;profile&amp;quot;&amp;gt;, as introduced in the XMDP poster submitted to WWW2005.&lt;br /&gt;
**# &amp;amp;lt;a rel=&amp;quot;profile&amp;quot; href&amp;gt;, as similarly discussed.&lt;br /&gt;
&lt;br /&gt;
* Documents with user-generated content are hard to parse, and microformats present particular parsing challenges.&lt;br /&gt;
** REJECTED. This is a straw man issue.&lt;br /&gt;
** [[User:Bud|Bud]] 19:44, 13 Jul 2005 (PDT): Tantek needs to supply some justification for why this is a strawman as every developer I have talked to has raised it.  It may be that the solutions described below are sufficient to solve the issue. More neutral statements to that effect might be more constructive.&lt;br /&gt;
&lt;br /&gt;
''Feel free to add issues here.  Keep issues in this list in summary form.  Save lengthy discussion and potential solutions for elaboration below.''&lt;br /&gt;
&lt;br /&gt;
== Addressing issues ==&lt;br /&gt;
&lt;br /&gt;
These are in no particular order, but an issue should appear in the issues list above if it is addressed here.&lt;br /&gt;
&lt;br /&gt;
=== Linking to the XMDP ===&lt;br /&gt;
&lt;br /&gt;
There are at least two additional methods under discussion for linking to the XMDP in addition to the current method of using the profile attribute of the head element:&lt;br /&gt;
* Using &amp;lt;nowiki&amp;gt;&amp;lt;link rel=&amp;quot;profile&amp;quot; href=&amp;quot;link to XMDP&amp;quot;/&amp;gt;&amp;lt;/nowiki&amp;gt;.  This method can be used now and will be formalized in XHTML 2.  &lt;br /&gt;
** A problem with this method is that it requires access to the head element.&lt;br /&gt;
* Using &amp;lt;nowiki&amp;gt;&amp;lt;a rel=&amp;quot;profile&amp;quot; href=&amp;quot;link to XMDP&amp;quot;&amp;gt;powered by microformat xyz&amp;lt;/a&amp;gt;&amp;lt;/nowiki&amp;gt; in the body of the document.&lt;br /&gt;
** As noted by a number of people, this approach has the added benefit of creating a viral marketing opportunity for the microformats used.  For instance, developers could add badges saying they are using microformat xyz as suggested by the example.&lt;br /&gt;
** Blog authoring environments allow you to insert links at will, so this squarely &amp;lt;abbr title=&amp;quot;avoids&amp;quot;&amp;gt;obviates&amp;lt;/abbr&amp;gt; the need to access the head element.&lt;br /&gt;
&lt;br /&gt;
It should be noted that none of these linking solutions addresses the issue of when exactly the microformat is being used in the document.  They only indicate that the microformat may be in use.&lt;br /&gt;
&lt;br /&gt;
No. that is false.  Referencing an XMDP introduces its definitions into the document.  Period.  Those definitions then take effect for the properties and values defined therein.&lt;br /&gt;
&lt;br /&gt;
[[User:Bud|Bud]] 20:06, 13 Jul 2005 (PDT): Again, a read of the text I quote above does not support this conclusion.  If it did, you could only use values defined in the XMDP.&lt;br /&gt;
&lt;br /&gt;
=== Resolving when microformats are actually in use ===&lt;br /&gt;
&lt;br /&gt;
One solution to this issue is simply to include the &amp;lt;nowiki&amp;gt;&amp;lt;a rel=&amp;quot;profile&amp;quot; href=&amp;quot;link to XMDP&amp;quot;&amp;gt;powered by microformat xyz&amp;lt;/a&amp;gt;&amp;lt;/nowiki&amp;gt; within the container element for the microformat.  The XMDP spec could then specify that when the &amp;lt;a&amp;gt; element is used in this way, it indicates that the microformat is used by the element containing the &amp;lt;a&amp;gt; element.&lt;br /&gt;
&lt;br /&gt;
There are, however, several clear issues with this proposal:&lt;br /&gt;
&lt;br /&gt;
* Not every microformat has a container element.  Consider [[reltag]] one of the most widely used microformats.&lt;br /&gt;
* To some extent, using microformats adds to the cost of writing the document.  It's like filling in a form just to write your thoughts.  Putting &amp;lt;a&amp;gt; elements with each microformat adds unwanted links on top of that.&lt;br /&gt;
&lt;br /&gt;
=== Parsing microformats ===&lt;br /&gt;
&lt;br /&gt;
Parsing user-generated content is challenging.  Frequently, it does not validate and may not even be well formed.  Therefore, microformat discovery mechanisms that depend on documents having even minimal xml properties like well-formedness will often fail.  This is true, in particular, of [http://suda.co.uk/projects/X2V/ Brian Suda's frequently cited X2V hCard and hCalendar discovery and transformation prototypes] which use XSLT.&lt;br /&gt;
&lt;br /&gt;
However, most microformats, which tend to be agnostic about things like exact element type used, typically require that the developer resort to tools like XPATH that assume well-formedness.  Mark Pilgrim's example [http://sourceforge.net/projects/feedparser/ universal feed parser] suggests that it may be possible to sanitize user html to an extent that it is suitable for later processing as xml.&lt;br /&gt;
&lt;br /&gt;
From a pragmatic developer perspective, parsing web pages to discover microformats is likely to be an area of much work.&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xmdp-brainstorming&amp;diff=889</id>
		<title>xmdp-brainstorming</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xmdp-brainstorming&amp;diff=889"/>
		<updated>2005-07-14T03:09:17Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* Raised Issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= XMDP Brainstorming =&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Authors ==&lt;br /&gt;
&lt;br /&gt;
* [http://tantek.com/log/ Tantek Çelik]&lt;br /&gt;
* [http://thecommunityengine.com/home Bud Gibson]&lt;br /&gt;
&lt;br /&gt;
Add your name here if you make significant contributions to this page and wish to take responsibility for them.&lt;br /&gt;
&lt;br /&gt;
=== UNDER CONSTRUCTION ===&lt;br /&gt;
&lt;br /&gt;
NOTE: This page is currently a bit of a mishmash of [[xmdp-faq]] , [[xmdp-issues]], and XMDP brainstorming.  I'm going to need to spend some time separating all this out.  - [http://tantek.com/log/ Tantek Çelik]&lt;br /&gt;
&lt;br /&gt;
= XMDP brainstorming =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Tantek Çelik has developed the &amp;lt;a href=&amp;quot;http://gmpg.org/xmdp/&amp;quot; title=&amp;quot;XHTML Meta-data Profile&amp;quot;&amp;gt;XMDP&amp;lt;/a&amp;gt; to define extensions to XHTML including rel values, class names, and &amp;amp;lt;meta name&amp;amp;gt; properties and values.  Per the [http://gmpg.org/xmdp/description XMDP spec], a link to a microformat's XMDP in the profile attribute of head element indicates that that microformat's vocabulary is formally defined in the document.  A parser could read the allowed attribute values from the linked XMDP and use their presence in the document to infer that that particular microformat was in use.&lt;br /&gt;
&lt;br /&gt;
=== Raised Issues ===&lt;br /&gt;
&lt;br /&gt;
* Just because a profile value mentioned in a microformat's linked XMDP also appears in the document does not mean that that microformat is in use.  Such co-occurrences could be purely by chance.&lt;br /&gt;
** REJECTED. No this does not make sense.  By definition, an XMDP profile defines certain properties and values.  Any use of such property or value in the document is thus defined by th definition in the XMDP.&lt;br /&gt;
** [[User:Bud|Bud]] 20:01, 13 Jul 2005 (PDT): Actually, this is far from clear.  Reading this excerpt from [http://gmpg.org/xmdp/description the XMDP description]:  &amp;quot;This specification does not define a set of legal meta data properties. The meaning of a property and the set of legal values for that property should be defined in a reference lexicon called a profile. For example, a profile designed to help search engines index documents might define properties such as &amp;quot;author&amp;quot;, &amp;quot;copyright&amp;quot;, &amp;quot;keywords&amp;quot;, etc.&amp;quot; seems not to imply exclusivity for the whole document, only for the part covered by the profile.  If we assumed the quoted words implied exclusivity for the whole document, then only defined attribute values could be used '''for the whole document'''.  A reference with a neutrally stated explanation would help here.&lt;br /&gt;
* Currently, the XMDP can only be linked from the profile attribute of the head element.  In many instances, authors will not have access to the head element.&lt;br /&gt;
** ACCEPTED. There are two additional proposed ways to link to XMDP profiles&lt;br /&gt;
**# &amp;amp;lt;link rel=&amp;quot;profile&amp;quot;&amp;gt;, as introduced in the XMDP poster submitted to WWW2005.&lt;br /&gt;
**# &amp;amp;lt;a rel=&amp;quot;profile&amp;quot; href&amp;gt;, as similarly discussed.&lt;br /&gt;
&lt;br /&gt;
* Documents with user-generated content are hard to parse, and microformats present particular parsing challenges.&lt;br /&gt;
** REJECTED. This is a straw man issue.&lt;br /&gt;
** [[User:Bud|Bud]] 19:44, 13 Jul 2005 (PDT): Tantek needs to supply some justification for why this is a strawman as every developer I have talked to has raised it.  It may be that the solutions described below are sufficient to solve the issue. More neutral statements to that effect might be more constructive.&lt;br /&gt;
&lt;br /&gt;
''Feel free to add issues here.  Keep issues in this list in summary form.  Save lengthy discussion and potential solutions for elaboration below.''&lt;br /&gt;
&lt;br /&gt;
== Addressing issues ==&lt;br /&gt;
&lt;br /&gt;
These are in no particular order, but an issue should appear in the issues list above if it is addressed here.&lt;br /&gt;
&lt;br /&gt;
=== Linking to the XMDP ===&lt;br /&gt;
&lt;br /&gt;
There are at least two additional methods under discussion for linking to the XMDP in addition to the current method of using the profile attribute of the head element:&lt;br /&gt;
* Using &amp;lt;nowiki&amp;gt;&amp;lt;link rel=&amp;quot;profile&amp;quot; href=&amp;quot;link to XMDP&amp;quot;/&amp;gt;&amp;lt;/nowiki&amp;gt;.  This method can be used now and will be formalized in XHTML 2.  &lt;br /&gt;
** A problem with this method is that it requires access to the head element.&lt;br /&gt;
* Using &amp;lt;nowiki&amp;gt;&amp;lt;a rel=&amp;quot;profile&amp;quot; href=&amp;quot;link to XMDP&amp;quot;&amp;gt;powered by microformat xyz&amp;lt;/a&amp;gt;&amp;lt;/nowiki&amp;gt; in the body of the document.&lt;br /&gt;
** As noted by a number of people, this approach has the added benefit of creating a viral marketing opportunity for the microformats used.  For instance, developers could add badges saying they are using microformat xyz as suggested by the example.&lt;br /&gt;
** Blog authoring environments allow you to insert links at will, so this squarely &amp;lt;abbr title=&amp;quot;avoids&amp;quot;&amp;gt;obviates&amp;lt;/abbr&amp;gt; the need to access the head element.&lt;br /&gt;
&lt;br /&gt;
It should be noted that none of these linking solutions addresses the issue of when exactly the microformat is being used in the document.  They only indicate that the microformat may be in use.&lt;br /&gt;
&lt;br /&gt;
No. that is false.  Referencing an XMDP introduces its definitions into the document.  Period.  Those definitions then take effect for the properties and values defined therein.&lt;br /&gt;
&lt;br /&gt;
[[User:Bud|Bud]] 20:06, 13 Jul 2005 (PDT): Again, a read of the text I quote above does not support this conclusion.  If it did, you could only use values defined in the XMDP.&lt;br /&gt;
&lt;br /&gt;
=== Resolving when microformats are actually in use ===&lt;br /&gt;
&lt;br /&gt;
One solution to this issue is simply to include the &amp;lt;nowiki&amp;gt;&amp;lt;a rel=&amp;quot;profile&amp;quot; href=&amp;quot;link to XMDP&amp;quot;&amp;gt;powered by microformat xyz&amp;lt;/a&amp;gt;&amp;lt;/nowiki&amp;gt; within the container element for the microformat.  The XMDP spec could then specify that when the &amp;lt;a&amp;gt; element is used in this way, it indicates that the microformat is used by the element containing the &amp;lt;a&amp;gt; element.&lt;br /&gt;
&lt;br /&gt;
There are, however, several clear issues with this proposal:&lt;br /&gt;
&lt;br /&gt;
* Not every microformat has a container element.  Consider [[reltag]] one of the most widely used microformats.&lt;br /&gt;
* To some extent, using microformats adds to the cost of writing the document.  It's like filling in a form just to write your thoughts.  Putting &amp;lt;a&amp;gt; elements with each microformat adds unwanted links on top of that.&lt;br /&gt;
&lt;br /&gt;
=== Parsing microformats ===&lt;br /&gt;
&lt;br /&gt;
Parsing user-generated content is challenging.  Frequently, it does not validate and may not even be well formed.  Therefore, microformat discovery mechanisms that depend on documents having even minimal xml properties like well-formedness will often fail.  This is true, in particular, of [http://suda.co.uk/projects/X2V/ Brian Suda's frequently cited X2V hCard and hCalendar discovery and transformation prototypes] which use XSLT.&lt;br /&gt;
&lt;br /&gt;
However, most microformats, which tend to be agnostic about things like exact element type used, typically require that the developer resort to tools like XPATH that assume well-formedness.  Mark Pilgrim's example [http://sourceforge.net/projects/feedparser/ universal feed parser] suggests that it may be possible to sanitize user html to an extent that it is suitable for later processing as xml.&lt;br /&gt;
&lt;br /&gt;
From a pragmatic developer perspective, parsing web pages to discover microformats is likely to be an area of much work.&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xmdp-brainstorming&amp;diff=888</id>
		<title>xmdp-brainstorming</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xmdp-brainstorming&amp;diff=888"/>
		<updated>2005-07-14T03:06:01Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* Linking to the XMDP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= XMDP Brainstorming =&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Authors ==&lt;br /&gt;
&lt;br /&gt;
* [http://tantek.com/log/ Tantek Çelik]&lt;br /&gt;
* [http://thecommunityengine.com/home Bud Gibson]&lt;br /&gt;
&lt;br /&gt;
Add your name here if you make significant contributions to this page and wish to take responsibility for them.&lt;br /&gt;
&lt;br /&gt;
=== UNDER CONSTRUCTION ===&lt;br /&gt;
&lt;br /&gt;
NOTE: This page is currently a bit of a mishmash of [[xmdp-faq]] , [[xmdp-issues]], and XMDP brainstorming.  I'm going to need to spend some time separating all this out.  - [http://tantek.com/log/ Tantek Çelik]&lt;br /&gt;
&lt;br /&gt;
= XMDP brainstorming =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Tantek Çelik has developed the &amp;lt;a href=&amp;quot;http://gmpg.org/xmdp/&amp;quot; title=&amp;quot;XHTML Meta-data Profile&amp;quot;&amp;gt;XMDP&amp;lt;/a&amp;gt; to define extensions to XHTML including rel values, class names, and &amp;amp;lt;meta name&amp;amp;gt; properties and values.  Per the [http://gmpg.org/xmdp/description XMDP spec], a link to a microformat's XMDP in the profile attribute of head element indicates that that microformat's vocabulary is formally defined in the document.  A parser could read the allowed attribute values from the linked XMDP and use their presence in the document to infer that that particular microformat was in use.&lt;br /&gt;
&lt;br /&gt;
=== Raised Issues ===&lt;br /&gt;
&lt;br /&gt;
* Just because a profile value mentioned in a microformat's linked XMDP also appears in the document does not mean that that microformat is in use.  Such co-occurrences could be purely by chance.&lt;br /&gt;
** REJECTED. No this does not make sense.  By definition, an XMDP profile defines certain properties and values.  Any use of such property or value in the document is thus defined by th definition in the XMDP.&lt;br /&gt;
** [[User:Bud|Bud]] 20:01, 13 Jul 2005 (PDT): Actually, this is far from clear.  Reading this excerpt from [http://gmpg.org/xmdp/description the XMDP description]:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
This specification does not define a set of legal meta data properties. The meaning of a property and the set of legal values for that property should be defined in a reference lexicon called a profile. For example, a profile designed to help search engines index documents might define properties such as &amp;quot;author&amp;quot;, &amp;quot;copyright&amp;quot;, &amp;quot;keywords&amp;quot;, etc. &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
does not imply exclusivity for the whole document, only for the part covered by the profile.  If it implied exclusivity for the whole document, then only defined attribute values could be used '''for the whole document'''.  A reference with a neutrally stated explanation would help here.&lt;br /&gt;
* Currently, the XMDP can only be linked from the profile attribute of the head element.  In many instances, authors will not have access to the head element.&lt;br /&gt;
** ACCEPTED. There are two additional proposed ways to link to XMDP profiles&lt;br /&gt;
**# &amp;amp;lt;link rel=&amp;quot;profile&amp;quot;&amp;gt;, as introduced in the XMDP poster submitted to WWW2005.&lt;br /&gt;
**# &amp;amp;lt;a rel=&amp;quot;profile&amp;quot; href&amp;gt;, as similarly discussed.&lt;br /&gt;
&lt;br /&gt;
* Documents with user-generated content are hard to parse, and microformats present particular parsing challenges.&lt;br /&gt;
** REJECTED. This is a straw man issue.&lt;br /&gt;
** [[User:Bud|Bud]] 19:44, 13 Jul 2005 (PDT): Tantek needs to supply some justification for why this is a strawman as every developer I have talked to has raised it.  It may be that the solutions described below are sufficient to solve the issue. More neutral statements to that effect might be more constructive.&lt;br /&gt;
&lt;br /&gt;
''Feel free to add issues here.  Keep issues in this list in summary form.  Save lengthy discussion and potential solutions for elaboration below.''&lt;br /&gt;
&lt;br /&gt;
== Addressing issues ==&lt;br /&gt;
&lt;br /&gt;
These are in no particular order, but an issue should appear in the issues list above if it is addressed here.&lt;br /&gt;
&lt;br /&gt;
=== Linking to the XMDP ===&lt;br /&gt;
&lt;br /&gt;
There are at least two additional methods under discussion for linking to the XMDP in addition to the current method of using the profile attribute of the head element:&lt;br /&gt;
* Using &amp;lt;nowiki&amp;gt;&amp;lt;link rel=&amp;quot;profile&amp;quot; href=&amp;quot;link to XMDP&amp;quot;/&amp;gt;&amp;lt;/nowiki&amp;gt;.  This method can be used now and will be formalized in XHTML 2.  &lt;br /&gt;
** A problem with this method is that it requires access to the head element.&lt;br /&gt;
* Using &amp;lt;nowiki&amp;gt;&amp;lt;a rel=&amp;quot;profile&amp;quot; href=&amp;quot;link to XMDP&amp;quot;&amp;gt;powered by microformat xyz&amp;lt;/a&amp;gt;&amp;lt;/nowiki&amp;gt; in the body of the document.&lt;br /&gt;
** As noted by a number of people, this approach has the added benefit of creating a viral marketing opportunity for the microformats used.  For instance, developers could add badges saying they are using microformat xyz as suggested by the example.&lt;br /&gt;
** Blog authoring environments allow you to insert links at will, so this squarely &amp;lt;abbr title=&amp;quot;avoids&amp;quot;&amp;gt;obviates&amp;lt;/abbr&amp;gt; the need to access the head element.&lt;br /&gt;
&lt;br /&gt;
It should be noted that none of these linking solutions addresses the issue of when exactly the microformat is being used in the document.  They only indicate that the microformat may be in use.&lt;br /&gt;
&lt;br /&gt;
No. that is false.  Referencing an XMDP introduces its definitions into the document.  Period.  Those definitions then take effect for the properties and values defined therein.&lt;br /&gt;
&lt;br /&gt;
[[User:Bud|Bud]] 20:06, 13 Jul 2005 (PDT): Again, a read of the text I quote above does not support this conclusion.  If it did, you could only use values defined in the XMDP.&lt;br /&gt;
&lt;br /&gt;
=== Resolving when microformats are actually in use ===&lt;br /&gt;
&lt;br /&gt;
One solution to this issue is simply to include the &amp;lt;nowiki&amp;gt;&amp;lt;a rel=&amp;quot;profile&amp;quot; href=&amp;quot;link to XMDP&amp;quot;&amp;gt;powered by microformat xyz&amp;lt;/a&amp;gt;&amp;lt;/nowiki&amp;gt; within the container element for the microformat.  The XMDP spec could then specify that when the &amp;lt;a&amp;gt; element is used in this way, it indicates that the microformat is used by the element containing the &amp;lt;a&amp;gt; element.&lt;br /&gt;
&lt;br /&gt;
There are, however, several clear issues with this proposal:&lt;br /&gt;
&lt;br /&gt;
* Not every microformat has a container element.  Consider [[reltag]] one of the most widely used microformats.&lt;br /&gt;
* To some extent, using microformats adds to the cost of writing the document.  It's like filling in a form just to write your thoughts.  Putting &amp;lt;a&amp;gt; elements with each microformat adds unwanted links on top of that.&lt;br /&gt;
&lt;br /&gt;
=== Parsing microformats ===&lt;br /&gt;
&lt;br /&gt;
Parsing user-generated content is challenging.  Frequently, it does not validate and may not even be well formed.  Therefore, microformat discovery mechanisms that depend on documents having even minimal xml properties like well-formedness will often fail.  This is true, in particular, of [http://suda.co.uk/projects/X2V/ Brian Suda's frequently cited X2V hCard and hCalendar discovery and transformation prototypes] which use XSLT.&lt;br /&gt;
&lt;br /&gt;
However, most microformats, which tend to be agnostic about things like exact element type used, typically require that the developer resort to tools like XPATH that assume well-formedness.  Mark Pilgrim's example [http://sourceforge.net/projects/feedparser/ universal feed parser] suggests that it may be possible to sanitize user html to an extent that it is suitable for later processing as xml.&lt;br /&gt;
&lt;br /&gt;
From a pragmatic developer perspective, parsing web pages to discover microformats is likely to be an area of much work.&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xmdp-brainstorming&amp;diff=887</id>
		<title>xmdp-brainstorming</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xmdp-brainstorming&amp;diff=887"/>
		<updated>2005-07-14T03:01:50Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* Raised Issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= XMDP Brainstorming =&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Authors ==&lt;br /&gt;
&lt;br /&gt;
* [http://tantek.com/log/ Tantek Çelik]&lt;br /&gt;
* [http://thecommunityengine.com/home Bud Gibson]&lt;br /&gt;
&lt;br /&gt;
Add your name here if you make significant contributions to this page and wish to take responsibility for them.&lt;br /&gt;
&lt;br /&gt;
=== UNDER CONSTRUCTION ===&lt;br /&gt;
&lt;br /&gt;
NOTE: This page is currently a bit of a mishmash of [[xmdp-faq]] , [[xmdp-issues]], and XMDP brainstorming.  I'm going to need to spend some time separating all this out.  - [http://tantek.com/log/ Tantek Çelik]&lt;br /&gt;
&lt;br /&gt;
= XMDP brainstorming =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Tantek Çelik has developed the &amp;lt;a href=&amp;quot;http://gmpg.org/xmdp/&amp;quot; title=&amp;quot;XHTML Meta-data Profile&amp;quot;&amp;gt;XMDP&amp;lt;/a&amp;gt; to define extensions to XHTML including rel values, class names, and &amp;amp;lt;meta name&amp;amp;gt; properties and values.  Per the [http://gmpg.org/xmdp/description XMDP spec], a link to a microformat's XMDP in the profile attribute of head element indicates that that microformat's vocabulary is formally defined in the document.  A parser could read the allowed attribute values from the linked XMDP and use their presence in the document to infer that that particular microformat was in use.&lt;br /&gt;
&lt;br /&gt;
=== Raised Issues ===&lt;br /&gt;
&lt;br /&gt;
* Just because a profile value mentioned in a microformat's linked XMDP also appears in the document does not mean that that microformat is in use.  Such co-occurrences could be purely by chance.&lt;br /&gt;
** REJECTED. No this does not make sense.  By definition, an XMDP profile defines certain properties and values.  Any use of such property or value in the document is thus defined by th definition in the XMDP.&lt;br /&gt;
** [[User:Bud|Bud]] 20:01, 13 Jul 2005 (PDT): Actually, this is far from clear.  Reading this excerpt from [http://gmpg.org/xmdp/description the XMDP description]:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
This specification does not define a set of legal meta data properties. The meaning of a property and the set of legal values for that property should be defined in a reference lexicon called a profile. For example, a profile designed to help search engines index documents might define properties such as &amp;quot;author&amp;quot;, &amp;quot;copyright&amp;quot;, &amp;quot;keywords&amp;quot;, etc. &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
does not imply exclusivity for the whole document, only for the part covered by the profile.  If it implied exclusivity for the whole document, then only defined attribute values could be used '''for the whole document'''.  A reference with a neutrally stated explanation would help here.&lt;br /&gt;
* Currently, the XMDP can only be linked from the profile attribute of the head element.  In many instances, authors will not have access to the head element.&lt;br /&gt;
** ACCEPTED. There are two additional proposed ways to link to XMDP profiles&lt;br /&gt;
**# &amp;amp;lt;link rel=&amp;quot;profile&amp;quot;&amp;gt;, as introduced in the XMDP poster submitted to WWW2005.&lt;br /&gt;
**# &amp;amp;lt;a rel=&amp;quot;profile&amp;quot; href&amp;gt;, as similarly discussed.&lt;br /&gt;
&lt;br /&gt;
* Documents with user-generated content are hard to parse, and microformats present particular parsing challenges.&lt;br /&gt;
** REJECTED. This is a straw man issue.&lt;br /&gt;
** [[User:Bud|Bud]] 19:44, 13 Jul 2005 (PDT): Tantek needs to supply some justification for why this is a strawman as every developer I have talked to has raised it.  It may be that the solutions described below are sufficient to solve the issue. More neutral statements to that effect might be more constructive.&lt;br /&gt;
&lt;br /&gt;
''Feel free to add issues here.  Keep issues in this list in summary form.  Save lengthy discussion and potential solutions for elaboration below.''&lt;br /&gt;
&lt;br /&gt;
== Addressing issues ==&lt;br /&gt;
&lt;br /&gt;
These are in no particular order, but an issue should appear in the issues list above if it is addressed here.&lt;br /&gt;
&lt;br /&gt;
=== Linking to the XMDP ===&lt;br /&gt;
&lt;br /&gt;
There are at least two additional methods under discussion for linking to the XMDP in addition to the current method of using the profile attribute of the head element:&lt;br /&gt;
* Using &amp;lt;nowiki&amp;gt;&amp;lt;link rel=&amp;quot;profile&amp;quot; href=&amp;quot;link to XMDP&amp;quot;/&amp;gt;&amp;lt;/nowiki&amp;gt;.  This method can be used now and will be formalized in XHTML 2.  &lt;br /&gt;
** A problem with this method is that it requires access to the head element.&lt;br /&gt;
* Using &amp;lt;nowiki&amp;gt;&amp;lt;a rel=&amp;quot;profile&amp;quot; href=&amp;quot;link to XMDP&amp;quot;&amp;gt;powered by microformat xyz&amp;lt;/a&amp;gt;&amp;lt;/nowiki&amp;gt; in the body of the document.&lt;br /&gt;
** As noted by a number of people, this approach has the added benefit of creating a viral marketing opportunity for the microformats used.  For instance, developers could add badges saying they are using microformat xyz as suggested by the example.&lt;br /&gt;
** Blog authoring environments allow you to insert links at will, so this squarely &amp;lt;abbr title=&amp;quot;avoids&amp;quot;&amp;gt;obviates&amp;lt;/abbr&amp;gt; the need to access the head element.&lt;br /&gt;
&lt;br /&gt;
It should be noted that none of these linking solutions addresses the issue of when exactly the microformat is being used in the document.  They only indicate that the microformat may be in use.&lt;br /&gt;
No. that is false.  Referencing an XMDP introduces its definitions into the document.  Period.  Those definitions then take effect for the properties and values defined therein.&lt;br /&gt;
&lt;br /&gt;
=== Resolving when microformats are actually in use ===&lt;br /&gt;
&lt;br /&gt;
One solution to this issue is simply to include the &amp;lt;nowiki&amp;gt;&amp;lt;a rel=&amp;quot;profile&amp;quot; href=&amp;quot;link to XMDP&amp;quot;&amp;gt;powered by microformat xyz&amp;lt;/a&amp;gt;&amp;lt;/nowiki&amp;gt; within the container element for the microformat.  The XMDP spec could then specify that when the &amp;lt;a&amp;gt; element is used in this way, it indicates that the microformat is used by the element containing the &amp;lt;a&amp;gt; element.&lt;br /&gt;
&lt;br /&gt;
There are, however, several clear issues with this proposal:&lt;br /&gt;
&lt;br /&gt;
* Not every microformat has a container element.  Consider [[reltag]] one of the most widely used microformats.&lt;br /&gt;
* To some extent, using microformats adds to the cost of writing the document.  It's like filling in a form just to write your thoughts.  Putting &amp;lt;a&amp;gt; elements with each microformat adds unwanted links on top of that.&lt;br /&gt;
&lt;br /&gt;
=== Parsing microformats ===&lt;br /&gt;
&lt;br /&gt;
Parsing user-generated content is challenging.  Frequently, it does not validate and may not even be well formed.  Therefore, microformat discovery mechanisms that depend on documents having even minimal xml properties like well-formedness will often fail.  This is true, in particular, of [http://suda.co.uk/projects/X2V/ Brian Suda's frequently cited X2V hCard and hCalendar discovery and transformation prototypes] which use XSLT.&lt;br /&gt;
&lt;br /&gt;
However, most microformats, which tend to be agnostic about things like exact element type used, typically require that the developer resort to tools like XPATH that assume well-formedness.  Mark Pilgrim's example [http://sourceforge.net/projects/feedparser/ universal feed parser] suggests that it may be possible to sanitize user html to an extent that it is suitable for later processing as xml.&lt;br /&gt;
&lt;br /&gt;
From a pragmatic developer perspective, parsing web pages to discover microformats is likely to be an area of much work.&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xmdp-brainstorming&amp;diff=886</id>
		<title>xmdp-brainstorming</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xmdp-brainstorming&amp;diff=886"/>
		<updated>2005-07-14T02:44:09Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* Raised Issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= XMDP Brainstorming =&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Authors ==&lt;br /&gt;
&lt;br /&gt;
* [http://tantek.com/log/ Tantek Çelik]&lt;br /&gt;
* [http://thecommunityengine.com/home Bud Gibson]&lt;br /&gt;
&lt;br /&gt;
Add your name here if you make significant contributions to this page and wish to take responsibility for them.&lt;br /&gt;
&lt;br /&gt;
=== UNDER CONSTRUCTION ===&lt;br /&gt;
&lt;br /&gt;
NOTE: This page is currently a bit of a mishmash of [[xmdp-faq]] , [[xmdp-issues]], and XMDP brainstorming.  I'm going to need to spend some time separating all this out.  - [http://tantek.com/log/ Tantek Çelik]&lt;br /&gt;
&lt;br /&gt;
= XMDP brainstorming =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Tantek Çelik has developed the &amp;lt;a href=&amp;quot;http://gmpg.org/xmdp/&amp;quot; title=&amp;quot;XHTML Meta-data Profile&amp;quot;&amp;gt;XMDP&amp;lt;/a&amp;gt; to define extensions to XHTML including rel values, class names, and &amp;amp;lt;meta name&amp;amp;gt; properties and values.  Per the [http://gmpg.org/xmdp/description XMDP spec], a link to a microformat's XMDP in the profile attribute of head element indicates that that microformat's vocabulary is formally defined in the document.  A parser could read the allowed attribute values from the linked XMDP and use their presence in the document to infer that that particular microformat was in use.&lt;br /&gt;
&lt;br /&gt;
=== Raised Issues ===&lt;br /&gt;
&lt;br /&gt;
* Just because a profile value mentioned in a microformat's linked XMDP also appears in the document does not mean that that microformat is in use.  Such co-occurrences could be purely by chance.&lt;br /&gt;
** REJECTED. No this does not make sense.  By definition, an XMDP profile defines certain properties and values.  Any use of such property or value in the document is thus defined by th definition in the XMDP.&lt;br /&gt;
&lt;br /&gt;
* Currently, the XMDP can only be linked from the profile attribute of the head element.  In many instances, authors will not have access to the head element.&lt;br /&gt;
** ACCEPTED. There are two additional proposed ways to link to XMDP profiles&lt;br /&gt;
**# &amp;amp;lt;link rel=&amp;quot;profile&amp;quot;&amp;gt;, as introduced in the XMDP poster submitted to WWW2005.&lt;br /&gt;
**# &amp;amp;lt;a rel=&amp;quot;profile&amp;quot; href&amp;gt;, as similarly discussed.&lt;br /&gt;
&lt;br /&gt;
* Documents with user-generated content are hard to parse, and microformats present particular parsing challenges.&lt;br /&gt;
** REJECTED. This is a straw man issue.&lt;br /&gt;
** [[User:Bud|Bud]] 19:44, 13 Jul 2005 (PDT): Tantek needs to supply some justification for why this is a strawman as every developer I have talked to has raised it.  It may be that the solutions described below are sufficient to solve the issue. &lt;br /&gt;
&lt;br /&gt;
''Feel free to add issues here.  Keep issues in this list in summary form.  Save lengthy discussion and potential solutions for elaboration below.''&lt;br /&gt;
&lt;br /&gt;
== Addressing issues ==&lt;br /&gt;
&lt;br /&gt;
These are in no particular order, but an issue should appear in the issues list above if it is addressed here.&lt;br /&gt;
&lt;br /&gt;
=== Linking to the XMDP ===&lt;br /&gt;
&lt;br /&gt;
There are at least two additional methods under discussion for linking to the XMDP in addition to the current method of using the profile attribute of the head element:&lt;br /&gt;
* Using &amp;lt;nowiki&amp;gt;&amp;lt;link rel=&amp;quot;profile&amp;quot; href=&amp;quot;link to XMDP&amp;quot;/&amp;gt;&amp;lt;/nowiki&amp;gt;.  This method can be used now and will be formalized in XHTML 2.  &lt;br /&gt;
** A problem with this method is that it requires access to the head element.&lt;br /&gt;
* Using &amp;lt;nowiki&amp;gt;&amp;lt;a rel=&amp;quot;profile&amp;quot; href=&amp;quot;link to XMDP&amp;quot;&amp;gt;powered by microformat xyz&amp;lt;/a&amp;gt;&amp;lt;/nowiki&amp;gt; in the body of the document.&lt;br /&gt;
** As noted by a number of people, this approach has the added benefit of creating a viral marketing opportunity for the microformats used.  For instance, developers could add badges saying they are using microformat xyz as suggested by the example.&lt;br /&gt;
** Blog authoring environments allow you to insert links at will, so this squarely &amp;lt;abbr title=&amp;quot;avoids&amp;quot;&amp;gt;obviates&amp;lt;/abbr&amp;gt; the need to access the head element.&lt;br /&gt;
&lt;br /&gt;
It should be noted that none of these linking solutions addresses the issue of when exactly the microformat is being used in the document.  They only indicate that the microformat may be in use.&lt;br /&gt;
No. that is false.  Referencing an XMDP introduces its definitions into the document.  Period.  Those definitions then take effect for the properties and values defined therein.&lt;br /&gt;
&lt;br /&gt;
=== Resolving when microformats are actually in use ===&lt;br /&gt;
&lt;br /&gt;
One solution to this issue is simply to include the &amp;lt;nowiki&amp;gt;&amp;lt;a rel=&amp;quot;profile&amp;quot; href=&amp;quot;link to XMDP&amp;quot;&amp;gt;powered by microformat xyz&amp;lt;/a&amp;gt;&amp;lt;/nowiki&amp;gt; within the container element for the microformat.  The XMDP spec could then specify that when the &amp;lt;a&amp;gt; element is used in this way, it indicates that the microformat is used by the element containing the &amp;lt;a&amp;gt; element.&lt;br /&gt;
&lt;br /&gt;
There are, however, several clear issues with this proposal:&lt;br /&gt;
&lt;br /&gt;
* Not every microformat has a container element.  Consider [[reltag]] one of the most widely used microformats.&lt;br /&gt;
* To some extent, using microformats adds to the cost of writing the document.  It's like filling in a form just to write your thoughts.  Putting &amp;lt;a&amp;gt; elements with each microformat adds unwanted links on top of that.&lt;br /&gt;
&lt;br /&gt;
=== Parsing microformats ===&lt;br /&gt;
&lt;br /&gt;
Parsing user-generated content is challenging.  Frequently, it does not validate and may not even be well formed.  Therefore, microformat discovery mechanisms that depend on documents having even minimal xml properties like well-formedness will often fail.  This is true, in particular, of [http://suda.co.uk/projects/X2V/ Brian Suda's frequently cited X2V hCard and hCalendar discovery and transformation prototypes] which use XSLT.&lt;br /&gt;
&lt;br /&gt;
However, most microformats, which tend to be agnostic about things like exact element type used, typically require that the developer resort to tools like XPATH that assume well-formedness.  Mark Pilgrim's example [http://sourceforge.net/projects/feedparser/ universal feed parser] suggests that it may be possible to sanitize user html to an extent that it is suitable for later processing as xml.&lt;br /&gt;
&lt;br /&gt;
From a pragmatic developer perspective, parsing web pages to discover microformats is likely to be an area of much work.&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=Main_Page&amp;diff=28935</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=Main_Page&amp;diff=28935"/>
		<updated>2005-07-13T21:54:59Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* Exploratory discussions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
= Microformats Wiki =&lt;br /&gt;
Welcome to the microformats wiki. There's a lot going on around here, but feel free to jump in and offer your assistance.&lt;br /&gt;
&lt;br /&gt;
== But First... ==&lt;br /&gt;
&lt;br /&gt;
'''Please read [[how-to-play]] before making any edits.'''&lt;br /&gt;
&lt;br /&gt;
'''Please read [[process]] before proposing any new microformats.'''&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
What are microformats? See the [http://microformats.org/about/ about page] for an overview, and the [[introduction]] page for more info.  Recent [[presentations]] are also a good place for some background reading.&lt;br /&gt;
&lt;br /&gt;
== Specifications ==&lt;br /&gt;
[[microformats|Microformats]] open standards specifications:&lt;br /&gt;
* [[hcalendar|hCalendar]]&lt;br /&gt;
* [[hcard|hCard]]&lt;br /&gt;
* [[rel-license|RelLicense]]&lt;br /&gt;
* [[rel-nofollow|RelNoFollow]]&lt;br /&gt;
* [[rel-tag|RelTag]]&lt;br /&gt;
* [[vote-links|VoteLinks]]&lt;br /&gt;
* [http://gmpg.org/xfn/ XFN]&lt;br /&gt;
* [http://gmpg.org/xmdp/ XMDP]&lt;br /&gt;
* [[xoxo|XOXO]]&lt;br /&gt;
&lt;br /&gt;
== Drafts ==&lt;br /&gt;
* [[hreview|hReview]]&lt;br /&gt;
* [[robots-exclusion|Robots Exclusion]]&lt;br /&gt;
* [[rel-enclosure]]&lt;br /&gt;
* [[xfolk]]&lt;br /&gt;
&lt;br /&gt;
== Exploratory discussions ==&lt;br /&gt;
*[[comments-formats]]&lt;br /&gt;
*[[media-metadata-examples]]&lt;br /&gt;
*[[xmdp-brainstorming]] (aka discovering microformats)&lt;br /&gt;
*[[location-formats]]&lt;br /&gt;
*[[blog-post-formats]]&lt;br /&gt;
*[[wiki-formats]]&lt;br /&gt;
*[[other-formats]]&lt;br /&gt;
*[[citation-brainstorming]]&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xmdp-brainstorming&amp;diff=873</id>
		<title>xmdp-brainstorming</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xmdp-brainstorming&amp;diff=873"/>
		<updated>2005-07-13T21:53:48Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* Addressing issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= XMDP Brainstorming =&lt;br /&gt;
&lt;br /&gt;
This wiki page offers a location to brainstorm methods for discovering microformats. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Authors ==&lt;br /&gt;
&lt;br /&gt;
[http://thecommunityengine.com/home Bud Gibson]&lt;br /&gt;
&lt;br /&gt;
Add your name here if you make significant contributions to this page and wish to take responsibility for them.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Tantek Çelik has developed the &amp;lt;a href=&amp;quot;http://gmpg.org/xmdp/&amp;quot; title=&amp;quot;XHTML Meta-data Profile&amp;quot;&amp;gt;XMDP&amp;lt;/a&amp;gt; to describe the allowed class attribute values for microformats.  A link to a microformat's XMDP in the profile attribute of head element indicates that that microformat ''may'' be used in the document.  A parser could read the allowed attribute values from the linked XMDP and use their presence in the document to infer that that particular microformat was in use.&lt;br /&gt;
&lt;br /&gt;
There are clearly issues with this approach:&lt;br /&gt;
* Just because an attribute value mentioned in a microformat's linked XMDP also appears in the document does not mean that that microformat is in use.  Such co-occurrences could be purely by chance.&lt;br /&gt;
* Currently, the XMDP can only be linked from the profile attribute of the head element.  In many instances, authors will not have access to the head element.&lt;br /&gt;
* Documents with user-generated content are hard to parse, and microformats present particular parsing challenges.&lt;br /&gt;
&lt;br /&gt;
''Feel free to add issues here.  Keep issues in this list in summary form.  Save lengthy discussion and potential solutions for elaboration below.''&lt;br /&gt;
&lt;br /&gt;
== Addressing issues ==&lt;br /&gt;
&lt;br /&gt;
These are in no particular order, but an issue should appear in the issues list above if it is addressed here.&lt;br /&gt;
&lt;br /&gt;
=== Linking to the XMDP ===&lt;br /&gt;
&lt;br /&gt;
There are at least two additional methods under discussion for linking to the XMDP in addition to the current method of using the profile attribute of the head element:&lt;br /&gt;
* Using &amp;lt;nowiki&amp;gt;&amp;lt;link rel=&amp;quot;profile&amp;quot; href=&amp;quot;link to XMDP&amp;quot;/&amp;gt;&amp;lt;/nowiki&amp;gt;.  This method can be used now and will be formalized in XHTML 2.  &lt;br /&gt;
** A problem with this method is that it requires access to the head element.&lt;br /&gt;
* Using &amp;lt;nowiki&amp;gt;&amp;lt;a rel=&amp;quot;profile&amp;quot; href=&amp;quot;link to XMDP&amp;quot;&amp;gt;powered by microformat xyz&amp;lt;/a&amp;gt;&amp;lt;/nowiki&amp;gt; in the body of the document.&lt;br /&gt;
** As noted by a number of people, this approach has the added benefit of creating a viral marketing opportunity for the microformats used.  For instance, developers could add badges saying they are using microformat xyz as suggested by the example.&lt;br /&gt;
** Blog authoring environments allow you to insert links at will, so this squarely &amp;lt;abbr title=&amp;quot;avoids&amp;quot;&amp;gt;obviates&amp;lt;/abbr&amp;gt; the need to access the head element.&lt;br /&gt;
&lt;br /&gt;
It should be noted that none of these linking solutions addresses the issue of when exactly the microformat is being used in the document.  They only indicate that the microformat may be in use.&lt;br /&gt;
&lt;br /&gt;
=== Resolving when microformats are actually in use ===&lt;br /&gt;
&lt;br /&gt;
One solution to this issue is simply to include the &amp;lt;nowiki&amp;gt;&amp;lt;a rel=&amp;quot;profile&amp;quot; href=&amp;quot;link to XMDP&amp;quot;&amp;gt;powered by microformat xyz&amp;lt;/a&amp;gt;&amp;lt;/nowiki&amp;gt; within the container element for the microformat.  The XMDP spec could then specify that when the &amp;lt;a&amp;gt; element is used in this way, it indicates that the microformat is used by the element containing the &amp;lt;a&amp;gt; element.&lt;br /&gt;
&lt;br /&gt;
There are, however, several clear issues with this proposal:&lt;br /&gt;
&lt;br /&gt;
* Not every microformat has a container element.  Consider [[reltag]] one of the most widely used microformats.&lt;br /&gt;
* To some extent, using microformats adds to the cost of writing the document.  It's like filling in a form just to write your thoughts.  Putting &amp;lt;a&amp;gt; elements with each microformat adds unwanted links on top of that.&lt;br /&gt;
&lt;br /&gt;
=== Parsing microformats ===&lt;br /&gt;
&lt;br /&gt;
Parsing user-generated content is challenging.  Frequently, it does not validate and may not even be well formed.  Therefore, microformat discovery mechanisms that depend on documents having even minimal xml properties like well-formedness will often fail.  This is true, in particular, of [http://suda.co.uk/projects/X2V/ Brian Suda's frequently cited X2V hCard and hCalendar discovery and transformation prototypes] which use XSLT.&lt;br /&gt;
&lt;br /&gt;
However, most microformats, which tend to be agnostic about things like exact element type used, typically require that the developer resort to tools like XPATH that assume well-formedness.  Mark Pilgrim's example [http://sourceforge.net/projects/feedparser/ universal feed parser] suggests that it may be possible to sanitize user html to an extent that it is suitable for later processing as xml.&lt;br /&gt;
&lt;br /&gt;
From a pragmatic developer perspective, parsing web pages to discover microformats is likely to be an area of much work.&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xmdp-brainstorming&amp;diff=871</id>
		<title>xmdp-brainstorming</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xmdp-brainstorming&amp;diff=871"/>
		<updated>2005-07-13T21:30:24Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= XMDP Brainstorming =&lt;br /&gt;
&lt;br /&gt;
This wiki page offers a location to brainstorm methods for discovering microformats. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Authors ==&lt;br /&gt;
&lt;br /&gt;
[http://thecommunityengine.com/home Bud Gibson]&lt;br /&gt;
&lt;br /&gt;
Add your name here if you make significant contributions to this page and wish to take responsibility for them.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Tantek Çelik has developed the &amp;lt;a href=&amp;quot;http://gmpg.org/xmdp/&amp;quot; title=&amp;quot;XHTML Meta-data Profile&amp;quot;&amp;gt;XMDP&amp;lt;/a&amp;gt; to describe the allowed class attribute values for microformats.  A link to a microformat's XMDP in the profile attribute of head element indicates that that microformat ''may'' be used in the document.  A parser could read the allowed attribute values from the linked XMDP and use their presence in the document to infer that that particular microformat was in use.&lt;br /&gt;
&lt;br /&gt;
There are clearly issues with this approach:&lt;br /&gt;
* Just because an attribute value mentioned in a microformat's linked XMDP also appears in the document does not mean that that microformat is in use.  Such co-occurrences could be purely by chance.&lt;br /&gt;
* Currently, the XMDP can only be linked from the profile attribute of the head element.  In many instances, authors will not have access to the head element.&lt;br /&gt;
* Documents with user-generated content are hard to parse, and microformats present particular parsing challenges.&lt;br /&gt;
&lt;br /&gt;
''Feel free to add issues here.  Keep issues in this list in summary form.  Save lengthy discussion and potential solutions for elaboration below.''&lt;br /&gt;
&lt;br /&gt;
== Addressing issues ==&lt;br /&gt;
&lt;br /&gt;
These are in no particular order, but an issue should appear in the issues list above if it is addressed here.&lt;br /&gt;
&lt;br /&gt;
=== Linking to the XMDP ===&lt;br /&gt;
&lt;br /&gt;
There are at least two additional methods under discussion for linking to the XMDP in addition to the current method of using the profile attribute of the head element:&lt;br /&gt;
* Using &amp;lt;nowiki&amp;gt;&amp;lt;link rel=&amp;quot;profile&amp;quot; href=&amp;quot;link to XMDP&amp;quot;/&amp;gt;&amp;lt;/nowiki&amp;gt;.  This method can be used now and will be formalized in XHTML 2.  &lt;br /&gt;
** A problem with this method is that it requires access to the head element.&lt;br /&gt;
* Using &amp;lt;nowiki&amp;gt;&amp;lt;a rel=&amp;quot;profile&amp;quot; href=&amp;quot;link to XMDP&amp;quot;&amp;gt;powered by microformat xyz&amp;lt;/a&amp;gt;&amp;lt;/nowiki&amp;gt; in the body of the document.&lt;br /&gt;
** As noted by a number of people, this approach has the added benefit of creating a viral marketing opportunity for the microformats used.  For instance, developers could add badges saying they are using microformat xyz as suggested by the example.&lt;br /&gt;
** Blog authoring environments allow you to insert links at will, so this squarely &amp;lt;abbr title=&amp;quot;avoids&amp;quot;&amp;gt;obviates&amp;lt;/abbr&amp;gt; the need to access the head element.&lt;br /&gt;
&lt;br /&gt;
It should be noted that none of these linking solutions addresses the issue of when exactly the microformat is being used in the document.  They only indicate that the microformat may be in use.&lt;br /&gt;
&lt;br /&gt;
=== Resolving when microformats are actually in use ===&lt;br /&gt;
&lt;br /&gt;
One solution to this issue is simply to include the &amp;lt;nowiki&amp;gt;&amp;lt;a rel=&amp;quot;profile&amp;quot; href=&amp;quot;link to XMDP&amp;quot;&amp;gt;powered by microformat xyz&amp;lt;/a&amp;gt;&amp;lt;/nowiki&amp;gt; within the container element for the microformat.  The XMDP spec could then specify that when the &amp;lt;a&amp;gt; element is used in this way, it indicates that the microformat is used by the element containing the &amp;lt;a&amp;gt; element.&lt;br /&gt;
&lt;br /&gt;
There are, however, several clear issues with this proposal:&lt;br /&gt;
&lt;br /&gt;
* Not every microformat has a container element.  Consider [[reltag]] one of the most widely used microformats.&lt;br /&gt;
* To some extent, using microformats adds to the cost of writing the document.  It's like filling in a form just to write your thoughts.  Putting &amp;lt;a&amp;gt; elements with each microformat adds unwanted links on top of that.&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xmdp-brainstorming&amp;diff=870</id>
		<title>xmdp-brainstorming</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xmdp-brainstorming&amp;diff=870"/>
		<updated>2005-07-13T21:27:47Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* Addressing issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= XMDP Brainstorming =&lt;br /&gt;
&lt;br /&gt;
This wiki page offers a location to brainstorm methods for discovering microformats. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Authors ==&lt;br /&gt;
&lt;br /&gt;
[http://thecommunityengine.com/home Bud Gibson]&lt;br /&gt;
&lt;br /&gt;
Add your name here if you make significant contributions to this page and wish to take responsibility for them.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Tantek Çelik has developed the &amp;lt;a href=&amp;quot;http://gmpg.org/xmdp/&amp;quot; title=&amp;quot;XHTML Meta-data Profile&amp;quot;&amp;gt;XMDP&amp;lt;/a&amp;gt; to describe the allowed class attribute values for microformats.  A link to a microformat's XMDP in the profile attribute of head element indicates that that microformat ''may'' be used in the document.  A parser could read the allowed attribute values from the linked XMDP and use their presence in the document to infer that that particular microformat was in use.&lt;br /&gt;
&lt;br /&gt;
There are clearly issues with this approach:&lt;br /&gt;
* Just because an attribute value mentioned in a microformat's linked XMDP also appears in the document does not mean that that microformat is in use.  Such co-occurrences could be purely by chance.&lt;br /&gt;
* Currently, the XMDP can only be linked from the profile attribute of the head element.  In many instances, authors will not have access to the head element.&lt;br /&gt;
&lt;br /&gt;
''Feel free to add issues here.  Keep issues in this list in summary form.  Save lengthy discussion and potential solutions for elaboration below.''&lt;br /&gt;
&lt;br /&gt;
== Addressing issues ==&lt;br /&gt;
&lt;br /&gt;
These are in no particular order, but an issue should appear in the issues list above if it is addressed here.&lt;br /&gt;
&lt;br /&gt;
=== Linking to the XMDP ===&lt;br /&gt;
&lt;br /&gt;
There are at least two additional methods under discussion for linking to the XMDP in addition to the current method of using the profile attribute of the head element:&lt;br /&gt;
* Using &amp;lt;nowiki&amp;gt;&amp;lt;link rel=&amp;quot;profile&amp;quot; href=&amp;quot;link to XMDP&amp;quot;/&amp;gt;&amp;lt;/nowiki&amp;gt;.  This method can be used now and will be formalized in XHTML 2.  &lt;br /&gt;
** A problem with this method is that it requires access to the head element.&lt;br /&gt;
* Using &amp;lt;nowiki&amp;gt;&amp;lt;a rel=&amp;quot;profile&amp;quot; href=&amp;quot;link to XMDP&amp;quot;&amp;gt;powered by microformat xyz&amp;lt;/a&amp;gt;&amp;lt;/nowiki&amp;gt; in the body of the document.&lt;br /&gt;
** As noted by a number of people, this approach has the added benefit of creating a viral marketing opportunity for the microformats used.  For instance, developers could add badges saying they are using microformat xyz as suggested by the example.&lt;br /&gt;
** Blog authoring environments allow you to insert links at will, so this squarely &amp;lt;abbr title=&amp;quot;avoids&amp;quot;&amp;gt;obviates&amp;lt;/abbr&amp;gt; the need to access the head element.&lt;br /&gt;
&lt;br /&gt;
It should be noted that none of these linking solutions addresses the issue of when exactly the microformat is being used in the document.  They only indicate that the microformat may be in use.&lt;br /&gt;
&lt;br /&gt;
=== Resolving when microformats are actually in use ===&lt;br /&gt;
&lt;br /&gt;
One solution to this issue is simply to include the &amp;lt;nowiki&amp;gt;&amp;lt;a rel=&amp;quot;profile&amp;quot; href=&amp;quot;link to XMDP&amp;quot;&amp;gt;powered by microformat xyz&amp;lt;/a&amp;gt;&amp;lt;/nowiki&amp;gt; within the container element for the microformat.  The XMDP spec could then specify that when the &amp;lt;a&amp;gt; element is used in this way, it indicates that the microformat is used by the element containing the &amp;lt;a&amp;gt; element.&lt;br /&gt;
&lt;br /&gt;
There are, however, several clear issues with this proposal:&lt;br /&gt;
&lt;br /&gt;
* Not every microformat has a container element.  Consider [[reltag]] one of the most widely used microformats.&lt;br /&gt;
* To some extent, using microformats adds to the cost of writing the document.  It's like filling in a form just to write your thoughts.  Putting &amp;lt;a&amp;gt; elements with each microformat adds unwanted links on top of that.&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xmdp-brainstorming&amp;diff=869</id>
		<title>xmdp-brainstorming</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xmdp-brainstorming&amp;diff=869"/>
		<updated>2005-07-13T20:41:16Z</updated>

		<summary type="html">&lt;p&gt;Bud: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= XMDP Brainstorming =&lt;br /&gt;
&lt;br /&gt;
This wiki page offers a location to brainstorm methods for discovering microformats. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Authors ==&lt;br /&gt;
&lt;br /&gt;
[http://thecommunityengine.com/home Bud Gibson]&lt;br /&gt;
&lt;br /&gt;
Add your name here if you make significant contributions to this page and wish to take responsibility for them.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Tantek Çelik has developed the &amp;lt;a href=&amp;quot;http://gmpg.org/xmdp/&amp;quot; title=&amp;quot;XHTML Meta-data Profile&amp;quot;&amp;gt;XMDP&amp;lt;/a&amp;gt; to describe the allowed class attribute values for microformats.  A link to a microformat's XMDP in the profile attribute of head element indicates that that microformat ''may'' be used in the document.  A parser could read the allowed attribute values from the linked XMDP and use their presence in the document to infer that that particular microformat was in use.&lt;br /&gt;
&lt;br /&gt;
There are clearly issues with this approach:&lt;br /&gt;
* Just because an attribute value mentioned in a microformat's linked XMDP also appears in the document does not mean that that microformat is in use.  Such co-occurrences could be purely by chance.&lt;br /&gt;
* Currently, the XMDP can only be linked from the profile attribute of the head element.  In many instances, authors will not have access to the head element.&lt;br /&gt;
&lt;br /&gt;
''Feel free to add issues here.  Keep issues in this list in summary form.  Save lengthy discussion and potential solutions for elaboration below.''&lt;br /&gt;
&lt;br /&gt;
== Addressing issues ==&lt;br /&gt;
&lt;br /&gt;
These are in no particular order, but an issue should appear in the issues list above if it is addressed here.&lt;br /&gt;
&lt;br /&gt;
=== Linking to the XMDP ===&lt;br /&gt;
&lt;br /&gt;
There are at least two additional methods besides using the profile attribute of the head element under discussion:&lt;br /&gt;
* Using &amp;lt;nowiki&amp;gt;&amp;lt;link rel=&amp;quot;profile&amp;quot; href=&amp;quot;link to XMDP&amp;quot;/&amp;gt;&amp;lt;/nowiki&amp;gt;.  This method can be used now and will be formalized in XHTML 2.  &lt;br /&gt;
** A problem with this method is that it requires access to the head element.&lt;br /&gt;
* Using &amp;lt;nowiki&amp;gt;&amp;lt;a rel=&amp;quot;profile&amp;quot; href=&amp;quot;link to XMDP&amp;quot;&amp;gt;powered by microformat xyz&amp;lt;/a&amp;gt;&amp;lt;/nowiki&amp;gt; in the body of the document&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=Main_Page&amp;diff=28934</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=Main_Page&amp;diff=28934"/>
		<updated>2005-07-13T19:35:42Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* Exploratory discussions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
= Microformats Wiki =&lt;br /&gt;
Welcome to the microformats wiki. There's a lot going on around here, but feel free to jump in and offer your assistance.&lt;br /&gt;
&lt;br /&gt;
== But First... ==&lt;br /&gt;
&lt;br /&gt;
'''Please read [[how-to-play]] before making any edits.'''&lt;br /&gt;
&lt;br /&gt;
'''Please read [[process]] before proposing any new microformats.'''&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
What are microformats? See the [http://microformats.org/about/ about page] for an overview, and the [[introduction]] page for more info.  Recent [[presentations]] are also a good place for some background reading.&lt;br /&gt;
&lt;br /&gt;
== Specifications ==&lt;br /&gt;
[[microformats|Microformats]] open standards specifications:&lt;br /&gt;
* [[hcalendar|hCalendar]]&lt;br /&gt;
* [[hcard|hCard]]&lt;br /&gt;
* [[rel-license|RelLicense]]&lt;br /&gt;
* [[rel-nofollow|RelNoFollow]]&lt;br /&gt;
* [[rel-tag|RelTag]]&lt;br /&gt;
* [[vote-links|VoteLinks]]&lt;br /&gt;
* [http://gmpg.org/xfn/ XFN]&lt;br /&gt;
* [http://gmpg.org/xmdp/ XMDP]&lt;br /&gt;
* [[xoxo|XOXO]]&lt;br /&gt;
&lt;br /&gt;
== Drafts ==&lt;br /&gt;
* [[hreview|hReview]]&lt;br /&gt;
* [[robots-exclusion|Robots Exclusion]]&lt;br /&gt;
* [[rel-enclosure]]&lt;br /&gt;
* [[xfolk]]&lt;br /&gt;
&lt;br /&gt;
== Exploratory discussions ==&lt;br /&gt;
*[[comments-formats]]&lt;br /&gt;
*[[media-metadata-examples]]&lt;br /&gt;
*[[location-formats]]&lt;br /&gt;
*[[blog-post-formats]]&lt;br /&gt;
*[[wiki-formats]]&lt;br /&gt;
*[[other-formats]]&lt;br /&gt;
*[[citation-brainstorming]]&lt;br /&gt;
*[[xmdp-brainstorming]]&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xfolk-brainstorming&amp;diff=828</id>
		<title>xfolk-brainstorming</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xfolk-brainstorming&amp;diff=828"/>
		<updated>2005-07-11T23:57:38Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* Attribute Value Naming */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= xFolk Brainstorming =&lt;br /&gt;
&lt;br /&gt;
xFolk is a bare bones microformat for describing and tagging things represented by a URL.  This definition, although simple, is pretty broad.  xFolk brainstorming is a set of fairly free-flowing ideas about the future directions of xFolk.  Are there functional issues you feel xFolk should address?  Other issues or ideas?  Do you have implementation ideas you would like to discuss?  Put them here.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Authors ==&lt;br /&gt;
[http://thecommunityengine.com/home Bud Gibson]&lt;br /&gt;
&lt;br /&gt;
Add your name to the end of the list if you contribute an idea.&lt;br /&gt;
&lt;br /&gt;
== Functional Extensions ==&lt;br /&gt;
&lt;br /&gt;
* We will be adding the ability to tag any visible element that has an href attribute.  This includes &amp;lt;img&amp;gt; and &amp;lt;object&amp;gt; elements.  It is likely that there will be more specialized, domain-specific microformats for some of these items in the future.&lt;br /&gt;
&lt;br /&gt;
== Attribute Value Naming ==&lt;br /&gt;
&lt;br /&gt;
* Should we change the name of taggedlink, used to represent the item to be tagged to a more neutral name such as tagged or taggedresource?&lt;br /&gt;
&lt;br /&gt;
The editor's current thinking is that taggedlink represents well the fact that people are identifying things represented by a URL.  However, as some discussants have pointed out, the name may be too narrow.  The editor is waiting to collect further data and use cases.&lt;br /&gt;
&lt;br /&gt;
Here is one use case recently presented by Eran on the discussion list:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
For simplicity let's assume I'm using xFolk for my photo tagging service. Following the microformat philosophy, I would like to present the information in a way that's meaningful both to people and machines. For a machine, a URL is enough to identify a a resource so something like the following is enough:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;span class=&amp;quot;xfolkentry&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a class=&amp;quot;taggedlink&amp;quot; href=&amp;quot;http://example.com/image.png&amp;quot;&amp;gt;my image&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a rel=&amp;quot;tag&amp;quot; href=&amp;quot;http://example.com/tag/foo&amp;quot;&amp;gt;foo&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
But to a human browing this page this makes little sense. The following alternative representation might work better:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;span class=&amp;quot;xfolkentry&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;img class=&amp;quot;taggedresource&amp;quot; src=&amp;quot;http://example.com/image.png&amp;quot; alt=&amp;quot;my&lt;br /&gt;
image&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a rel=&amp;quot;tag&amp;quot; href=&amp;quot;http://example.com/tag/foo&amp;quot;&amp;gt;foo&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using class=&amp;quot;taggedlink&amp;quot; on an IMG element doesn't seem right. Of course, we can combine the two:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;span class=&amp;quot;xfolkentry&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a class=&amp;quot;taggedlink&amp;quot; href=&amp;quot;http://example.com/image.png&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;img src=&amp;quot;http://example.com/image.png&amp;quot; alt=&amp;quot;my image&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a rel=&amp;quot;tag&amp;quot; href=&amp;quot;http://example.com/tag/foo&amp;quot;&amp;gt;foo&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which works very well for images but might not work so well for other media types (video, text snippets, etc.) &lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;cite&amp;gt;Eran&amp;lt;/cite&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;xfolkentry&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;taggedresource&amp;quot;&amp;gt;This is my note&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;a rel=&amp;quot;tag&amp;quot; href=&amp;quot;http://example.com/tag/foo&amp;quot;&amp;gt;foo&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here's an option.  I gave it the class &amp;quot;taggedlink&amp;quot; and the class &amp;quot;inline&amp;quot;.  Style inline not to show as a link and not to change the cursor if you want.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;xfolkentry&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span&amp;gt;&amp;lt;a href=&amp;quot;URLofSomeSort&amp;quot; class=&amp;quot;taggedlink inline&amp;quot;&amp;gt;This is my note&amp;lt;/a&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;a rel=&amp;quot;tag&amp;quot; href=&amp;quot;http://example.com/tag/foo&amp;quot;&amp;gt;foo&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Implementation Ideas =&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xfolk-brainstorming&amp;diff=825</id>
		<title>xfolk-brainstorming</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xfolk-brainstorming&amp;diff=825"/>
		<updated>2005-07-11T17:04:33Z</updated>

		<summary type="html">&lt;p&gt;Bud: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= xFolk Brainstorming =&lt;br /&gt;
&lt;br /&gt;
xFolk is a bare bones microformat for describing and tagging things represented by a URL.  This definition, although simple, is pretty broad.  xFolk brainstorming is a set of fairly free-flowing ideas about the future directions of xFolk.  Are there functional issues you feel xFolk should address?  Other issues or ideas?  Do you have implementation ideas you would like to discuss?  Put them here.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Authors ==&lt;br /&gt;
[http://thecommunityengine.com/home Bud Gibson]&lt;br /&gt;
&lt;br /&gt;
Add your name to the end of the list if you contribute an idea.&lt;br /&gt;
&lt;br /&gt;
== Functional Extensions ==&lt;br /&gt;
&lt;br /&gt;
* We will be adding the ability to tag any visible element that has an href attribute.  This includes &amp;lt;img&amp;gt; and &amp;lt;object&amp;gt; elements.  It is likely that there will be more specialized, domain-specific microformats for some of these items in the future.&lt;br /&gt;
&lt;br /&gt;
== Attribute Value Naming ==&lt;br /&gt;
&lt;br /&gt;
* Should we change the name of taggedlink, used to represent the item to be tagged to a more neutral name such as tagged or taggedresource?&lt;br /&gt;
&lt;br /&gt;
The editor's current thinking is that taggedlink represents well the fact that people are identifying things represented by a URL.  However, as some discussants have pointed out, the name may be too narrow.  The editor is waiting to collect further data and use cases.&lt;br /&gt;
&lt;br /&gt;
Here is one use case recently presented by Eran on the discussion list:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
For simplicity let's assume I'm using xFolk for my photo tagging service. Following the microformat philosophy, I would like to present the information in a way that's meaningful both to people and machines. For a machine, a URL is enough to identify a a resource so something like the following is enough:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;span class=&amp;quot;xfolkentry&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a class=&amp;quot;taggedlink&amp;quot; href=&amp;quot;http://example.com/image.png&amp;quot;&amp;gt;my image&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a rel=&amp;quot;tag&amp;quot; href=&amp;quot;http://example.com/tag/foo&amp;quot;&amp;gt;foo&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
But to a human browing this page this makes little sense. The following alternative representation might work better:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;span class=&amp;quot;xfolkentry&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;img class=&amp;quot;taggedresource&amp;quot; src=&amp;quot;http://example.com/image.png&amp;quot; alt=&amp;quot;my&lt;br /&gt;
image&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a rel=&amp;quot;tag&amp;quot; href=&amp;quot;http://example.com/tag/foo&amp;quot;&amp;gt;foo&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using class=&amp;quot;taggedlink&amp;quot; on an IMG element doesn't seem right. Of course, we can combine the two:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;span class=&amp;quot;xfolkentry&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a class=&amp;quot;taggedlink&amp;quot; href=&amp;quot;http://example.com/image.png&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;img src=&amp;quot;http://example.com/image.png&amp;quot; alt=&amp;quot;my image&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a rel=&amp;quot;tag&amp;quot; href=&amp;quot;http://example.com/tag/foo&amp;quot;&amp;gt;foo&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which works very well for images but might not work so well for other media types (video, text snippets, etc.) &lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;cite&amp;gt;Eran&amp;lt;/cite&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Implementation Ideas =&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xfolk-brainstorming&amp;diff=814</id>
		<title>xfolk-brainstorming</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xfolk-brainstorming&amp;diff=814"/>
		<updated>2005-07-11T16:30:03Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* Attribute Value Naming */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= xFolk Brainstorming =&lt;br /&gt;
&lt;br /&gt;
xFolk is a bare bones microformat for describing and tagging things represented by a URL.  This definition, although simple, is pretty broad.  xFolk brainstorming is a set of fairly free-flowing ideas about the future directions of xFolk.  Are there functional issues you feel xFolk should address?  Other issues or ideas?  Put them here.&lt;br /&gt;
&lt;br /&gt;
== Authors ==&lt;br /&gt;
[http://thecommunityengine.com/home Bud Gibson]&lt;br /&gt;
&lt;br /&gt;
Add your name to the end of the list if you contribute an idea.&lt;br /&gt;
&lt;br /&gt;
== Functional Extensions ==&lt;br /&gt;
&lt;br /&gt;
* We will be adding the ability to tag any visible element that has an href attribute.  This includes &amp;lt;img&amp;gt; and &amp;lt;object&amp;gt; elements.  It is likely that there will be more specialized, domain-specific microformats for some of these items in the future.&lt;br /&gt;
&lt;br /&gt;
== Attribute Value Naming ==&lt;br /&gt;
&lt;br /&gt;
* Should we change the name of taggedlink, used to represent the item to be tagged to a more neutral name such as tagged or taggedresource?&lt;br /&gt;
&lt;br /&gt;
The editor's current thinking is that taggedlink represents well the fact that people are identifying things represented by a URL.  However, as some discussants have pointed out, the name may be too narrow.  The editor is waiting to collect further data and use cases.&lt;br /&gt;
&lt;br /&gt;
Here is one use case recently presented by Eran on the discussion list:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
For simplicity let's assume I'm using xFolk for my photo tagging service. Following the microformat philosophy, I would like to present the information in a way that's meaningful both to people and machines. For a machine, a URL is enough to identify a a resource so something like the following is enough:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;span class=&amp;quot;xfolkentry&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a class=&amp;quot;taggedlink&amp;quot; href=&amp;quot;http://example.com/image.png&amp;quot;&amp;gt;my image&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a rel=&amp;quot;tag&amp;quot; href=&amp;quot;http://example.com/tag/foo&amp;quot;&amp;gt;foo&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
But to a human browing this page this makes little sense. The following alternative representation might work better:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;span class=&amp;quot;xfolkentry&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;img class=&amp;quot;taggedresource&amp;quot; src=&amp;quot;http://example.com/image.png&amp;quot; alt=&amp;quot;my&lt;br /&gt;
image&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a rel=&amp;quot;tag&amp;quot; href=&amp;quot;http://example.com/tag/foo&amp;quot;&amp;gt;foo&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using class=&amp;quot;taggedlink&amp;quot; on an IMG element doesn't seem right. Of course, we can combine the two:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;span class=&amp;quot;xfolkentry&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a class=&amp;quot;taggedlink&amp;quot; href=&amp;quot;http://example.com/image.png&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;img src=&amp;quot;http://example.com/image.png&amp;quot; alt=&amp;quot;my image&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a rel=&amp;quot;tag&amp;quot; href=&amp;quot;http://example.com/tag/foo&amp;quot;&amp;gt;foo&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which works very well for images but might not work so well for other media types (video, text snippets, etc.) &lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;cite&amp;gt;Eran&amp;lt;/cite&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xfolk-brainstorming&amp;diff=811</id>
		<title>xfolk-brainstorming</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xfolk-brainstorming&amp;diff=811"/>
		<updated>2005-07-11T16:29:08Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* Attribute Value Naming */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= xFolk Brainstorming =&lt;br /&gt;
&lt;br /&gt;
xFolk is a bare bones microformat for describing and tagging things represented by a URL.  This definition, although simple, is pretty broad.  xFolk brainstorming is a set of fairly free-flowing ideas about the future directions of xFolk.  Are there functional issues you feel xFolk should address?  Other issues or ideas?  Put them here.&lt;br /&gt;
&lt;br /&gt;
== Authors ==&lt;br /&gt;
[http://thecommunityengine.com/home Bud Gibson]&lt;br /&gt;
&lt;br /&gt;
Add your name to the end of the list if you contribute an idea.&lt;br /&gt;
&lt;br /&gt;
== Functional Extensions ==&lt;br /&gt;
&lt;br /&gt;
* We will be adding the ability to tag any visible element that has an href attribute.  This includes &amp;lt;img&amp;gt; and &amp;lt;object&amp;gt; elements.  It is likely that there will be more specialized, domain-specific microformats for some of these items in the future.&lt;br /&gt;
&lt;br /&gt;
== Attribute Value Naming ==&lt;br /&gt;
&lt;br /&gt;
* Should we change the name of taggedlink, used to represent the item to be tagged to a more neutral name such as tagged or taggedresource?&lt;br /&gt;
&lt;br /&gt;
The editor's current thinking is that taggedlink represents well the fact that people are identifying things represented by a URL.  However, as some discussants have pointed out, the name may be too narrow.  The editor is waiting to collect further data and use cases.&lt;br /&gt;
&lt;br /&gt;
Here is one use case recently presented by Eran on the discussion list:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
For simplicity let's assume I'm using xFolk for my photo tagging service. Following the microformat philosophy, I would like to present the information in a way that's meaningful both to people and machines. For a machine, a URL is enough to identify a a resource so something like the following is enough:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;span class=&amp;quot;xfolkentry&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a class=&amp;quot;taggedlink&amp;quot; href=&amp;quot;http://example.com/image.png&amp;quot;&amp;gt;my image&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a rel=&amp;quot;tag&amp;quot; href=&amp;quot;http://example.com/tag/foo&amp;quot;&amp;gt;foo&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
But to a human browing this page this makes little sense. The following alternative representation might work better:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;span class=&amp;quot;xfolkentry&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;img class=&amp;quot;taggedresource&amp;quot; src=&amp;quot;http://example.com/image.png&amp;quot; alt=&amp;quot;my&lt;br /&gt;
image&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a rel=&amp;quot;tag&amp;quot; href=&amp;quot;http://example.com/tag/foo&amp;quot;&amp;gt;foo&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using class=&amp;quot;taggedlink&amp;quot; on an IMG element doesn't seem right. Of course, we can combine the two:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;span class=&amp;quot;xfolkentry&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a class=&amp;quot;taggedlink&amp;quot; href=&amp;quot;http://example.com/image.png&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;img src=&amp;quot;http://example.com/image.png&amp;quot; alt=&amp;quot;my image&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a rel=&amp;quot;tag&amp;quot; href=&amp;quot;http://example.com/tag/foo&amp;quot;&amp;gt;foo&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which works very well for images but might not work so well for other media types (video, text snippets, etc.) &lt;br /&gt;
&amp;lt;cite&amp;gt;Eran&amp;lt;/cite&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xfolk-brainstorming&amp;diff=810</id>
		<title>xfolk-brainstorming</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xfolk-brainstorming&amp;diff=810"/>
		<updated>2005-07-11T16:28:20Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* Attribute Value Naming */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= xFolk Brainstorming =&lt;br /&gt;
&lt;br /&gt;
xFolk is a bare bones microformat for describing and tagging things represented by a URL.  This definition, although simple, is pretty broad.  xFolk brainstorming is a set of fairly free-flowing ideas about the future directions of xFolk.  Are there functional issues you feel xFolk should address?  Other issues or ideas?  Put them here.&lt;br /&gt;
&lt;br /&gt;
== Authors ==&lt;br /&gt;
[http://thecommunityengine.com/home Bud Gibson]&lt;br /&gt;
&lt;br /&gt;
Add your name to the end of the list if you contribute an idea.&lt;br /&gt;
&lt;br /&gt;
== Functional Extensions ==&lt;br /&gt;
&lt;br /&gt;
* We will be adding the ability to tag any visible element that has an href attribute.  This includes &amp;lt;img&amp;gt; and &amp;lt;object&amp;gt; elements.  It is likely that there will be more specialized, domain-specific microformats for some of these items in the future.&lt;br /&gt;
&lt;br /&gt;
== Attribute Value Naming ==&lt;br /&gt;
&lt;br /&gt;
* Should we change the name of taggedlink, used to represent the item to be tagged to a more neutral name such as tagged or taggedresource?&lt;br /&gt;
&lt;br /&gt;
The editor's current thinking is that taggedlink represents well the fact that people are identifying things represented by a URL.  However, as some discussants have pointed out, the name may be too narrow.  The editor is waiting to collect further data and use cases.&lt;br /&gt;
&lt;br /&gt;
Here is one use case recently presented by Eran on the discussion list:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
For simplicity let's assume I'm using xFolk for my photo tagging service. Following the microformat philosophy, I would like to present the information in a way that's meaningful both to people and machines. For a machine, a URL is enough to identify a a resource so something like the following is enough:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;span class=&amp;quot;xfolkentry&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a class=&amp;quot;taggedlink&amp;quot; href=&amp;quot;http://example.com/image.png&amp;quot;&amp;gt;my image&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a rel=&amp;quot;tag&amp;quot; href=&amp;quot;http://example.com/tag/foo&amp;quot;&amp;gt;foo&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
But to a human browing this page this makes little sense. The following alternative representation might work better:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;span class=&amp;quot;xfolkentry&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;img class=&amp;quot;taggedresource&amp;quot; src=&amp;quot;http://example.com/image.png&amp;quot; alt=&amp;quot;my&lt;br /&gt;
image&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a rel=&amp;quot;tag&amp;quot; href=&amp;quot;http://example.com/tag/foo&amp;quot;&amp;gt;foo&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using class=&amp;quot;taggedlink&amp;quot; on an IMG element doesn't seem right. Of course, we can combine the two:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;span class=&amp;quot;xfolkentry&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a class=&amp;quot;taggedlink&amp;quot; href=&amp;quot;http://example.com/image.png&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;img src=&amp;quot;http://example.com/image.png&amp;quot; alt=&amp;quot;my image&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a rel=&amp;quot;tag&amp;quot; href=&amp;quot;http://example.com/tag/foo&amp;quot;&amp;gt;foo&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which works very well for images but might not work so well for other media types (video, text snippets, etc.) &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xfolk-brainstorming&amp;diff=809</id>
		<title>xfolk-brainstorming</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xfolk-brainstorming&amp;diff=809"/>
		<updated>2005-07-11T16:27:48Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* Attribute Value Naming */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= xFolk Brainstorming =&lt;br /&gt;
&lt;br /&gt;
xFolk is a bare bones microformat for describing and tagging things represented by a URL.  This definition, although simple, is pretty broad.  xFolk brainstorming is a set of fairly free-flowing ideas about the future directions of xFolk.  Are there functional issues you feel xFolk should address?  Other issues or ideas?  Put them here.&lt;br /&gt;
&lt;br /&gt;
== Authors ==&lt;br /&gt;
[http://thecommunityengine.com/home Bud Gibson]&lt;br /&gt;
&lt;br /&gt;
Add your name to the end of the list if you contribute an idea.&lt;br /&gt;
&lt;br /&gt;
== Functional Extensions ==&lt;br /&gt;
&lt;br /&gt;
* We will be adding the ability to tag any visible element that has an href attribute.  This includes &amp;lt;img&amp;gt; and &amp;lt;object&amp;gt; elements.  It is likely that there will be more specialized, domain-specific microformats for some of these items in the future.&lt;br /&gt;
&lt;br /&gt;
== Attribute Value Naming ==&lt;br /&gt;
&lt;br /&gt;
* Should we change the name of taggedlink, used to represent the item to be tagged to a more neutral name such as tagged or taggedresource?&lt;br /&gt;
&lt;br /&gt;
The editor's current thinking is that taggedlink represents well the fact that people are identifying things represented by a URL.  However, as some discussants have pointed out, the name may be too narrow.  The editor is waiting to collect further data and use cases.&lt;br /&gt;
&lt;br /&gt;
Here is one use case recently presented by Eran on the discussion list:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
For simplicity let's assume I'm using xFolk for my photo tagging service. Following the microformat philosophy, I would like to present the information in a way that's meaningful both to people and machines. For a machine, a URL is enough to identify a a resource so something like the following is enough:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;span class=&amp;quot;xfolkentry&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a class=&amp;quot;taggedlink&amp;quot; href=&amp;quot;http://example.com/image.png&amp;quot;&amp;gt;my image&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a rel=&amp;quot;tag&amp;quot; href=&amp;quot;http://example.com/tag/foo&amp;quot;&amp;gt;foo&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
But to a human browing this page this makes little sense. The following alternative representation might work better:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;span class=&amp;quot;xfolkentry&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;img class=&amp;quot;taggedresource&amp;quot; src=&amp;quot;http://example.com/image.png&amp;quot; alt=&amp;quot;my&lt;br /&gt;
image&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a rel=&amp;quot;tag&amp;quot; href=&amp;quot;http://example.com/tag/foo&amp;quot;&amp;gt;foo&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using class=&amp;quot;taggedlink&amp;quot; on an IMG element doesn't seem right. Of course, we can combine the two:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;span class=&amp;quot;xfolkentry&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a class=&amp;quot;taggedlink&amp;quot; href=&amp;quot;http://example.com/image.png&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;img src=&amp;quot;http://example.com/image.png&amp;quot; alt=&amp;quot;my image&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a rel=&amp;quot;tag&amp;quot; href=&amp;quot;http://example.com/tag/foo&amp;quot;&amp;gt;foo&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which works very well for images but might not work so well for other media types (video, text snippets, etc.) &lt;br /&gt;
&amp;lt;/blocquote&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xfolk-brainstorming&amp;diff=808</id>
		<title>xfolk-brainstorming</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xfolk-brainstorming&amp;diff=808"/>
		<updated>2005-07-11T16:26:21Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* Attribute Value Naming */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= xFolk Brainstorming =&lt;br /&gt;
&lt;br /&gt;
xFolk is a bare bones microformat for describing and tagging things represented by a URL.  This definition, although simple, is pretty broad.  xFolk brainstorming is a set of fairly free-flowing ideas about the future directions of xFolk.  Are there functional issues you feel xFolk should address?  Other issues or ideas?  Put them here.&lt;br /&gt;
&lt;br /&gt;
== Authors ==&lt;br /&gt;
[http://thecommunityengine.com/home Bud Gibson]&lt;br /&gt;
&lt;br /&gt;
Add your name to the end of the list if you contribute an idea.&lt;br /&gt;
&lt;br /&gt;
== Functional Extensions ==&lt;br /&gt;
&lt;br /&gt;
* We will be adding the ability to tag any visible element that has an href attribute.  This includes &amp;lt;img&amp;gt; and &amp;lt;object&amp;gt; elements.  It is likely that there will be more specialized, domain-specific microformats for some of these items in the future.&lt;br /&gt;
&lt;br /&gt;
== Attribute Value Naming ==&lt;br /&gt;
&lt;br /&gt;
* Should we change the name of taggedlink, used to represent the item to be tagged to a more neutral name such as tagged or taggedresource?&lt;br /&gt;
&lt;br /&gt;
The editor's current thinking is that taggedlink represents well the fact that people are identifying things represented by a URL.  However, as some discussants have pointed out, the name may be too narrow.  The editor is waiting to collect further data and use cases.&lt;br /&gt;
&lt;br /&gt;
Here is one use case recently presented by Eran on the discussion list:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
For simplicity let's assume I'm using xFolk for my photo tagging service. Following the microformat philosophy, I would like to present the information in a way that's meaningful both to people and machines. For a machine, a URL is enough to identify a a resource so something like the following is enough:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;&amp;lt;span class=&amp;quot;xfolkentry&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a class=&amp;quot;taggedlink&amp;quot; href=&amp;quot;http://example.com/image.png&amp;quot;&amp;gt;my image&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a rel=&amp;quot;tag&amp;quot; href=&amp;quot;http://example.com/tag/foo&amp;quot;&amp;gt;foo&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But to a human browing this page this makes little sense. The following alternative representation might work better:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;&amp;lt;span class=&amp;quot;xfolkentry&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;img class=&amp;quot;taggedresource&amp;quot; src=&amp;quot;http://example.com/image.png&amp;quot; alt=&amp;quot;my&lt;br /&gt;
image&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a rel=&amp;quot;tag&amp;quot; href=&amp;quot;http://example.com/tag/foo&amp;quot;&amp;gt;foo&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using class=&amp;quot;taggedlink&amp;quot; on an IMG element doesn't seem right. Of course, we can combine the two:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;&amp;lt;span class=&amp;quot;xfolkentry&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a class=&amp;quot;taggedlink&amp;quot; href=&amp;quot;http://example.com/image.png&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;img src=&amp;quot;http://example.com/image.png&amp;quot; alt=&amp;quot;my image&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a rel=&amp;quot;tag&amp;quot; href=&amp;quot;http://example.com/tag/foo&amp;quot;&amp;gt;foo&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which works very well for images but might not work so well for other media types (video, text snippets, etc.) &lt;br /&gt;
&amp;lt;/blocquote&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xfolk-brainstorming&amp;diff=807</id>
		<title>xfolk-brainstorming</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xfolk-brainstorming&amp;diff=807"/>
		<updated>2005-07-11T16:20:06Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* xFolk Brainstorming */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= xFolk Brainstorming =&lt;br /&gt;
&lt;br /&gt;
xFolk is a bare bones microformat for describing and tagging things represented by a URL.  This definition, although simple, is pretty broad.  xFolk brainstorming is a set of fairly free-flowing ideas about the future directions of xFolk.  Are there functional issues you feel xFolk should address?  Other issues or ideas?  Put them here.&lt;br /&gt;
&lt;br /&gt;
== Authors ==&lt;br /&gt;
[http://thecommunityengine.com/home Bud Gibson]&lt;br /&gt;
&lt;br /&gt;
Add your name to the end of the list if you contribute an idea.&lt;br /&gt;
&lt;br /&gt;
== Functional Extensions ==&lt;br /&gt;
&lt;br /&gt;
* We will be adding the ability to tag any visible element that has an href attribute.  This includes &amp;lt;img&amp;gt; and &amp;lt;object&amp;gt; elements.  It is likely that there will be more specialized, domain-specific microformats for some of these items in the future.&lt;br /&gt;
&lt;br /&gt;
== Attribute Value Naming ==&lt;br /&gt;
&lt;br /&gt;
* Should we change the name of taggedlink, used to represent the item to be tagged to a more neutral name such as tagged or taggedresource?&lt;br /&gt;
&lt;br /&gt;
The editor's current thinking is that taggedlink represents well the fact that people are identifying things represented by a URL.  However, as some discussants have pointed out, the name may be too narrow.  The editor is waiting to collect further data and use cases.&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xfolk-brainstorming&amp;diff=806</id>
		<title>xfolk-brainstorming</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xfolk-brainstorming&amp;diff=806"/>
		<updated>2005-07-11T16:12:41Z</updated>

		<summary type="html">&lt;p&gt;Bud: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= xFolk Brainstorming =&lt;br /&gt;
&lt;br /&gt;
xFolk is a bare bones microformat for describing and tagging linked items.  This definition although simple is pretty broad.  xFolk brainstorming is a set of fairly free-flowing ideas about the future directions of xFolk.  Are there functional issues you feel xFolk should address?  Put them here.&lt;br /&gt;
&lt;br /&gt;
== Authors ==&lt;br /&gt;
[http://thecommunityengine.com/home Bud Gibson]&lt;br /&gt;
&lt;br /&gt;
Add your name to the end of the list if you contribute an idea.&lt;br /&gt;
&lt;br /&gt;
== Functional Extensions ==&lt;br /&gt;
&lt;br /&gt;
* We will be adding the ability to tag any visible element that has an href attribute.  This includes &amp;lt;img&amp;gt; and &amp;lt;object&amp;gt; elements.  It is likely that there will be more specialized, domain-specific microformats for some of these items in the future.&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xfolk&amp;diff=883</id>
		<title>xfolk</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xfolk&amp;diff=883"/>
		<updated>2005-07-11T16:03:55Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* Work in progress */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
= xFolk (RC1) =&lt;br /&gt;
&lt;br /&gt;
xFolk is a simple and open format for publishing collections of bookmarks. It better enables services for improving user experience and sharing data in web-based bookmarking software.  xFolk may be embedded in (X)HTML, Atom, RSS, and arbitrary XML. It is one of several open [[microformats|microformat]] standards.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Draft Specification ==&lt;br /&gt;
&lt;br /&gt;
=== Editor ===&lt;br /&gt;
[http://thecommunityengine.com/ Bud Gibson], [http://thecommunityengine.com The Community Engine]&lt;br /&gt;
&lt;br /&gt;
=== Authors ===&lt;br /&gt;
* [http://thecommunityengine.com/ Bud Gibson], [http://thecommunityengine.com The Community Engine]&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;
=== Inspiration and Acknowledgments ===&lt;br /&gt;
Thanks to: [http://www.cnbc.cmu.edu/~plaut/ David Plaut] who introduced me to the idea that items may partially belong to many categories at once.  More recently, thanks to: [http://tantek.com/ Tantek Çelik], [http://epeus.blogspot.com/ Kevin Marks], [http://steve.osdir.com/ Steve Mallet], [http://hybernaut.com/ Brian DelVecchio], and [http://blogmarks.net François Hodierne] who have contributed to the development of xFolk with thoughtful critiques and implementations.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Social bookmarking services let users save and tag bookmarks to share with other users.  Over the past year, the number of these services has mushroomed to [http://en.wikipedia.org/wiki/Social_bookmarking over 20], with popular examples including: [http://del.icio.us del.icio.us], [http://furl.com furl], [http://de.lirio.us de.lirio.us], and [http://blogmarks.net blogmarks].  &lt;br /&gt;
&lt;br /&gt;
Lack of an open, interoperable data standard is a major issue in using social bookmarking services.  An open standard would make it possible to easily collect social bookmark data and remix it to invent new services along the lines of  [http://gataga.com gataga]'s experimental bookmark search engine.  An open standard would also make it possible to write javascripts that work across services [http://johnvey.com/features/deliciousdirector/ as some currently do for del.icio.us], enabling across-the-board improvements in user experience.&lt;br /&gt;
&lt;br /&gt;
xFolk is an open social bookmarking standard that aims to achieve both benefits.  Social bookmarking services that adopt xFolk will continue to differentiate themselves with data services.  But, the data itself will be easy to manipulate by third party scripts and easy to share.  As a result, bookmarking services will be able to offer a wider array of options to their users at low cost and focus on what truly differentiates them.  Individuals or groups operating standalone bookmark repositories will have access to a wider array of functionality than they can produce on their own.&lt;br /&gt;
&lt;br /&gt;
== Semantic XHTML Design Principles ==&lt;br /&gt;
{{SemanticXHTMLDesignPrinciples}}&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
Extensive analysis of social bookmarking services and linkblogs, reported on [http://thecommunityengine.com/home/archives/xfolk elsewhere], reveals that the data published by both bookmarking services and '''many''' different linkblogs are described by the following implied schema:&lt;br /&gt;
&lt;br /&gt;
* A bookmarked or tagged link.&lt;br /&gt;
* A title for the entry.&lt;br /&gt;
* Tags for the link.&lt;br /&gt;
* An extended description or summary of the link.&lt;br /&gt;
&lt;br /&gt;
As demonstrated in early iterations of the xFolk standard, this general schema can be translated into markup by:&lt;br /&gt;
&lt;br /&gt;
# creating a container element for each entry of class &amp;lt;code&amp;gt;xfolkentry&amp;lt;/code&amp;gt;, &lt;br /&gt;
# using an &amp;lt;a&amp;gt; element for the bookmarked or tagged link of class &amp;lt;code&amp;gt;taggedlink&amp;lt;/code&amp;gt;, &lt;br /&gt;
# using title attribute for the tagged link &amp;lt;a&amp;gt; element, if it exists, as the entry title, otherwise using the element value,&lt;br /&gt;
# using [[reltag|RelTag]] for the tags, and&lt;br /&gt;
# using a container element of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, such as &amp;amp;lt;p&amp;gt;, for any extended description or summary.&lt;br /&gt;
&lt;br /&gt;
A given xFolk entry will always contain a tagged link including a title with all other elements optional.  Entries may have more than one tag as well as more than one element of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;.  Multiple elements of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; are ordered by default document order. Semantic elements within xFolk entries may be nested at arbitray depths.&lt;br /&gt;
&lt;br /&gt;
Many social bookmarking systems exist, each with its own markup conventions.  Further, many people are already publishing personal link blogs.  xFolk is designed with ease of adapting to these current practices as a primary goal.  Therefore, few assumptions are made as to the exact kinds of elements used for an xFolk entry.  Rather, the work of defining semantics is left entirely to the class and rel (in the case of [[reltag]]) attribute values.&lt;br /&gt;
&lt;br /&gt;
It is expected that developers will use [http://www.w3.org/TR/xpath XPath] or equivalent syntax in accessing xFolk entry elements.  a requirement for XPath is that the (X)HTML document be well-formed but not necessarily valid.  Thus, while undesirable, it is possible to serviceably use xFolk in an (X)HTML document that does not validate.&lt;br /&gt;
&lt;br /&gt;
=== XMDP Profile ===&lt;br /&gt;
&lt;br /&gt;
See the [[xfolk-profile|xFolk profile]] for the [http://gmpg.org/xmdp XMDP] profile of xFolk.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Here is a sample bookmark as displayed in [http://del.icio.us del.icio.us]'s standard markup.  Lines where the value of elements' class attributes must change to conform to xFolk are marked with a comment at the end.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;amp;lt;div class=&amp;quot;post&amp;quot;&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=&amp;quot;delLink&amp;quot; href=&amp;quot;http://www.sifry.com/alerts/archives/000306.html&amp;quot;&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
      Sifry's Alerts: Technorati launches Related Tags&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt; &lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=&amp;quot;extended&amp;quot;&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    Ever wanted to see what posts are related to other posts, what tags &lt;br /&gt;
    are related to others? Now you can! Just check under the Tag &lt;br /&gt;
    description on most tag pages, like this one, or this one, and you'll&lt;br /&gt;
    see the patterns. Can you smell the emergence?&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=&amp;quot;meta&amp;quot;&amp;amp;gt;&lt;br /&gt;
    to&lt;br /&gt;
    &amp;amp;lt;a class=&amp;quot;delNav&amp;quot; href=&amp;quot;/fpgibson/folksonomy&amp;quot;&amp;amp;gt;folksonomy&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=&amp;quot;delNav&amp;quot; href=&amp;quot;/fpgibson/technorati&amp;quot;&amp;amp;gt;technorati&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    ... &amp;amp;lt;a class=&amp;quot;delNav&amp;quot; href=&amp;quot;/url/cbcabf7de070fdb46598ee679367be49&amp;quot;&amp;amp;gt;&lt;br /&gt;
    and 1 other person&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    ... on 2005-04-09&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The equivalent in xFolk is as follows.  Comments are placed at the end of lines where class attribute changes were required. &lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;amp;lt;div class=&amp;quot;xfolkentry&amp;quot;&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=&amp;quot;taggedlink&amp;quot; href=&amp;quot;http://www.sifry.com/alerts/archives/000306.html&amp;quot;&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
      Sifry's Alerts: Technorati launches Related Tags&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt; &lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=&amp;quot;description&amp;quot;&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    Ever wanted to see what posts are related to other posts, what tags &lt;br /&gt;
    are related to others? Now you can! Just check under the Tag &lt;br /&gt;
    description on most tag pages, like this one, or this one, and you'll&lt;br /&gt;
    see the patterns. Can you smell the emergence?&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=&amp;quot;meta&amp;quot;&amp;amp;gt;&lt;br /&gt;
    to&lt;br /&gt;
    &amp;amp;lt;a rel=&amp;quot;tag&amp;quot; href=&amp;quot;/fpgibson/folksonomy&amp;quot;&amp;amp;gt;folksonomy&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a rel=&amp;quot;tag&amp;quot; href=&amp;quot;/fpgibson/technorati&amp;quot;&amp;amp;gt;technorati&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    ... &amp;amp;lt;a class=&amp;quot;delNav&amp;quot; href=&amp;quot;/url/cbcabf7de070fdb46598ee679367be49&amp;quot;&amp;amp;gt;&lt;br /&gt;
    and 1 other person&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    ... on 2005-04-09&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Converting markup to be conformant with xFolk is almost always this easy.  The advantage of xFolk is that it provides one set of class attributes that can be reused across all services and link blogs, almost always with no loss of granularity.  The next section presents several more examples to illustrate this point.&lt;br /&gt;
&lt;br /&gt;
== Many more examples ==&lt;br /&gt;
&lt;br /&gt;
We have numerous examples to help developers incorporate xFolk into their sites.&lt;br /&gt;
&lt;br /&gt;
=== In the wild ===&lt;br /&gt;
&lt;br /&gt;
These are real live examples of functioning systems that publish bookmarks in xFolk.  These 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 publish using xFolk, 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;
* [http://de.lirio.us de.lirio.us] currently publishes its bookmarks using xFolk (with the deprecated class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, see [[xfolk-profile | the XMDP]]).&lt;br /&gt;
* [http://dev.blogmarks.net/wiki/BlogSync blogmarks] currently exports bookmarks to blogs in xFolk (scroll down to the export example on the page; the deprecated class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, see [[xfolk-profile | the XMDP]]).&lt;br /&gt;
* [http://thecommunityengine.com The Community Engine] uses xFolk (with the deprecated class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, see [[xfolk-profile | the XMDP]]) for its [http://thecommunityengine.com/home main entries] and for its [http://thecommunityengine.com/webcites republished bookmarks].&lt;br /&gt;
&lt;br /&gt;
=== Additional social bookmarking services ===&lt;br /&gt;
&lt;br /&gt;
This example illustrates how xFolk may be applied to one additional service:&lt;br /&gt;
&lt;br /&gt;
* [[xfolk-scuttle | scuttle]]&lt;br /&gt;
&lt;br /&gt;
=== Link blogs ===&lt;br /&gt;
&lt;br /&gt;
Social bookmarking services are only the most recent examples of people publishing links.  Link blogs have been around almost since the beginning of blogging.  They represent somewhat more of a challenge for xFolk because their markup tends to be less semantic from the outset.  The following examples illustrate some particular challenges and how they can be overcome.&lt;br /&gt;
&lt;br /&gt;
* [[xfolk-kottke | kottke]]&lt;br /&gt;
* [[xfolk-pollas | pollas]]&lt;br /&gt;
* [[xfolk-jacobian | jacobian]]&lt;br /&gt;
* [[xfolk-julian-bez | julian-bez]]&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
The following implementations have been developed which generate xFolk. If you have an xFolk 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;
* [http://de.lirio.us de.lirio.us] currently publishes its bookmarks using xFolk 0.4 (the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of description).&lt;br /&gt;
* [http://dev.blogmarks.net/wiki/BlogSync blogmarks] currently exports bookmarks to blogs in xFolk 0.4 (scroll down to the export example on the page; the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;).&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;
* [[rel-tag|RelTag]]&lt;br /&gt;
&lt;br /&gt;
=== Informative References ===&lt;br /&gt;
* [http://thecommunityengine.com/home/archives/xfolk articles about xFolk]&lt;br /&gt;
* [http://thecommunityengine.com/home/archives/tags/microformats articles about the business value of microformats]&lt;br /&gt;
* [http://gataga.com gataga social bookmark search engine]&lt;br /&gt;
* [http://johnvey.com/features/deliciousdirector/ an ajax based interface for del.icio.us]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Social_bookmarking social bookmarking defined at wikipedia]&lt;br /&gt;
&lt;br /&gt;
=== Similar Work ===&lt;br /&gt;
* [[hreview | hReview]]&lt;br /&gt;
&lt;br /&gt;
== Work in progress ==&lt;br /&gt;
Although this specification has recently begun to stabilize as indicated by the version RC1, it is still a work in progress.  If warranted, I am prepared to go through multiple release candidates to achieve the narrow purpose of making bookmark entries more genrally accessible with as with as light weight a format as possible.  All changes since the last iteration have been motivated by the implementation experience of developers attempting to achieve this narrow aim.  Further changes will also most likely be motivated by implementation concerns.  See &amp;quot;future directions&amp;quot; below for additional microformat possibilities.&lt;br /&gt;
&lt;br /&gt;
=== Changes since xFolk 0.4 ===&lt;br /&gt;
The class attribute value &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; was deprecated in favor &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; to better conform with other microformat usage and some requests during implementation.  The other change has been to allow use of multiple elements of class &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; based on some use cases discovered in implementation.&lt;br /&gt;
&lt;br /&gt;
=== Future directions ===&lt;br /&gt;
There are several extensions one might imagine for xFolk.  Frequently, these extensions are best achieved by combining xFolk with another microformat.  For instance, one might want to indicate his or her evaluation of the bookmarked item.  This might be achieved by using [[vote-links | Vote Links]] or [[hreview | hReview]] with xFolk.&lt;br /&gt;
&lt;br /&gt;
One can also imagine extending xFolk to provide data conformant with various social bookmarking service APIs, for instance to provide all bookmarks by tag.  These APIs are currently too fluid for specification in any kind of standard.  The APIs and the functionality they provide represent one way social bookmarking services and meta services can differentiate themselves.&lt;br /&gt;
&lt;br /&gt;
A companion format called &amp;quot;xFolk definition&amp;quot; is under development.  xFolk definition will provide a means of explicitly defining the tags used in social bookmarks.&lt;br /&gt;
&lt;br /&gt;
=== Brainstorming ===&lt;br /&gt;
* [[xfolk-brainstorming|xFolk brainstorming]]&lt;br /&gt;
&lt;br /&gt;
== Discussions ==&lt;br /&gt;
&lt;br /&gt;
=== Q&amp;amp;A ===&lt;br /&gt;
* If you have any questions about xFolk, check the [[xfolk-faq|xFolk 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 [[xfolk-issues | xFolk issues]] document.&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xfolk-julian-bez&amp;diff=1416</id>
		<title>xfolk-julian-bez</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xfolk-julian-bez&amp;diff=1416"/>
		<updated>2005-07-10T20:32:45Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* Julian Bez */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Julian Bez =&lt;br /&gt;
&amp;lt;p&amp;gt;[http://www.julian-bez.de/blog Julian Bez] is a german web designer.  His link blog contains a lot of semantic markup.  It only requires minor alteration to conform with xFolk.  Here's the markup before conversion with items to change commented at the end of the line.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;amp;lt;li id=&amp;quot;links&amp;quot;&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;h3&amp;amp;gt;del.icio.us bookmarks&amp;amp;lt;/h3&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;p&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a rel=&amp;quot;bookmark&amp;quot; href=&amp;quot;http://37signals.com/svn/archives2/2005/04/amazons_new_clo.php&amp;quot;&amp;amp;gt; &amp;lt;!-- will change --&amp;gt;&lt;br /&gt;
      &amp;amp;lt;strong&amp;amp;gt;&lt;br /&gt;
        Amazon's new clothes - Signal vs. Noise (by 37signals)&lt;br /&gt;
      &amp;amp;lt;/strong&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/p&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=&amp;quot;linkcontent&amp;quot;&amp;amp;gt; &amp;lt;!-- will change --&amp;gt;&lt;br /&gt;
    &amp;amp;lt;p&amp;amp;gt;&lt;br /&gt;
      (Apr 7) It looks like Amazon is trying a new book detail page.&lt;br /&gt;
    &amp;amp;lt;/p&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/li&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Here's the new version with changes and additions commented at the end of the line.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;amp;lt;li id=&amp;quot;links&amp;quot;&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;h3&amp;amp;gt;del.icio.us bookmarks&amp;amp;lt;/h3&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=&amp;quot;xfolkentry&amp;quot;&amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
  &amp;amp;lt;p&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a rel=&amp;quot;bookmark&amp;quot; &amp;lt;strong&amp;gt;class=&amp;quot;taggedlink&amp;quot;&amp;lt;/strong&amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
     href=&amp;quot;http://37signals.com/svn/archives2/2005/04/amazons_new_clo.php&amp;quot;&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;strong&amp;amp;gt;&lt;br /&gt;
        Amazon's new clothes - Signal vs. Noise (by 37signals)&lt;br /&gt;
      &amp;amp;lt;/strong&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/p&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=&amp;quot;description&amp;quot;&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    &amp;amp;lt;p&amp;amp;gt;&lt;br /&gt;
      (Apr 7) It looks like Amazon is trying a new book detail page.&lt;br /&gt;
    &amp;amp;lt;/p&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
&amp;amp;lt;/li&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xfolk-jacobian&amp;diff=15579</id>
		<title>xfolk-jacobian</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xfolk-jacobian&amp;diff=15579"/>
		<updated>2005-07-10T20:29:16Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* Jacobian */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Jacobian = &lt;br /&gt;
&amp;lt;p&amp;gt;[http://jacobian.org/recipes/ Jacobian] writes on recipes.  These may be cooking recipes, software recipes, recipes for disaster, any kind of recipe.  His link blog is sparse appearing to just consist of URLs and titles.  However, an investigation of the source reveals that the description of the link is contained in the title attribute of the &amp;amp;lt;a&amp;gt; tag.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;This structure is challenging for xFolk because it uses the title attribute in a completely different way.  Consulting recommended and current uses of the title attribute, xFolk's use of the title attribute seems to conform more to the standard approach than Jacobian's.  The simple solution is to just switch the title and element values, making the containing &amp;amp;lt;a&amp;gt; element of both classes taggedlink and description.  In this case, the value of the &amp;amp;lt;a&amp;gt; element's title attribute serves as the link's title and the value of the &amp;amp;lt;a&amp;gt; element itself serves as the description.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Here is the markup before conversion to xFolk Entry 0.4 with items to be changed bolded.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;amp;lt;ul id='delicious'&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;li&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=&amp;quot;delLink&amp;quot; title=&amp;quot;Cricket is a &lt;br /&gt;
     high performance, extremely flexible system for monitoring trends &lt;br /&gt;
     in time-series data. Cricket was expressly developed to help &lt;br /&gt;
     network managers visualize and understand the traffic on their &lt;br /&gt;
     networks, but it can be used all kinds of other job&amp;quot; &lt;br /&gt;
     href=&amp;quot;http://cricket.sourceforge.net/&amp;quot;&amp;amp;gt;&lt;br /&gt;
      &amp;lt;strong&amp;gt;Cricket&amp;lt;/strong&amp;gt;&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/li&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/ul&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Here is the xFolk conformant version with the element and title attribute values switched.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;amp;lt;ul id='delicious'&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;li class=&amp;quot;xfolkentry&amp;quot;&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=&amp;quot;taggedlink description&amp;quot; title=&amp;quot;Cricket&amp;quot; &lt;br /&gt;
     href=&amp;quot;http://cricket.sourceforge.net/&amp;quot;&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
     Cricket is a high performance, extremely flexible system for &lt;br /&gt;
     monitoring trends in time-series data. Cricket was expressly &lt;br /&gt;
     developed to help network managers visualize and understand the &lt;br /&gt;
     traffic on their networks, but it can be used all kinds of &lt;br /&gt;
     other jobs.&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/li&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/ul&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xfolk-pollas&amp;diff=15712</id>
		<title>xfolk-pollas</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xfolk-pollas&amp;diff=15712"/>
		<updated>2005-07-10T20:25:03Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* Anders Pollas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Anders Pollas =&lt;br /&gt;
&amp;lt;p&amp;gt;Anders Pollas maintains a [http://pollas.dk/ blog] where he discusses music, media, and new means of distribution for information products.  His link blog already has many semantic elements.  Here is the version before xFolk with items to be changed marked with a comment at the end of the line.  Note that Pollas does not publish tags for his links.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;amp;lt;ul class=&amp;quot;delicious&amp;quot;&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;li&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a href=&amp;quot;http://db.tidbits.com/getbits.acgi?tbart=07140&amp;quot;&amp;amp;gt;&lt;br /&gt;
      TidBITS: Catching Up with the Voice of Macintosh: Fred&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt; &lt;br /&gt;
    &amp;amp;lt;div class=&amp;quot;extended&amp;quot;&amp;amp;gt; &amp;lt;!-- will change --&amp;gt;&lt;br /&gt;
      Airport meetup with ... Fred&lt;br /&gt;
    &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/li&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/ul&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;One issue with Pollas' strategy is that he specifies a collection of entries vs. one entry at a time as required by xFolk.  Therefore, we will have to add a container element for the entry.  Here is the altered version.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;amp;lt;ul class=&amp;quot;delicious&amp;quot;&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;li class=&amp;quot;xfolkentry&amp;quot;&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=&amp;quot;taggedlink&amp;quot; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
     href=&amp;quot;http://db.tidbits.com/getbits.acgi?tbart=07140&amp;quot;&amp;amp;gt;&lt;br /&gt;
      TidBITS: Catching Up with the Voice of Macintosh: Fred&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt; &lt;br /&gt;
    &amp;amp;lt;div class=&amp;quot;description&amp;quot;&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
      Airport meetup with ... Fred&lt;br /&gt;
    &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/li&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/ul&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xfolk-kottke&amp;diff=1796</id>
		<title>xfolk-kottke</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xfolk-kottke&amp;diff=1796"/>
		<updated>2005-07-10T20:18:31Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* Kottke's Remaindered Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Kottke's Remaindered Links =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;[http://www.kottke.org/remainder/ Kottke's remaindered links] is an [http://www.mediabistro.com/aboutus/articles/050207_independent.pdf internationally recognized] link blog.  This entry from his link blog represents several challenges for applying xFolk because, as is, it is not valid xhtml.  Further, there are no explicit semantics, only implied semantics.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;amp;lt;li&amp;gt;&lt;br /&gt;
  &amp;amp;lt;a href=&amp;quot;http://www.guardian.co.uk/arts/news/story/0,11711,1188015,00.html&amp;quot;&amp;gt;&lt;br /&gt;
    A previous Banksy unauthorized art placement took place in the &lt;br /&gt;
    Natural History Museum in London&lt;br /&gt;
  &amp;amp;lt;/a&amp;gt;&amp;amp;nbsp;&amp;amp;thinsp;&lt;br /&gt;
  &amp;amp;lt;span class=&amp;quot;nocmt&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a href=&amp;quot;http://www.kottke.org/remainder/05/03/7937.html&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;amp;amp;thinsp;#&amp;amp;amp;thinsp;&lt;br /&gt;
    &amp;amp;lt;/a&amp;gt;&amp;amp;lt;br /&amp;gt;&lt;br /&gt;
    &amp;quot;The graffiti artist Banksy has managed to smuggle in his latest &lt;br /&gt;
     work, a dead rat in a glass-fronted box, into the Natural History&lt;br /&gt;
     Museum where it was exhibited on a wall for several hours.&amp;quot;&lt;br /&gt;
&amp;amp;lt;/li&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Here is the version rendered in xFolk.  Note that we fixed the &amp;amp;lt;span&amp;gt; tag that was not properly closed in the original rendition.  A further issue is that Kottke used a &amp;amp;lt;br /&amp;gt; element, a sort of no-no in semantic markup.  Under the idea of altering practice as little as possible, we just leave it.  A challenge with this particular entry is the presence of two URLs that could be interpreted as the URL to tag, one pointing to a permalink on Kottke's site and one pointing to the original article.  We opt for the URL pointing to the original article.  Altered lines are marked with a comment at the end of the line.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;amp;lt;li class=&amp;quot;xfolkentry&amp;quot;&amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
  &amp;amp;lt;a class=&amp;quot;taggedlink&amp;quot; href=&amp;quot;http://www.guardian.co.uk/arts/news/story/0,11711,1188015,00.html&amp;quot;&amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    A previous Banksy unauthorized art placement took place in the &lt;br /&gt;
    Natural History Museum in London&lt;br /&gt;
  &amp;amp;lt;/a&amp;gt;&amp;amp;nbsp;&amp;amp;thinsp;&lt;br /&gt;
  &amp;amp;lt;span class=&amp;quot;nocmt&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a href=&amp;quot;http://www.kottke.org/remainder/05/03/7937.html&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;amp;amp;thinsp;#&amp;amp;amp;thinsp; &lt;br /&gt;
    &amp;amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;strong&amp;gt;&amp;amp;lt;/span&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
  &amp;amp;lt;br /&amp;gt;&lt;br /&gt;
    &amp;amp;lt;span class=&amp;quot;extended&amp;quot;&amp;gt; &amp;quot;The graffiti artist Banksy has managed &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
     to smuggle in his latest &lt;br /&gt;
     work, a dead rat in a glass-fronted box, into the Natural History&lt;br /&gt;
     Museum where it was exhibited on a wall for several hours.&amp;quot;&amp;amp;lt;/span&amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
&amp;amp;lt;/li&amp;gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xfolk-scuttle&amp;diff=5545</id>
		<title>xfolk-scuttle</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xfolk-scuttle&amp;diff=5545"/>
		<updated>2005-07-10T20:14:39Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* Scuttle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Scuttle =&lt;br /&gt;
&amp;lt;p&amp;gt;An issue with scuttle's xhtml presentation is that it specifies a collection of bookmarks with the implicit idea that bookmarks are separated each time a new URL is specfied in a &amp;amp;lt;dt&amp;gt; element.  Further, things like tags are specified as a collection in a sublist.  This approach is fine if one expects that the information will always be presented in a definition list.  Such will not be the general case for those not already using scuttle.&amp;lt;/p&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;amp;lt;div id=&amp;quot;bookmarks&amp;quot;&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;h2&amp;amp;gt;Your Bookmarks&amp;amp;lt;/h2&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;dl&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;dt&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;a href=&amp;quot;http://www.sifry.com/alerts/archives/000306.html&amp;quot;&amp;amp;gt;&lt;br /&gt;
        Sifry&amp;amp;amp;#039;s Alerts: Technorati launches Related Tags&lt;br /&gt;
      &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/dt&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;dd class=&amp;quot;description&amp;quot;&amp;amp;gt;&lt;br /&gt;
      Ever wanted to see what posts are related to other posts, what &lt;br /&gt;
      tags are related to others? Now you can! Just check under the &lt;br /&gt;
      Tag description on most tag pages, like this one, or this one, &lt;br /&gt;
      and you&amp;amp;amp;#039;ll see the patterns. Can you smell the emergence?&lt;br /&gt;
    &amp;amp;lt;/dd&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;dd class=&amp;quot;tags&amp;quot;&amp;amp;gt;&lt;br /&gt;
      2005-04-09 to &lt;br /&gt;
      &amp;amp;lt;a href=&amp;quot;http://www.niallkennedy.com/scuttle/bookmarks.php/budgibson/folksonomy&amp;quot;&amp;amp;gt;&lt;br /&gt;
        folksonomy&lt;br /&gt;
      &amp;amp;lt;/a&amp;amp;gt;, &lt;br /&gt;
      &amp;amp;lt;a href=&amp;quot;http://www.niallkennedy.com/scuttle/bookmarks.php/budgibson/technorati&amp;quot;&amp;amp;gt;&lt;br /&gt;
        technorati&lt;br /&gt;
      &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/dd&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/dl&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;To get this into xFolk 0.5, the easiest way is to have each xFolk entry in its own &amp;amp;lt;dl&amp;gt; element of class xfolkentry so that individual xFolk entries can be demarcated.  We will also have to add class attributes in cases where there are none.  Changed and added components are marked with comments at the end of the line.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;amp;lt;div id=&amp;quot;bookmarks&amp;quot;&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;h2&amp;amp;gt;Your Bookmarks&amp;amp;lt;/h2&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;dl class=&amp;quot;xfolkentry&amp;quot;&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    &amp;amp;lt;dt&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;a class=&amp;quot;taggedlink&amp;quot; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
      href=&amp;quot;http://www.sifry.com/alerts/archives/000306.html&amp;quot;&amp;amp;gt;&lt;br /&gt;
        Sifry&amp;amp;amp;#039;s Alerts: Technorati launches Related Tags&lt;br /&gt;
      &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/dt&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;dd class=&amp;quot;description&amp;quot;&amp;amp;gt; &amp;lt;!-- not changed because works with xFolk --&amp;gt;&lt;br /&gt;
      Ever wanted to see what posts are related to other posts, what &lt;br /&gt;
      tags are related to others? Now you can! Just check under the &lt;br /&gt;
      Tag description on most tag pages, like this one, or this one, &lt;br /&gt;
      and you&amp;amp;amp;#039;ll see the patterns. Can you smell the emergence?&lt;br /&gt;
    &amp;amp;lt;/dd&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;dd class=&amp;quot;tags&amp;quot;&amp;amp;gt;&lt;br /&gt;
      2005-04-09 to &lt;br /&gt;
      &amp;amp;lt;a rel=&amp;quot;tag&amp;quot; &lt;br /&gt;
       href=&amp;quot;http://www.niallkennedy.com/scuttle/bookmarks.php/budgibson/folksonomy&amp;quot;&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
        folksonomy&lt;br /&gt;
      &amp;amp;lt;/a&amp;amp;gt;, &lt;br /&gt;
      &amp;amp;lt;a rel=&amp;quot;tag&amp;quot; &lt;br /&gt;
       href=&amp;quot;http://www.niallkennedy.com/scuttle/bookmarks.php/budgibson/technorati&amp;quot;&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
        technorati&lt;br /&gt;
      &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/dd&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/dl&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xfolk&amp;diff=804</id>
		<title>xfolk</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xfolk&amp;diff=804"/>
		<updated>2005-07-10T20:04:27Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* In the wild */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
= xFolk (RC1) =&lt;br /&gt;
&lt;br /&gt;
xFolk is a simple and open format for publishing collections of bookmarks. It better enables services for improving user experience and sharing data in web-based bookmarking software.  xFolk may be embedded in (X)HTML, Atom, RSS, and arbitrary XML. It is one of several open [[microformats|microformat]] standards.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Draft Specification ==&lt;br /&gt;
&lt;br /&gt;
=== Editor ===&lt;br /&gt;
[http://thecommunityengine.com/ Bud Gibson], [http://thecommunityengine.com The Community Engine]&lt;br /&gt;
&lt;br /&gt;
=== Authors ===&lt;br /&gt;
* [http://thecommunityengine.com/ Bud Gibson], [http://thecommunityengine.com The Community Engine]&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;
=== Inspiration and Acknowledgments ===&lt;br /&gt;
Thanks to: [http://www.cnbc.cmu.edu/~plaut/ David Plaut] who introduced me to the idea that items may partially belong to many categories at once.  More recently, thanks to: [http://tantek.com/ Tantek Çelik], [http://epeus.blogspot.com/ Kevin Marks], [http://steve.osdir.com/ Steve Mallet], [http://hybernaut.com/ Brian DelVecchio], and [http://blogmarks.net François Hodierne] who have contributed to the development of xFolk with thoughtful critiques and implementations.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Social bookmarking services let users save and tag bookmarks to share with other users.  Over the past year, the number of these services has mushroomed to [http://en.wikipedia.org/wiki/Social_bookmarking over 20], with popular examples including: [http://del.icio.us del.icio.us], [http://furl.com furl], [http://de.lirio.us de.lirio.us], and [http://blogmarks.net blogmarks].  &lt;br /&gt;
&lt;br /&gt;
Lack of an open, interoperable data standard is a major issue in using social bookmarking services.  An open standard would make it possible to easily collect social bookmark data and remix it to invent new services along the lines of  [http://gataga.com gataga]'s experimental bookmark search engine.  An open standard would also make it possible to write javascripts that work across services [http://johnvey.com/features/deliciousdirector/ as some currently do for del.icio.us], enabling across-the-board improvements in user experience.&lt;br /&gt;
&lt;br /&gt;
xFolk is an open social bookmarking standard that aims to achieve both benefits.  Social bookmarking services that adopt xFolk will continue to differentiate themselves with data services.  But, the data itself will be easy to manipulate by third party scripts and easy to share.  As a result, bookmarking services will be able to offer a wider array of options to their users at low cost and focus on what truly differentiates them.  Individuals or groups operating standalone bookmark repositories will have access to a wider array of functionality than they can produce on their own.&lt;br /&gt;
&lt;br /&gt;
== Semantic XHTML Design Principles ==&lt;br /&gt;
{{SemanticXHTMLDesignPrinciples}}&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
Extensive analysis of social bookmarking services and linkblogs, reported on [http://thecommunityengine.com/home/archives/xfolk elsewhere], reveals that the data published by both bookmarking services and '''many''' different linkblogs are described by the following implied schema:&lt;br /&gt;
&lt;br /&gt;
* A bookmarked or tagged link.&lt;br /&gt;
* A title for the entry.&lt;br /&gt;
* Tags for the link.&lt;br /&gt;
* An extended description or summary of the link.&lt;br /&gt;
&lt;br /&gt;
As demonstrated in early iterations of the xFolk standard, this general schema can be translated into markup by:&lt;br /&gt;
&lt;br /&gt;
# creating a container element for each entry of class &amp;lt;code&amp;gt;xfolkentry&amp;lt;/code&amp;gt;, &lt;br /&gt;
# using an &amp;lt;a&amp;gt; element for the bookmarked or tagged link of class &amp;lt;code&amp;gt;taggedlink&amp;lt;/code&amp;gt;, &lt;br /&gt;
# using title attribute for the tagged link &amp;lt;a&amp;gt; element, if it exists, as the entry title, otherwise using the element value,&lt;br /&gt;
# using [[reltag|RelTag]] for the tags, and&lt;br /&gt;
# using a container element of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, such as &amp;amp;lt;p&amp;gt;, for any extended description or summary.&lt;br /&gt;
&lt;br /&gt;
A given xFolk entry will always contain a tagged link including a title with all other elements optional.  Entries may have more than one tag as well as more than one element of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;.  Multiple elements of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; are ordered by default document order. Semantic elements within xFolk entries may be nested at arbitray depths.&lt;br /&gt;
&lt;br /&gt;
Many social bookmarking systems exist, each with its own markup conventions.  Further, many people are already publishing personal link blogs.  xFolk is designed with ease of adapting to these current practices as a primary goal.  Therefore, few assumptions are made as to the exact kinds of elements used for an xFolk entry.  Rather, the work of defining semantics is left entirely to the class and rel (in the case of [[reltag]]) attribute values.&lt;br /&gt;
&lt;br /&gt;
It is expected that developers will use [http://www.w3.org/TR/xpath XPath] or equivalent syntax in accessing xFolk entry elements.  a requirement for XPath is that the (X)HTML document be well-formed but not necessarily valid.  Thus, while undesirable, it is possible to serviceably use xFolk in an (X)HTML document that does not validate.&lt;br /&gt;
&lt;br /&gt;
=== XMDP Profile ===&lt;br /&gt;
&lt;br /&gt;
See the [[xfolk-profile|xFolk profile]] for the [http://gmpg.org/xmdp XMDP] profile of xFolk.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Here is a sample bookmark as displayed in [http://del.icio.us del.icio.us]'s standard markup.  Lines where the value of elements' class attributes must change to conform to xFolk are marked with a comment at the end.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;amp;lt;div class=&amp;quot;post&amp;quot;&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=&amp;quot;delLink&amp;quot; href=&amp;quot;http://www.sifry.com/alerts/archives/000306.html&amp;quot;&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
      Sifry's Alerts: Technorati launches Related Tags&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt; &lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=&amp;quot;extended&amp;quot;&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    Ever wanted to see what posts are related to other posts, what tags &lt;br /&gt;
    are related to others? Now you can! Just check under the Tag &lt;br /&gt;
    description on most tag pages, like this one, or this one, and you'll&lt;br /&gt;
    see the patterns. Can you smell the emergence?&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=&amp;quot;meta&amp;quot;&amp;amp;gt;&lt;br /&gt;
    to&lt;br /&gt;
    &amp;amp;lt;a class=&amp;quot;delNav&amp;quot; href=&amp;quot;/fpgibson/folksonomy&amp;quot;&amp;amp;gt;folksonomy&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=&amp;quot;delNav&amp;quot; href=&amp;quot;/fpgibson/technorati&amp;quot;&amp;amp;gt;technorati&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    ... &amp;amp;lt;a class=&amp;quot;delNav&amp;quot; href=&amp;quot;/url/cbcabf7de070fdb46598ee679367be49&amp;quot;&amp;amp;gt;&lt;br /&gt;
    and 1 other person&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    ... on 2005-04-09&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The equivalent in xFolk is as follows.  Comments are placed at the end of lines where class attribute changes were required. &lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;amp;lt;div class=&amp;quot;xfolkentry&amp;quot;&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=&amp;quot;taggedlink&amp;quot; href=&amp;quot;http://www.sifry.com/alerts/archives/000306.html&amp;quot;&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
      Sifry's Alerts: Technorati launches Related Tags&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt; &lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=&amp;quot;description&amp;quot;&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    Ever wanted to see what posts are related to other posts, what tags &lt;br /&gt;
    are related to others? Now you can! Just check under the Tag &lt;br /&gt;
    description on most tag pages, like this one, or this one, and you'll&lt;br /&gt;
    see the patterns. Can you smell the emergence?&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=&amp;quot;meta&amp;quot;&amp;amp;gt;&lt;br /&gt;
    to&lt;br /&gt;
    &amp;amp;lt;a rel=&amp;quot;tag&amp;quot; href=&amp;quot;/fpgibson/folksonomy&amp;quot;&amp;amp;gt;folksonomy&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a rel=&amp;quot;tag&amp;quot; href=&amp;quot;/fpgibson/technorati&amp;quot;&amp;amp;gt;technorati&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    ... &amp;amp;lt;a class=&amp;quot;delNav&amp;quot; href=&amp;quot;/url/cbcabf7de070fdb46598ee679367be49&amp;quot;&amp;amp;gt;&lt;br /&gt;
    and 1 other person&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    ... on 2005-04-09&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Converting markup to be conformant with xFolk is almost always this easy.  The advantage of xFolk is that it provides one set of class attributes that can be reused across all services and link blogs, almost always with no loss of granularity.  The next section presents several more examples to illustrate this point.&lt;br /&gt;
&lt;br /&gt;
== Many more examples ==&lt;br /&gt;
&lt;br /&gt;
We have numerous examples to help developers incorporate xFolk into their sites.&lt;br /&gt;
&lt;br /&gt;
=== In the wild ===&lt;br /&gt;
&lt;br /&gt;
These are real live examples of functioning systems that publish bookmarks in xFolk.  These 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 publish using xFolk, 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;
* [http://de.lirio.us de.lirio.us] currently publishes its bookmarks using xFolk (with the deprecated class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, see [[xfolk-profile | the XMDP]]).&lt;br /&gt;
* [http://dev.blogmarks.net/wiki/BlogSync blogmarks] currently exports bookmarks to blogs in xFolk (scroll down to the export example on the page; the deprecated class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, see [[xfolk-profile | the XMDP]]).&lt;br /&gt;
* [http://thecommunityengine.com The Community Engine] uses xFolk (with the deprecated class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, see [[xfolk-profile | the XMDP]]) for its [http://thecommunityengine.com/home main entries] and for its [http://thecommunityengine.com/webcites republished bookmarks].&lt;br /&gt;
&lt;br /&gt;
=== Additional social bookmarking services ===&lt;br /&gt;
&lt;br /&gt;
This example illustrates how xFolk may be applied to one additional service:&lt;br /&gt;
&lt;br /&gt;
* [[xfolk-scuttle | scuttle]]&lt;br /&gt;
&lt;br /&gt;
=== Link blogs ===&lt;br /&gt;
&lt;br /&gt;
Social bookmarking services are only the most recent examples of people publishing links.  Link blogs have been around almost since the beginning of blogging.  They represent somewhat more of a challenge for xFolk because their markup tends to be less semantic from the outset.  The following examples illustrate some particular challenges and how they can be overcome.&lt;br /&gt;
&lt;br /&gt;
* [[xfolk-kottke | kottke]]&lt;br /&gt;
* [[xfolk-pollas | pollas]]&lt;br /&gt;
* [[xfolk-jacobian | jacobian]]&lt;br /&gt;
* [[xfolk-julian-bez | julian-bez]]&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
The following implementations have been developed which generate xFolk. If you have an xFolk 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;
* [http://de.lirio.us de.lirio.us] currently publishes its bookmarks using xFolk 0.4 (the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of description).&lt;br /&gt;
* [http://dev.blogmarks.net/wiki/BlogSync blogmarks] currently exports bookmarks to blogs in xFolk 0.4 (scroll down to the export example on the page; the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;).&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;
* [[rel-tag|RelTag]]&lt;br /&gt;
&lt;br /&gt;
=== Informative References ===&lt;br /&gt;
* [http://thecommunityengine.com/home/archives/xfolk articles about xFolk]&lt;br /&gt;
* [http://thecommunityengine.com/home/archives/tags/microformats articles about the business value of microformats]&lt;br /&gt;
* [http://gataga.com gataga social bookmark search engine]&lt;br /&gt;
* [http://johnvey.com/features/deliciousdirector/ an ajax based interface for del.icio.us]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Social_bookmarking social bookmarking defined at wikipedia]&lt;br /&gt;
&lt;br /&gt;
=== Similar Work ===&lt;br /&gt;
* [[hreview | hReview]]&lt;br /&gt;
&lt;br /&gt;
== Work in progress ==&lt;br /&gt;
Although this specification has recently begun to stabilize as indicated by the version RC1, it is still a work in progress.  If warranted, I am prepared to go through multiple release candidates to achieve the narrow purpose of making bookmark entries more genrally accessible with as with as light weight a format as possible.  All changes since the last iteration have been motivated by the implementation experience of developers attempting to achieve this narrow aim.  Further changes will also most likely be motivated by implementation concerns.  See &amp;quot;future directions&amp;quot; below for additional microformat possibilities.&lt;br /&gt;
&lt;br /&gt;
=== Changes since xFolk 0.4 ===&lt;br /&gt;
The class attribute value &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; was deprecated in favor &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; to better conform with other microformat usage and some requests during implementation.  The other change has been to allow use of multiple elements of class &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; based on some use cases discovered in implementation.&lt;br /&gt;
&lt;br /&gt;
=== Future directions ===&lt;br /&gt;
There are several extensions one might imagine for xFolk.  Frequently, these extensions are best achieved by combining xFolk with another microformat.  For instance, one might want to indicate his or her evaluation of the bookmarked item.  This might be achieved by using [[vote-links | Vote Links]] or [[hreview | hReview]] with xFolk.&lt;br /&gt;
&lt;br /&gt;
One can also imagine extending xFolk to provide data conformant with various social bookmarking service APIs, for instance to provide all bookmarks by tag.  These APIs are currently too fluid for specification in any kind of standard.  The APIs and the functionality they provide represent one way social bookmarking services and meta services can differentiate themselves.&lt;br /&gt;
&lt;br /&gt;
A companion format called &amp;quot;xFolk definition&amp;quot; is under development.  xFolk definition will provide a means of explicitly defining the tags used in social bookmarks.&lt;br /&gt;
&lt;br /&gt;
== Discussions ==&lt;br /&gt;
&lt;br /&gt;
=== Q&amp;amp;A ===&lt;br /&gt;
* If you have any questions about xFolk, check the [[xfolk-faq|xFolk 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 [[xfolk-issues | xFolk issues]] document.&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xfolk&amp;diff=795</id>
		<title>xfolk</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xfolk&amp;diff=795"/>
		<updated>2005-07-10T20:02:10Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
= xFolk (RC1) =&lt;br /&gt;
&lt;br /&gt;
xFolk is a simple and open format for publishing collections of bookmarks. It better enables services for improving user experience and sharing data in web-based bookmarking software.  xFolk may be embedded in (X)HTML, Atom, RSS, and arbitrary XML. It is one of several open [[microformats|microformat]] standards.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Draft Specification ==&lt;br /&gt;
&lt;br /&gt;
=== Editor ===&lt;br /&gt;
[http://thecommunityengine.com/ Bud Gibson], [http://thecommunityengine.com The Community Engine]&lt;br /&gt;
&lt;br /&gt;
=== Authors ===&lt;br /&gt;
* [http://thecommunityengine.com/ Bud Gibson], [http://thecommunityengine.com The Community Engine]&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;
=== Inspiration and Acknowledgments ===&lt;br /&gt;
Thanks to: [http://www.cnbc.cmu.edu/~plaut/ David Plaut] who introduced me to the idea that items may partially belong to many categories at once.  More recently, thanks to: [http://tantek.com/ Tantek Çelik], [http://epeus.blogspot.com/ Kevin Marks], [http://steve.osdir.com/ Steve Mallet], [http://hybernaut.com/ Brian DelVecchio], and [http://blogmarks.net François Hodierne] who have contributed to the development of xFolk with thoughtful critiques and implementations.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Social bookmarking services let users save and tag bookmarks to share with other users.  Over the past year, the number of these services has mushroomed to [http://en.wikipedia.org/wiki/Social_bookmarking over 20], with popular examples including: [http://del.icio.us del.icio.us], [http://furl.com furl], [http://de.lirio.us de.lirio.us], and [http://blogmarks.net blogmarks].  &lt;br /&gt;
&lt;br /&gt;
Lack of an open, interoperable data standard is a major issue in using social bookmarking services.  An open standard would make it possible to easily collect social bookmark data and remix it to invent new services along the lines of  [http://gataga.com gataga]'s experimental bookmark search engine.  An open standard would also make it possible to write javascripts that work across services [http://johnvey.com/features/deliciousdirector/ as some currently do for del.icio.us], enabling across-the-board improvements in user experience.&lt;br /&gt;
&lt;br /&gt;
xFolk is an open social bookmarking standard that aims to achieve both benefits.  Social bookmarking services that adopt xFolk will continue to differentiate themselves with data services.  But, the data itself will be easy to manipulate by third party scripts and easy to share.  As a result, bookmarking services will be able to offer a wider array of options to their users at low cost and focus on what truly differentiates them.  Individuals or groups operating standalone bookmark repositories will have access to a wider array of functionality than they can produce on their own.&lt;br /&gt;
&lt;br /&gt;
== Semantic XHTML Design Principles ==&lt;br /&gt;
{{SemanticXHTMLDesignPrinciples}}&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
Extensive analysis of social bookmarking services and linkblogs, reported on [http://thecommunityengine.com/home/archives/xfolk elsewhere], reveals that the data published by both bookmarking services and '''many''' different linkblogs are described by the following implied schema:&lt;br /&gt;
&lt;br /&gt;
* A bookmarked or tagged link.&lt;br /&gt;
* A title for the entry.&lt;br /&gt;
* Tags for the link.&lt;br /&gt;
* An extended description or summary of the link.&lt;br /&gt;
&lt;br /&gt;
As demonstrated in early iterations of the xFolk standard, this general schema can be translated into markup by:&lt;br /&gt;
&lt;br /&gt;
# creating a container element for each entry of class &amp;lt;code&amp;gt;xfolkentry&amp;lt;/code&amp;gt;, &lt;br /&gt;
# using an &amp;lt;a&amp;gt; element for the bookmarked or tagged link of class &amp;lt;code&amp;gt;taggedlink&amp;lt;/code&amp;gt;, &lt;br /&gt;
# using title attribute for the tagged link &amp;lt;a&amp;gt; element, if it exists, as the entry title, otherwise using the element value,&lt;br /&gt;
# using [[reltag|RelTag]] for the tags, and&lt;br /&gt;
# using a container element of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, such as &amp;amp;lt;p&amp;gt;, for any extended description or summary.&lt;br /&gt;
&lt;br /&gt;
A given xFolk entry will always contain a tagged link including a title with all other elements optional.  Entries may have more than one tag as well as more than one element of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;.  Multiple elements of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; are ordered by default document order. Semantic elements within xFolk entries may be nested at arbitray depths.&lt;br /&gt;
&lt;br /&gt;
Many social bookmarking systems exist, each with its own markup conventions.  Further, many people are already publishing personal link blogs.  xFolk is designed with ease of adapting to these current practices as a primary goal.  Therefore, few assumptions are made as to the exact kinds of elements used for an xFolk entry.  Rather, the work of defining semantics is left entirely to the class and rel (in the case of [[reltag]]) attribute values.&lt;br /&gt;
&lt;br /&gt;
It is expected that developers will use [http://www.w3.org/TR/xpath XPath] or equivalent syntax in accessing xFolk entry elements.  a requirement for XPath is that the (X)HTML document be well-formed but not necessarily valid.  Thus, while undesirable, it is possible to serviceably use xFolk in an (X)HTML document that does not validate.&lt;br /&gt;
&lt;br /&gt;
=== XMDP Profile ===&lt;br /&gt;
&lt;br /&gt;
See the [[xfolk-profile|xFolk profile]] for the [http://gmpg.org/xmdp XMDP] profile of xFolk.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Here is a sample bookmark as displayed in [http://del.icio.us del.icio.us]'s standard markup.  Lines where the value of elements' class attributes must change to conform to xFolk are marked with a comment at the end.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;amp;lt;div class=&amp;quot;post&amp;quot;&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=&amp;quot;delLink&amp;quot; href=&amp;quot;http://www.sifry.com/alerts/archives/000306.html&amp;quot;&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
      Sifry's Alerts: Technorati launches Related Tags&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt; &lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=&amp;quot;extended&amp;quot;&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    Ever wanted to see what posts are related to other posts, what tags &lt;br /&gt;
    are related to others? Now you can! Just check under the Tag &lt;br /&gt;
    description on most tag pages, like this one, or this one, and you'll&lt;br /&gt;
    see the patterns. Can you smell the emergence?&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=&amp;quot;meta&amp;quot;&amp;amp;gt;&lt;br /&gt;
    to&lt;br /&gt;
    &amp;amp;lt;a class=&amp;quot;delNav&amp;quot; href=&amp;quot;/fpgibson/folksonomy&amp;quot;&amp;amp;gt;folksonomy&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=&amp;quot;delNav&amp;quot; href=&amp;quot;/fpgibson/technorati&amp;quot;&amp;amp;gt;technorati&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    ... &amp;amp;lt;a class=&amp;quot;delNav&amp;quot; href=&amp;quot;/url/cbcabf7de070fdb46598ee679367be49&amp;quot;&amp;amp;gt;&lt;br /&gt;
    and 1 other person&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    ... on 2005-04-09&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The equivalent in xFolk is as follows.  Comments are placed at the end of lines where class attribute changes were required. &lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;amp;lt;div class=&amp;quot;xfolkentry&amp;quot;&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=&amp;quot;taggedlink&amp;quot; href=&amp;quot;http://www.sifry.com/alerts/archives/000306.html&amp;quot;&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
      Sifry's Alerts: Technorati launches Related Tags&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt; &lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=&amp;quot;description&amp;quot;&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    Ever wanted to see what posts are related to other posts, what tags &lt;br /&gt;
    are related to others? Now you can! Just check under the Tag &lt;br /&gt;
    description on most tag pages, like this one, or this one, and you'll&lt;br /&gt;
    see the patterns. Can you smell the emergence?&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=&amp;quot;meta&amp;quot;&amp;amp;gt;&lt;br /&gt;
    to&lt;br /&gt;
    &amp;amp;lt;a rel=&amp;quot;tag&amp;quot; href=&amp;quot;/fpgibson/folksonomy&amp;quot;&amp;amp;gt;folksonomy&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a rel=&amp;quot;tag&amp;quot; href=&amp;quot;/fpgibson/technorati&amp;quot;&amp;amp;gt;technorati&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    ... &amp;amp;lt;a class=&amp;quot;delNav&amp;quot; href=&amp;quot;/url/cbcabf7de070fdb46598ee679367be49&amp;quot;&amp;amp;gt;&lt;br /&gt;
    and 1 other person&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    ... on 2005-04-09&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Converting markup to be conformant with xFolk is almost always this easy.  The advantage of xFolk is that it provides one set of class attributes that can be reused across all services and link blogs, almost always with no loss of granularity.  The next section presents several more examples to illustrate this point.&lt;br /&gt;
&lt;br /&gt;
== Many more examples ==&lt;br /&gt;
&lt;br /&gt;
We have numerous examples to help developers incorporate xFolk into their sites.&lt;br /&gt;
&lt;br /&gt;
=== In the wild ===&lt;br /&gt;
&lt;br /&gt;
These are real live examples of functioning systems that publish bookmarks in xFolk.  These 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 publish using xFolk, 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;
* [http://de.lirio.us de.lirio.us] currently publishes its bookmarks using xFolk (with the deprecated class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, see [[xfolk-XMDP | the XMDP]]).&lt;br /&gt;
* [http://dev.blogmarks.net/wiki/BlogSync blogmarks] currently exports bookmarks to blogs in xFolk (scroll down to the export example on the page; the deprecated class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, see [[xfolk-XMDP | the XMDP]]).&lt;br /&gt;
* [http://thecommunityengine.com The Community Engine] uses xFolk (with the deprecated class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, see [[xfolk-XMDP | the XMDP]]) for its [http://thecommunityengine.com/home main entries] and for its [http://thecommunityengine.com/webcites republished bookmarks].&lt;br /&gt;
&lt;br /&gt;
=== Additional social bookmarking services ===&lt;br /&gt;
&lt;br /&gt;
This example illustrates how xFolk may be applied to one additional service:&lt;br /&gt;
&lt;br /&gt;
* [[xfolk-scuttle | scuttle]]&lt;br /&gt;
&lt;br /&gt;
=== Link blogs ===&lt;br /&gt;
&lt;br /&gt;
Social bookmarking services are only the most recent examples of people publishing links.  Link blogs have been around almost since the beginning of blogging.  They represent somewhat more of a challenge for xFolk because their markup tends to be less semantic from the outset.  The following examples illustrate some particular challenges and how they can be overcome.&lt;br /&gt;
&lt;br /&gt;
* [[xfolk-kottke | kottke]]&lt;br /&gt;
* [[xfolk-pollas | pollas]]&lt;br /&gt;
* [[xfolk-jacobian | jacobian]]&lt;br /&gt;
* [[xfolk-julian-bez | julian-bez]]&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
The following implementations have been developed which generate xFolk. If you have an xFolk 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;
* [http://de.lirio.us de.lirio.us] currently publishes its bookmarks using xFolk 0.4 (the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of description).&lt;br /&gt;
* [http://dev.blogmarks.net/wiki/BlogSync blogmarks] currently exports bookmarks to blogs in xFolk 0.4 (scroll down to the export example on the page; the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;).&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;
* [[rel-tag|RelTag]]&lt;br /&gt;
&lt;br /&gt;
=== Informative References ===&lt;br /&gt;
* [http://thecommunityengine.com/home/archives/xfolk articles about xFolk]&lt;br /&gt;
* [http://thecommunityengine.com/home/archives/tags/microformats articles about the business value of microformats]&lt;br /&gt;
* [http://gataga.com gataga social bookmark search engine]&lt;br /&gt;
* [http://johnvey.com/features/deliciousdirector/ an ajax based interface for del.icio.us]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Social_bookmarking social bookmarking defined at wikipedia]&lt;br /&gt;
&lt;br /&gt;
=== Similar Work ===&lt;br /&gt;
* [[hreview | hReview]]&lt;br /&gt;
&lt;br /&gt;
== Work in progress ==&lt;br /&gt;
Although this specification has recently begun to stabilize as indicated by the version RC1, it is still a work in progress.  If warranted, I am prepared to go through multiple release candidates to achieve the narrow purpose of making bookmark entries more genrally accessible with as with as light weight a format as possible.  All changes since the last iteration have been motivated by the implementation experience of developers attempting to achieve this narrow aim.  Further changes will also most likely be motivated by implementation concerns.  See &amp;quot;future directions&amp;quot; below for additional microformat possibilities.&lt;br /&gt;
&lt;br /&gt;
=== Changes since xFolk 0.4 ===&lt;br /&gt;
The class attribute value &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; was deprecated in favor &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; to better conform with other microformat usage and some requests during implementation.  The other change has been to allow use of multiple elements of class &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; based on some use cases discovered in implementation.&lt;br /&gt;
&lt;br /&gt;
=== Future directions ===&lt;br /&gt;
There are several extensions one might imagine for xFolk.  Frequently, these extensions are best achieved by combining xFolk with another microformat.  For instance, one might want to indicate his or her evaluation of the bookmarked item.  This might be achieved by using [[vote-links | Vote Links]] or [[hreview | hReview]] with xFolk.&lt;br /&gt;
&lt;br /&gt;
One can also imagine extending xFolk to provide data conformant with various social bookmarking service APIs, for instance to provide all bookmarks by tag.  These APIs are currently too fluid for specification in any kind of standard.  The APIs and the functionality they provide represent one way social bookmarking services and meta services can differentiate themselves.&lt;br /&gt;
&lt;br /&gt;
A companion format called &amp;quot;xFolk definition&amp;quot; is under development.  xFolk definition will provide a means of explicitly defining the tags used in social bookmarks.&lt;br /&gt;
&lt;br /&gt;
== Discussions ==&lt;br /&gt;
&lt;br /&gt;
=== Q&amp;amp;A ===&lt;br /&gt;
* If you have any questions about xFolk, check the [[xfolk-faq|xFolk 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 [[xfolk-issues | xFolk issues]] document.&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xfolk&amp;diff=794</id>
		<title>xfolk</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xfolk&amp;diff=794"/>
		<updated>2005-07-10T19:58:25Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
= xFolk (RC1) =&lt;br /&gt;
&lt;br /&gt;
xFolk is a simple and open format for publishing collections of bookmarks. It better enables services for improving user experience and sharing data in web-based bookmarking software.  xFolk may be embedded in (X)HTML, Atom, RSS, and arbitrary XML. It is one of several open [[microformats|microformat]] standards.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Draft Specification ==&lt;br /&gt;
&lt;br /&gt;
=== Editor ===&lt;br /&gt;
[http://thecommunityengine.com/ Bud Gibson], [http://thecommunityengine.com The Community Engine]&lt;br /&gt;
&lt;br /&gt;
=== Authors ===&lt;br /&gt;
* [http://thecommunityengine.com/ Bud Gibson], [http://thecommunityengine.com The Community Engine]&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;
=== Inspiration and Acknowledgments ===&lt;br /&gt;
Thanks to: [http://www.cnbc.cmu.edu/~plaut/ David Plaut] who introduced me to the idea that items may partially belong to many categories at once.  More recently, thanks to: [http://tantek.com/ Tantek Çelik], [http://epeus.blogspot.com/ Kevin Marks], [http://steve.osdir.com/ Steve Mallet], [http://hybernaut.com/ Brian DelVecchio], and [http://blogmarks.net François Hodierne] who have contributed to the development of xFolk with thoughtful critiques and implementations.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Social bookmarking services let users save and tag bookmarks to share with other users.  Over the past year, the number of these services has mushroomed to [http://en.wikipedia.org/wiki/Social_bookmarking over 20], with popular examples including: [http://del.icio.us del.icio.us], [http://furl.com furl], [http://de.lirio.us de.lirio.us], and [http://blogmarks.net blogmarks].  &lt;br /&gt;
&lt;br /&gt;
Lack of an open, interoperable data standard is a major issue in using social bookmarking services.  An open standard would make it possible to easily collect social bookmark data and remix it to invent new services along the lines of  [http://gataga.com gataga]'s experimental bookmark search engine.  An open standard would also make it possible to write javascripts that work across services [http://johnvey.com/features/deliciousdirector/ as some currently do for del.icio.us], enabling across-the-board improvements in user experience.&lt;br /&gt;
&lt;br /&gt;
xFolk is an open social bookmarking standard that aims to achieve both benefits.  Social bookmarking services that adopt xFolk will continue to differentiate themselves with data services.  But, the data itself will be easy to manipulate by third party scripts and easy to share.  As a result, bookmarking services will be able to offer a wider array of options to their users at low cost and focus on what truly differentiates them.  Individuals or groups operating standalone bookmark repositories will have access to a wider array of functionality than they can produce on their own.&lt;br /&gt;
&lt;br /&gt;
== Semantic XHTML Design Principles ==&lt;br /&gt;
{{SemanticXHTMLDesignPrinciples}}&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
Extensive analysis of social bookmarking services and linkblogs, reported on [http://thecommunityengine.com/home/archives/xfolk elsewhere], reveals that the data published by both bookmarking services and '''many''' different linkblogs are described by the following implied schema:&lt;br /&gt;
&lt;br /&gt;
* A bookmarked or tagged link.&lt;br /&gt;
* A title for the entry.&lt;br /&gt;
* Tags for the link.&lt;br /&gt;
* An extended description or summary of the link.&lt;br /&gt;
&lt;br /&gt;
As demonstrated in early iterations of the xFolk standard, this general schema can be translated into markup by:&lt;br /&gt;
&lt;br /&gt;
# creating a container element for each entry of class &amp;lt;code&amp;gt;xfolkentry&amp;lt;/code&amp;gt;, &lt;br /&gt;
# using an &amp;lt;a&amp;gt; element for the bookmarked or tagged link of class &amp;lt;code&amp;gt;taggedlink&amp;lt;/code&amp;gt;, &lt;br /&gt;
# using title attribute for the tagged link &amp;lt;a&amp;gt; element, if it exists, as the entry title, otherwise using the element value,&lt;br /&gt;
# using [[reltag|RelTag]] for the tags, and&lt;br /&gt;
# using a container element of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, such as &amp;amp;lt;p&amp;gt;, for any extended description or summary.&lt;br /&gt;
&lt;br /&gt;
A given xFolk entry will always contain a tagged link including a title with all other elements optional.  Entries may have more than one tag as well as more than one element of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;.  Multiple elements of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; are ordered by default document order. Semantic elements within xFolk entries may be nested at arbitray depths.&lt;br /&gt;
&lt;br /&gt;
Many social bookmarking systems exist, each with its own markup conventions.  Further, many people are already publishing personal link blogs.  xFolk is designed with ease of adapting to these current practices as a primary goal.  Therefore, few assumptions are made as to the exact kinds of elements used for an xFolk entry.  Rather, the work of defining semantics is left entirely to the class and rel (in the case of [[reltag]]) attribute values.&lt;br /&gt;
&lt;br /&gt;
It is expected that developers will use [http://www.w3.org/TR/xpath XPath] or equivalent syntax in accessing xFolk entry elements.  a requirement for XPath is that the (X)HTML document be well-formed but not necessarily valid.  Thus, while undesirable, it is possible to serviceably use xFolk in an (X)HTML document that does not validate.&lt;br /&gt;
&lt;br /&gt;
=== XMDP Profile ===&lt;br /&gt;
&lt;br /&gt;
See the [[xfolk-profile|xFolk profile]] for the [http://gmpg.org/xmdp XMDP] profile of xFolk.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Here is a sample bookmark as displayed in [http://del.icio.us del.icio.us]'s standard markup.  Lines where the value of elements' class attributes must change to conform to xFolk are marked with a comment at the end.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;amp;lt;div class=&amp;quot;post&amp;quot;&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=&amp;quot;delLink&amp;quot; href=&amp;quot;http://www.sifry.com/alerts/archives/000306.html&amp;quot;&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
      Sifry's Alerts: Technorati launches Related Tags&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt; &lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=&amp;quot;extended&amp;quot;&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    Ever wanted to see what posts are related to other posts, what tags &lt;br /&gt;
    are related to others? Now you can! Just check under the Tag &lt;br /&gt;
    description on most tag pages, like this one, or this one, and you'll&lt;br /&gt;
    see the patterns. Can you smell the emergence?&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=&amp;quot;meta&amp;quot;&amp;amp;gt;&lt;br /&gt;
    to&lt;br /&gt;
    &amp;amp;lt;a class=&amp;quot;delNav&amp;quot; href=&amp;quot;/fpgibson/folksonomy&amp;quot;&amp;amp;gt;folksonomy&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=&amp;quot;delNav&amp;quot; href=&amp;quot;/fpgibson/technorati&amp;quot;&amp;amp;gt;technorati&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    ... &amp;amp;lt;a class=&amp;quot;delNav&amp;quot; href=&amp;quot;/url/cbcabf7de070fdb46598ee679367be49&amp;quot;&amp;amp;gt;&lt;br /&gt;
    and 1 other person&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    ... on 2005-04-09&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The equivalent in xFolk is as follows.  Comments are placed at the end of lines where class attribute changes were required. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;amp;lt;div class=“xfolkentry”&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“taggedlink” href=“http://www.sifry.com/alerts/archives/000306.html”&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
      Sifry's Alerts: Technorati launches Related Tags&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt; &lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=&amp;quot;description&amp;quot;&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    Ever wanted to see what posts are related to other posts, what tags &lt;br /&gt;
    are related to others? Now you can! Just check under the Tag &lt;br /&gt;
    description on most tag pages, like this one, or this one, and you'll&lt;br /&gt;
    see the patterns. Can you smell the emergence?&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“meta”&amp;amp;gt;&lt;br /&gt;
    to&lt;br /&gt;
    &amp;amp;lt;a rel=“tag” href=“/fpgibson/folksonomy”&amp;amp;gt;folksonomy&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a rel=“tag” href=“/fpgibson/technorati”&amp;amp;gt;technorati&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    ... &amp;amp;lt;a class=“delNav” href=“/url/cbcabf7de070fdb46598ee679367be49”&amp;amp;gt;&lt;br /&gt;
    and 1 other person&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    ... on 2005-04-09&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Converting markup to be conformant with xFolk is almost always this easy.  The advantage of xFolk is that it provides one set of class attributes that can be reused across all services and link blogs, almost always with no loss of granularity.  The next section presents several more examples to illustrate this point.&lt;br /&gt;
&lt;br /&gt;
== Many more examples ==&lt;br /&gt;
&lt;br /&gt;
We have numerous examples to help developers incorporate xFolk into their sites.&lt;br /&gt;
&lt;br /&gt;
=== In the wild ===&lt;br /&gt;
&lt;br /&gt;
These are real live examples of functioning systems that publish bookmarks in xFolk.  These 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 publish using xFolk, 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;
* [http://de.lirio.us de.lirio.us] currently publishes its bookmarks using xFolk (with the deprecated class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, see [[xfolk-XMDP | the XMDP]]).&lt;br /&gt;
* [http://dev.blogmarks.net/wiki/BlogSync blogmarks] currently exports bookmarks to blogs in xFolk (scroll down to the export example on the page; the deprecated class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, see [[xfolk-XMDP | the XMDP]]).&lt;br /&gt;
* [http://thecommunityengine.com The Community Engine] uses xFolk (with the deprecated class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, see [[xfolk-XMDP | the XMDP]]) for its [http://thecommunityengine.com/home main entries] and for its [http://thecommunityengine.com/webcites republished bookmarks].&lt;br /&gt;
&lt;br /&gt;
=== Additional social bookmarking services ===&lt;br /&gt;
&lt;br /&gt;
This example illustrates how xFolk may be applied to one additional service:&lt;br /&gt;
&lt;br /&gt;
* [[xfolk-scuttle | scuttle]]&lt;br /&gt;
&lt;br /&gt;
=== Link blogs ===&lt;br /&gt;
&lt;br /&gt;
Social bookmarking services are only the most recent examples of people publishing links.  Link blogs have been around almost since the beginning of blogging.  They represent somewhat more of a challenge for xFolk because their markup tends to be less semantic from the outset.  The following examples illustrate some particular challenges and how they can be overcome.&lt;br /&gt;
&lt;br /&gt;
* [[xfolk-kottke | kottke]]&lt;br /&gt;
* [[xfolk-pollas | pollas]]&lt;br /&gt;
* [[xfolk-jacobian | jacobian]]&lt;br /&gt;
* [[xfolk-julian-bez | julian-bez]]&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
The following implementations have been developed which generate xFolk. If you have an xFolk 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;
* [http://de.lirio.us de.lirio.us] currently publishes its bookmarks using xFolk 0.4 (the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of description).&lt;br /&gt;
* [http://dev.blogmarks.net/wiki/BlogSync blogmarks] currently exports bookmarks to blogs in xFolk 0.4 (scroll down to the export example on the page; the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;).&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;
* [[rel-tag|RelTag]]&lt;br /&gt;
&lt;br /&gt;
=== Informative References ===&lt;br /&gt;
* [http://thecommunityengine.com/home/archives/xfolk articles about xFolk]&lt;br /&gt;
* [http://thecommunityengine.com/home/archives/tags/microformats articles about the business value of microformats]&lt;br /&gt;
* [http://gataga.com gataga social bookmark search engine]&lt;br /&gt;
* [http://johnvey.com/features/deliciousdirector/ an ajax based interface for del.icio.us]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Social_bookmarking social bookmarking defined at wikipedia]&lt;br /&gt;
&lt;br /&gt;
=== Similar Work ===&lt;br /&gt;
* [[hreview | hReview]]&lt;br /&gt;
&lt;br /&gt;
== Work in progress ==&lt;br /&gt;
Although this specification has recently begun to stabilize as indicated by the version RC1, it is still a work in progress.  If warranted, I am prepared to go through multiple release candidates to achieve the narrow purpose of making bookmark entries more genrally accessible with as with as light weight a format as possible.  All changes since the last iteration have been motivated by the implementation experience of developers attempting to achieve this narrow aim.  Further changes will also most likely be motivated by implementation concerns.  See &amp;quot;future directions&amp;quot; below for additional microformat possibilities.&lt;br /&gt;
&lt;br /&gt;
=== Changes since xFolk 0.4 ===&lt;br /&gt;
The class attribute value &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; was deprecated in favor &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; to better conform with other microformat usage and some requests during implementation.  The other change has been to allow use of multiple elements of class &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; based on some use cases discovered in implementation.&lt;br /&gt;
&lt;br /&gt;
=== Future directions ===&lt;br /&gt;
There are several extensions one might imagine for xFolk.  Frequently, these extensions are best achieved by combining xFolk with another microformat.  For instance, one might want to indicate his or her evaluation of the bookmarked item.  This might be achieved by using [[vote-links | Vote Links]] or [[hreview | hReview]] with xFolk.&lt;br /&gt;
&lt;br /&gt;
One can also imagine extending xFolk to provide data conformant with various social bookmarking service APIs, for instance to provide all bookmarks by tag.  These APIs are currently too fluid for specification in any kind of standard.  The APIs and the functionality they provide represent one way social bookmarking services and meta services can differentiate themselves.&lt;br /&gt;
&lt;br /&gt;
A companion format called &amp;quot;xFolk definition&amp;quot; is under development.  xFolk definition will provide a means of explicitly defining the tags used in social bookmarks.&lt;br /&gt;
&lt;br /&gt;
== Discussions ==&lt;br /&gt;
&lt;br /&gt;
=== Q&amp;amp;A ===&lt;br /&gt;
* If you have any questions about xFolk, check the [[xfolk-faq|xFolk 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 [[xfolk-issues | xFolk issues]] document.&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xfolk&amp;diff=793</id>
		<title>xfolk</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xfolk&amp;diff=793"/>
		<updated>2005-07-10T19:54:09Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* XMDP Profile */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
= xFolk (RC1) =&lt;br /&gt;
&lt;br /&gt;
xFolk is a simple and open format for publishing collections of bookmarks. It better enables services for improving user experience and sharing data in web-based bookmarking software.  xFolk may be embedded in (X)HTML, Atom, RSS, and arbitrary XML. It is one of several open [[microformats|microformat]] standards.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Draft Specification ==&lt;br /&gt;
&lt;br /&gt;
=== Editor ===&lt;br /&gt;
[http://thecommunityengine.com/ Bud Gibson], [http://thecommunityengine.com The Community Engine]&lt;br /&gt;
&lt;br /&gt;
=== Authors ===&lt;br /&gt;
* [http://thecommunityengine.com/ Bud Gibson], [http://thecommunityengine.com The Community Engine]&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;
=== Inspiration and Acknowledgments ===&lt;br /&gt;
Thanks to: [http://www.cnbc.cmu.edu/~plaut/ David Plaut] who introduced me to the idea that items may partially belong to many categories at once.  More recently, thanks to: [http://tantek.com/ Tantek Çelik], [http://epeus.blogspot.com/ Kevin Marks], [http://steve.osdir.com/ Steve Mallet], [http://hybernaut.com/ Brian DelVecchio], and [http://blogmarks.net François Hodierne] who have contributed to the development of xFolk with thoughtful critiques and implementations.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Social bookmarking services let users save and tag bookmarks to share with other users.  Over the past year, the number of these services has mushroomed to [http://en.wikipedia.org/wiki/Social_bookmarking over 20], with popular examples including: [http://del.icio.us del.icio.us], [http://furl.com furl], [http://de.lirio.us de.lirio.us], and [http://blogmarks.net blogmarks].  &lt;br /&gt;
&lt;br /&gt;
Lack of an open, interoperable data standard is a major issue in using social bookmarking services.  An open standard would make it possible to easily collect social bookmark data and remix it to invent new services along the lines of  [http://gataga.com gataga]'s experimental bookmark search engine.  An open standard would also make it possible to write javascripts that work across services [http://johnvey.com/features/deliciousdirector/ as some currently do for del.icio.us], enabling across-the-board improvements in user experience.&lt;br /&gt;
&lt;br /&gt;
xFolk is an open social bookmarking standard that aims to achieve both benefits.  Social bookmarking services that adopt xFolk will continue to differentiate themselves with data services.  But, the data itself will be easy to manipulate by third party scripts and easy to share.  As a result, bookmarking services will be able to offer a wider array of options to their users at low cost and focus on what truly differentiates them.  Individuals or groups operating standalone bookmark repositories will have access to a wider array of functionality than they can produce on their own.&lt;br /&gt;
&lt;br /&gt;
== Semantic XHTML Design Principles ==&lt;br /&gt;
{{SemanticXHTMLDesignPrinciples}}&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
Extensive analysis of social bookmarking services and linkblogs, reported on [http://thecommunityengine.com/home/archives/xfolk elsewhere], reveals that the data published by both bookmarking services and '''many''' different linkblogs are described by the following implied schema:&lt;br /&gt;
&lt;br /&gt;
* A bookmarked or tagged link.&lt;br /&gt;
* A title for the entry.&lt;br /&gt;
* Tags for the link.&lt;br /&gt;
* An extended description or summary of the link.&lt;br /&gt;
&lt;br /&gt;
As demonstrated in early iterations of the xFolk standard, this general schema can be translated into markup by:&lt;br /&gt;
&lt;br /&gt;
# creating a container element for each entry of class &amp;lt;code&amp;gt;xfolkentry&amp;lt;/code&amp;gt;, &lt;br /&gt;
# using an &amp;lt;a&amp;gt; element for the bookmarked or tagged link of class &amp;lt;code&amp;gt;taggedlink&amp;lt;/code&amp;gt;, &lt;br /&gt;
# using title attribute for the tagged link &amp;lt;a&amp;gt; element, if it exists, as the entry title, otherwise using the element value,&lt;br /&gt;
# using [[reltag|RelTag]] for the tags, and&lt;br /&gt;
# using a container element of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, such as &amp;amp;lt;p&amp;gt;, for any extended description or summary.&lt;br /&gt;
&lt;br /&gt;
A given xFolk entry will always contain a tagged link including a title with all other elements optional.  Entries may have more than one tag as well as more than one element of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;.  Multiple elements of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; are ordered by default document order. Semantic elements within xFolk entries may be nested at arbitray depths.&lt;br /&gt;
&lt;br /&gt;
Many social bookmarking systems exist, each with its own markup conventions.  Further, many people are already publishing personal link blogs.  xFolk is designed with ease of adapting to these current practices as a primary goal.  Therefore, few assumptions are made as to the exact kinds of elements used for an xFolk entry.  Rather, the work of defining semantics is left entirely to the class and rel (in the case of [[reltag]]) attribute values.&lt;br /&gt;
&lt;br /&gt;
It is expected that developers will use [http://www.w3.org/TR/xpath XPath] or equivalent syntax in accessing xFolk entry elements.  a requirement for XPath is that the (X)HTML document be well-formed but not necessarily valid.  Thus, while undesirable, it is possible to serviceably use xFolk in an (X)HTML document that does not validate.&lt;br /&gt;
&lt;br /&gt;
=== XMDP Profile ===&lt;br /&gt;
&lt;br /&gt;
See the [[xfolk-profile|xFolk profile]] for the [http://gmpg.org/xmdp XMDP] profile of xFolk.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Here is a sample bookmark as displayed in [http://del.icio.us del.icio.us]'s standard markup.  Lines where the value of elements' class attributes must change to conform to xFolk are marked with a comment at the end.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;amp;lt;div class=“post”&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“delLink” href=“http://www.sifry.com/alerts/archives/000306.html”&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
      Sifry's Alerts: Technorati launches Related Tags&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt; &lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“extended”&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    Ever wanted to see what posts are related to other posts, what tags &lt;br /&gt;
    are related to others? Now you can! Just check under the Tag &lt;br /&gt;
    description on most tag pages, like this one, or this one, and you'll&lt;br /&gt;
    see the patterns. Can you smell the emergence?&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“meta”&amp;amp;gt;&lt;br /&gt;
    to&lt;br /&gt;
    &amp;amp;lt;a class=“delNav” href=“/fpgibson/folksonomy”&amp;amp;gt;folksonomy&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“delNav” href=“/fpgibson/technorati”&amp;amp;gt;technorati&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    ... &amp;amp;lt;a class=“delNav” href=“/url/cbcabf7de070fdb46598ee679367be49”&amp;amp;gt;&lt;br /&gt;
    and 1 other person&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    ... on 2005-04-09&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The equivalent in xFolk is as follows.  Comments are placed at the end of lines where class attribute changes were required. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;amp;lt;div class=“xfolkentry”&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“taggedlink” href=“http://www.sifry.com/alerts/archives/000306.html”&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
      Sifry's Alerts: Technorati launches Related Tags&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt; &lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=&amp;quot;description&amp;quot;&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    Ever wanted to see what posts are related to other posts, what tags &lt;br /&gt;
    are related to others? Now you can! Just check under the Tag &lt;br /&gt;
    description on most tag pages, like this one, or this one, and you'll&lt;br /&gt;
    see the patterns. Can you smell the emergence?&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“meta”&amp;amp;gt;&lt;br /&gt;
    to&lt;br /&gt;
    &amp;amp;lt;a rel=“tag” href=“/fpgibson/folksonomy”&amp;amp;gt;folksonomy&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a rel=“tag” href=“/fpgibson/technorati”&amp;amp;gt;technorati&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    ... &amp;amp;lt;a class=“delNav” href=“/url/cbcabf7de070fdb46598ee679367be49”&amp;amp;gt;&lt;br /&gt;
    and 1 other person&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    ... on 2005-04-09&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Converting markup to be conformant with xFolk is almost always this easy.  The advantage of xFolk is that it provides one set of class attributes that can be reused across all services and link blogs, almost always with no loss of granularity.  The next section presents several more examples to illustrate this point.&lt;br /&gt;
&lt;br /&gt;
== Many more examples ==&lt;br /&gt;
&lt;br /&gt;
We have numerous examples to help developers incorporate xFolk into their sites.&lt;br /&gt;
&lt;br /&gt;
=== In the wild ===&lt;br /&gt;
&lt;br /&gt;
These are real live examples of functioning systems that publish bookmarks in xFolk.  These 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 publish using xFolk, 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;
* [http://de.lirio.us de.lirio.us] currently publishes its bookmarks using xFolk (with the deprecated class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, see [[xfolk-XMDP | the XMDP]]).&lt;br /&gt;
* [http://dev.blogmarks.net/wiki/BlogSync blogmarks] currently exports bookmarks to blogs in xFolk (scroll down to the export example on the page; the deprecated class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, see [[xfolk-XMDP | the XMDP]]).&lt;br /&gt;
* [http://thecommunityengine.com The Community Engine] uses xFolk (with the deprecated class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, see [[xfolk-XMDP | the XMDP]]) for its [http://thecommunityengine.com/home main entries] and for its [http://thecommunityengine.com/webcites republished bookmarks].&lt;br /&gt;
&lt;br /&gt;
=== Additional social bookmarking services ===&lt;br /&gt;
&lt;br /&gt;
This example illustrates how xFolk may be applied to one additional service:&lt;br /&gt;
&lt;br /&gt;
* [[xfolk-scuttle | scuttle]]&lt;br /&gt;
&lt;br /&gt;
=== Link blogs ===&lt;br /&gt;
&lt;br /&gt;
Social bookmarking services are only the most recent examples of people publishing links.  Link blogs have been around almost since the beginning of blogging.  They represent somewhat more of a challenge for xFolk because their markup tends to be less semantic from the outset.  The following examples illustrate some particular challenges and how they can be overcome.&lt;br /&gt;
&lt;br /&gt;
* [[xfolk-kottke | kottke]]&lt;br /&gt;
* [[xfolk-pollas | pollas]]&lt;br /&gt;
* [[xfolk-jacobian | jacobian]]&lt;br /&gt;
* [[xfolk-julian-bez | julian-bez]]&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
The following implementations have been developed which generate xFolk. If you have an xFolk 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;
* [http://de.lirio.us de.lirio.us] currently publishes its bookmarks using xFolk 0.4 (the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of description).&lt;br /&gt;
* [http://dev.blogmarks.net/wiki/BlogSync blogmarks] currently exports bookmarks to blogs in xFolk 0.4 (scroll down to the export example on the page; the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;).&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;
* [[rel-tag|RelTag]]&lt;br /&gt;
&lt;br /&gt;
=== Informative References ===&lt;br /&gt;
* [http://thecommunityengine.com/home/archives/xfolk articles about xFolk]&lt;br /&gt;
* [http://thecommunityengine.com/home/archives/tags/microformats articles about the business value of microformats]&lt;br /&gt;
* [http://gataga.com gataga social bookmark search engine]&lt;br /&gt;
* [http://johnvey.com/features/deliciousdirector/ an ajax based interface for del.icio.us]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Social_bookmarking social bookmarking defined at wikipedia]&lt;br /&gt;
&lt;br /&gt;
=== Similar Work ===&lt;br /&gt;
* [[hreview | hReview]]&lt;br /&gt;
&lt;br /&gt;
== Work in progress ==&lt;br /&gt;
Although this specification has recently begun to stabilize as indicated by the version RC1, it is still a work in progress.  If warranted, I am prepared to go through multiple release candidates to achieve the narrow purpose of making bookmark entries more genrally accessible with as with as light weight a format as possible.  All changes since the last iteration have been motivated by the implementation experience of developers attempting to achieve this narrow aim.  Further changes will also most likely be motivated by implementation concerns.  See &amp;quot;future directions&amp;quot; below for additional microformat possibilities.&lt;br /&gt;
&lt;br /&gt;
=== Changes since xFolk 0.4 ===&lt;br /&gt;
The class attribute value &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; was deprecated in favor &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; to better conform with other microformat usage and some requests during implementation.  The other change has been to allow use of multiple elements of class &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; based on some use cases discovered in implementation.&lt;br /&gt;
&lt;br /&gt;
=== Future directions ===&lt;br /&gt;
There are several extensions one might imagine for xFolk.  Frequently, these extensions are best achieved by combining xFolk with another microformat.  For instance, one might want to indicate his or her evaluation of the bookmarked item.  This might be achieved by using [[vote-links | Vote Links]] or [[hreview | hReview]] with xFolk.&lt;br /&gt;
&lt;br /&gt;
One can also imagine extending xFolk to provide data conformant with various social bookmarking service APIs, for instance to provide all bookmarks by tag.  These APIs are currently too fluid for specification in any kind of standard.  The APIs and the functionality they provide represent one way social bookmarking services and meta services can differentiate themselves.&lt;br /&gt;
&lt;br /&gt;
A companion format called &amp;quot;xFolk definition&amp;quot; is under development.  xFolk definition will provide a means of explicitly defining the tags used in social bookmarks.&lt;br /&gt;
&lt;br /&gt;
== Discussions ==&lt;br /&gt;
&lt;br /&gt;
=== Q&amp;amp;A ===&lt;br /&gt;
* If you have any questions about xFolk, check the [[xfolk-faq|xFolk 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 [[xfolk-issues | xFolk issues]] document.&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xfolk-XMDP&amp;diff=31382</id>
		<title>xfolk-XMDP</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xfolk-XMDP&amp;diff=31382"/>
		<updated>2005-07-10T19:52:06Z</updated>

		<summary type="html">&lt;p&gt;Bud: xfolk-XMDP moved to xfolk-profile&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[xfolk-profile]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xfolk&amp;diff=792</id>
		<title>xfolk</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xfolk&amp;diff=792"/>
		<updated>2005-07-09T00:19:08Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* Future directions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
= xFolk (RC1) =&lt;br /&gt;
&lt;br /&gt;
xFolk is a simple and open format for publishing collections of bookmarks. It better enables services for improving user experience and sharing data in web-based bookmarking software.  xFolk may be embedded in (X)HTML, Atom, RSS, and arbitrary XML. It is one of several open [[microformats|microformat]] standards.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Draft Specification ==&lt;br /&gt;
&lt;br /&gt;
=== Editor ===&lt;br /&gt;
[http://thecommunityengine.com/ Bud Gibson], [http://thecommunityengine.com The Community Engine]&lt;br /&gt;
&lt;br /&gt;
=== Authors ===&lt;br /&gt;
* [http://thecommunityengine.com/ Bud Gibson], [http://thecommunityengine.com The Community Engine]&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;
=== Inspiration and Acknowledgments ===&lt;br /&gt;
Thanks to: [http://www.cnbc.cmu.edu/~plaut/ David Plaut] who introduced me to the idea that items may partially belong to many categories at once.  More recently, thanks to: [http://tantek.com/ Tantek Çelik], [http://epeus.blogspot.com/ Kevin Marks], [http://steve.osdir.com/ Steve Mallet], [http://hybernaut.com/ Brian DelVecchio], and [http://blogmarks.net François Hodierne] who have contributed to the development of xFolk with thoughtful critiques and implementations.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Social bookmarking services let users save and tag bookmarks to share with other users.  Over the past year, the number of these services has mushroomed to [http://en.wikipedia.org/wiki/Social_bookmarking over 20], with popular examples including: [http://del.icio.us del.icio.us], [http://furl.com furl], [http://de.lirio.us de.lirio.us], and [http://blogmarks.net blogmarks].  &lt;br /&gt;
&lt;br /&gt;
Lack of an open, interoperable data standard is a major issue in using social bookmarking services.  An open standard would make it possible to easily collect social bookmark data and remix it to invent new services along the lines of  [http://gataga.com gataga]'s experimental bookmark search engine.  An open standard would also make it possible to write javascripts that work across services [http://johnvey.com/features/deliciousdirector/ as some currently do for del.icio.us], enabling across-the-board improvements in user experience.&lt;br /&gt;
&lt;br /&gt;
xFolk is an open social bookmarking standard that aims to achieve both benefits.  Social bookmarking services that adopt xFolk will continue to differentiate themselves with data services.  But, the data itself will be easy to manipulate by third party scripts and easy to share.  As a result, bookmarking services will be able to offer a wider array of options to their users at low cost and focus on what truly differentiates them.  Individuals or groups operating standalone bookmark repositories will have access to a wider array of functionality than they can produce on their own.&lt;br /&gt;
&lt;br /&gt;
== Semantic XHTML Design Principles ==&lt;br /&gt;
{{SemanticXHTMLDesignPrinciples}}&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
Extensive analysis of social bookmarking services and linkblogs, reported on [http://thecommunityengine.com/home/archives/xfolk elsewhere], reveals that the data published by both bookmarking services and '''many''' different linkblogs are described by the following implied schema:&lt;br /&gt;
&lt;br /&gt;
* A bookmarked or tagged link.&lt;br /&gt;
* A title for the entry.&lt;br /&gt;
* Tags for the link.&lt;br /&gt;
* An extended description or summary of the link.&lt;br /&gt;
&lt;br /&gt;
As demonstrated in early iterations of the xFolk standard, this general schema can be translated into markup by:&lt;br /&gt;
&lt;br /&gt;
# creating a container element for each entry of class &amp;lt;code&amp;gt;xfolkentry&amp;lt;/code&amp;gt;, &lt;br /&gt;
# using an &amp;lt;a&amp;gt; element for the bookmarked or tagged link of class &amp;lt;code&amp;gt;taggedlink&amp;lt;/code&amp;gt;, &lt;br /&gt;
# using title attribute for the tagged link &amp;lt;a&amp;gt; element, if it exists, as the entry title, otherwise using the element value,&lt;br /&gt;
# using [[reltag|RelTag]] for the tags, and&lt;br /&gt;
# using a container element of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, such as &amp;amp;lt;p&amp;gt;, for any extended description or summary.&lt;br /&gt;
&lt;br /&gt;
A given xFolk entry will always contain a tagged link including a title with all other elements optional.  Entries may have more than one tag as well as more than one element of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;.  Multiple elements of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; are ordered by default document order. Semantic elements within xFolk entries may be nested at arbitray depths.&lt;br /&gt;
&lt;br /&gt;
Many social bookmarking systems exist, each with its own markup conventions.  Further, many people are already publishing personal link blogs.  xFolk is designed with ease of adapting to these current practices as a primary goal.  Therefore, few assumptions are made as to the exact kinds of elements used for an xFolk entry.  Rather, the work of defining semantics is left entirely to the class and rel (in the case of [[reltag]]) attribute values.&lt;br /&gt;
&lt;br /&gt;
It is expected that developers will use [http://www.w3.org/TR/xpath XPath] or equivalent syntax in accessing xFolk entry elements.  a requirement for XPath is that the (X)HTML document be well-formed but not necessarily valid.  Thus, while undesirable, it is possible to serviceably use xFolk in an (X)HTML document that does not validate.&lt;br /&gt;
&lt;br /&gt;
=== XMDP Profile ===&lt;br /&gt;
&lt;br /&gt;
See the [[xfolk-XMDP|xFolk profile]] for the [http://gmpg.org/xmdp XMDP] profile of xFolk.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Here is a sample bookmark as displayed in [http://del.icio.us del.icio.us]'s standard markup.  Lines where the value of elements' class attributes must change to conform to xFolk are marked with a comment at the end.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;amp;lt;div class=“post”&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“delLink” href=“http://www.sifry.com/alerts/archives/000306.html”&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
      Sifry's Alerts: Technorati launches Related Tags&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt; &lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“extended”&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    Ever wanted to see what posts are related to other posts, what tags &lt;br /&gt;
    are related to others? Now you can! Just check under the Tag &lt;br /&gt;
    description on most tag pages, like this one, or this one, and you'll&lt;br /&gt;
    see the patterns. Can you smell the emergence?&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“meta”&amp;amp;gt;&lt;br /&gt;
    to&lt;br /&gt;
    &amp;amp;lt;a class=“delNav” href=“/fpgibson/folksonomy”&amp;amp;gt;folksonomy&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“delNav” href=“/fpgibson/technorati”&amp;amp;gt;technorati&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    ... &amp;amp;lt;a class=“delNav” href=“/url/cbcabf7de070fdb46598ee679367be49”&amp;amp;gt;&lt;br /&gt;
    and 1 other person&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    ... on 2005-04-09&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The equivalent in xFolk is as follows.  Comments are placed at the end of lines where class attribute changes were required. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;amp;lt;div class=“xfolkentry”&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“taggedlink” href=“http://www.sifry.com/alerts/archives/000306.html”&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
      Sifry's Alerts: Technorati launches Related Tags&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt; &lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=&amp;quot;description&amp;quot;&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    Ever wanted to see what posts are related to other posts, what tags &lt;br /&gt;
    are related to others? Now you can! Just check under the Tag &lt;br /&gt;
    description on most tag pages, like this one, or this one, and you'll&lt;br /&gt;
    see the patterns. Can you smell the emergence?&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“meta”&amp;amp;gt;&lt;br /&gt;
    to&lt;br /&gt;
    &amp;amp;lt;a rel=“tag” href=“/fpgibson/folksonomy”&amp;amp;gt;folksonomy&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a rel=“tag” href=“/fpgibson/technorati”&amp;amp;gt;technorati&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    ... &amp;amp;lt;a class=“delNav” href=“/url/cbcabf7de070fdb46598ee679367be49”&amp;amp;gt;&lt;br /&gt;
    and 1 other person&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    ... on 2005-04-09&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Converting markup to be conformant with xFolk is almost always this easy.  The advantage of xFolk is that it provides one set of class attributes that can be reused across all services and link blogs, almost always with no loss of granularity.  The next section presents several more examples to illustrate this point.&lt;br /&gt;
&lt;br /&gt;
== Many more examples ==&lt;br /&gt;
&lt;br /&gt;
We have numerous examples to help developers incorporate xFolk into their sites.&lt;br /&gt;
&lt;br /&gt;
=== In the wild ===&lt;br /&gt;
&lt;br /&gt;
These are real live examples of functioning systems that publish bookmarks in xFolk.  These 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 publish using xFolk, 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;
* [http://de.lirio.us de.lirio.us] currently publishes its bookmarks using xFolk (with the deprecated class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, see [[xfolk-XMDP | the XMDP]]).&lt;br /&gt;
* [http://dev.blogmarks.net/wiki/BlogSync blogmarks] currently exports bookmarks to blogs in xFolk (scroll down to the export example on the page; the deprecated class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, see [[xfolk-XMDP | the XMDP]]).&lt;br /&gt;
* [http://thecommunityengine.com The Community Engine] uses xFolk (with the deprecated class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, see [[xfolk-XMDP | the XMDP]]) for its [http://thecommunityengine.com/home main entries] and for its [http://thecommunityengine.com/webcites republished bookmarks].&lt;br /&gt;
&lt;br /&gt;
=== Additional social bookmarking services ===&lt;br /&gt;
&lt;br /&gt;
This example illustrates how xFolk may be applied to one additional service:&lt;br /&gt;
&lt;br /&gt;
* [[xfolk-scuttle | scuttle]]&lt;br /&gt;
&lt;br /&gt;
=== Link blogs ===&lt;br /&gt;
&lt;br /&gt;
Social bookmarking services are only the most recent examples of people publishing links.  Link blogs have been around almost since the beginning of blogging.  They represent somewhat more of a challenge for xFolk because their markup tends to be less semantic from the outset.  The following examples illustrate some particular challenges and how they can be overcome.&lt;br /&gt;
&lt;br /&gt;
* [[xfolk-kottke | kottke]]&lt;br /&gt;
* [[xfolk-pollas | pollas]]&lt;br /&gt;
* [[xfolk-jacobian | jacobian]]&lt;br /&gt;
* [[xfolk-julian-bez | julian-bez]]&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
The following implementations have been developed which generate xFolk. If you have an xFolk 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;
* [http://de.lirio.us de.lirio.us] currently publishes its bookmarks using xFolk 0.4 (the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of description).&lt;br /&gt;
* [http://dev.blogmarks.net/wiki/BlogSync blogmarks] currently exports bookmarks to blogs in xFolk 0.4 (scroll down to the export example on the page; the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;).&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;
* [[rel-tag|RelTag]]&lt;br /&gt;
&lt;br /&gt;
=== Informative References ===&lt;br /&gt;
* [http://thecommunityengine.com/home/archives/xfolk articles about xFolk]&lt;br /&gt;
* [http://thecommunityengine.com/home/archives/tags/microformats articles about the business value of microformats]&lt;br /&gt;
* [http://gataga.com gataga social bookmark search engine]&lt;br /&gt;
* [http://johnvey.com/features/deliciousdirector/ an ajax based interface for del.icio.us]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Social_bookmarking social bookmarking defined at wikipedia]&lt;br /&gt;
&lt;br /&gt;
=== Similar Work ===&lt;br /&gt;
* [[hreview | hReview]]&lt;br /&gt;
&lt;br /&gt;
== Work in progress ==&lt;br /&gt;
Although this specification has recently begun to stabilize as indicated by the version RC1, it is still a work in progress.  If warranted, I am prepared to go through multiple release candidates to achieve the narrow purpose of making bookmark entries more genrally accessible with as with as light weight a format as possible.  All changes since the last iteration have been motivated by the implementation experience of developers attempting to achieve this narrow aim.  Further changes will also most likely be motivated by implementation concerns.  See &amp;quot;future directions&amp;quot; below for additional microformat possibilities.&lt;br /&gt;
&lt;br /&gt;
=== Changes since xFolk 0.4 ===&lt;br /&gt;
The class attribute value &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; was deprecated in favor &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; to better conform with other microformat usage and some requests during implementation.  The other change has been to allow use of multiple elements of class &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; based on some use cases discovered in implementation.&lt;br /&gt;
&lt;br /&gt;
=== Future directions ===&lt;br /&gt;
There are several extensions one might imagine for xFolk.  Frequently, these extensions are best achieved by combining xFolk with another microformat.  For instance, one might want to indicate his or her evaluation of the bookmarked item.  This might be achieved by using [[vote-links | Vote Links]] or [[hreview | hReview]] with xFolk.&lt;br /&gt;
&lt;br /&gt;
One can also imagine extending xFolk to provide data conformant with various social bookmarking service APIs, for instance to provide all bookmarks by tag.  These APIs are currently too fluid for specification in any kind of standard.  The APIs and the functionality they provide represent one way social bookmarking services and meta services can differentiate themselves.&lt;br /&gt;
&lt;br /&gt;
A companion format called &amp;quot;xFolk definition&amp;quot; is under development.  xFolk definition will provide a means of explicitly defining the tags used in social bookmarks.&lt;br /&gt;
&lt;br /&gt;
== Discussions ==&lt;br /&gt;
&lt;br /&gt;
=== Q&amp;amp;A ===&lt;br /&gt;
* If you have any questions about xFolk, check the [[xfolk-faq|xFolk 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 [[xfolk-issues | xFolk issues]] document.&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xfolk&amp;diff=778</id>
		<title>xfolk</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xfolk&amp;diff=778"/>
		<updated>2005-07-08T21:58:58Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* xFolk (RC1) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
= xFolk (RC1) =&lt;br /&gt;
&lt;br /&gt;
xFolk is a simple and open format for publishing collections of bookmarks. It better enables services for improving user experience and sharing data in web-based bookmarking software.  xFolk may be embedded in (X)HTML, Atom, RSS, and arbitrary XML. It is one of several open [[microformats|microformat]] standards.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Draft Specification ==&lt;br /&gt;
&lt;br /&gt;
=== Editor ===&lt;br /&gt;
[http://thecommunityengine.com/ Bud Gibson], [http://thecommunityengine.com The Community Engine]&lt;br /&gt;
&lt;br /&gt;
=== Authors ===&lt;br /&gt;
* [http://thecommunityengine.com/ Bud Gibson], [http://thecommunityengine.com The Community Engine]&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;
=== Inspiration and Acknowledgments ===&lt;br /&gt;
Thanks to: [http://www.cnbc.cmu.edu/~plaut/ David Plaut] who introduced me to the idea that items may partially belong to many categories at once.  More recently, thanks to: [http://tantek.com/ Tantek Çelik], [http://epeus.blogspot.com/ Kevin Marks], [http://steve.osdir.com/ Steve Mallet], [http://hybernaut.com/ Brian DelVecchio], and [http://blogmarks.net François Hodierne] who have contributed to the development of xFolk with thoughtful critiques and implementations.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Social bookmarking services let users save and tag bookmarks to share with other users.  Over the past year, the number of these services has mushroomed to [http://en.wikipedia.org/wiki/Social_bookmarking over 20], with popular examples including: [http://del.icio.us del.icio.us], [http://furl.com furl], [http://de.lirio.us de.lirio.us], and [http://blogmarks.net blogmarks].  &lt;br /&gt;
&lt;br /&gt;
Lack of an open, interoperable data standard is a major issue in using social bookmarking services.  An open standard would make it possible to easily collect social bookmark data and remix it to invent new services along the lines of  [http://gataga.com gataga]'s experimental bookmark search engine.  An open standard would also make it possible to write javascripts that work across services [http://johnvey.com/features/deliciousdirector/ as some currently do for del.icio.us], enabling across-the-board improvements in user experience.&lt;br /&gt;
&lt;br /&gt;
xFolk is an open social bookmarking standard that aims to achieve both benefits.  Social bookmarking services that adopt xFolk will continue to differentiate themselves with data services.  But, the data itself will be easy to manipulate by third party scripts and easy to share.  As a result, bookmarking services will be able to offer a wider array of options to their users at low cost and focus on what truly differentiates them.  Individuals or groups operating standalone bookmark repositories will have access to a wider array of functionality than they can produce on their own.&lt;br /&gt;
&lt;br /&gt;
== Semantic XHTML Design Principles ==&lt;br /&gt;
{{SemanticXHTMLDesignPrinciples}}&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
Extensive analysis of social bookmarking services and linkblogs, reported on [http://thecommunityengine.com/home/archives/xfolk elsewhere], reveals that the data published by both bookmarking services and '''many''' different linkblogs are described by the following implied schema:&lt;br /&gt;
&lt;br /&gt;
* A bookmarked or tagged link.&lt;br /&gt;
* A title for the entry.&lt;br /&gt;
* Tags for the link.&lt;br /&gt;
* An extended description or summary of the link.&lt;br /&gt;
&lt;br /&gt;
As demonstrated in early iterations of the xFolk standard, this general schema can be translated into markup by:&lt;br /&gt;
&lt;br /&gt;
# creating a container element for each entry of class &amp;lt;code&amp;gt;xfolkentry&amp;lt;/code&amp;gt;, &lt;br /&gt;
# using an &amp;lt;a&amp;gt; element for the bookmarked or tagged link of class &amp;lt;code&amp;gt;taggedlink&amp;lt;/code&amp;gt;, &lt;br /&gt;
# using title attribute for the tagged link &amp;lt;a&amp;gt; element, if it exists, as the entry title, otherwise using the element value,&lt;br /&gt;
# using [[reltag|RelTag]] for the tags, and&lt;br /&gt;
# using a container element of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, such as &amp;amp;lt;p&amp;gt;, for any extended description or summary.&lt;br /&gt;
&lt;br /&gt;
A given xFolk entry will always contain a tagged link including a title with all other elements optional.  Entries may have more than one tag as well as more than one element of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;.  Multiple elements of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; are ordered by default document order. Semantic elements within xFolk entries may be nested at arbitray depths.&lt;br /&gt;
&lt;br /&gt;
Many social bookmarking systems exist, each with its own markup conventions.  Further, many people are already publishing personal link blogs.  xFolk is designed with ease of adapting to these current practices as a primary goal.  Therefore, few assumptions are made as to the exact kinds of elements used for an xFolk entry.  Rather, the work of defining semantics is left entirely to the class and rel (in the case of [[reltag]]) attribute values.&lt;br /&gt;
&lt;br /&gt;
It is expected that developers will use [http://www.w3.org/TR/xpath XPath] or equivalent syntax in accessing xFolk entry elements.  a requirement for XPath is that the (X)HTML document be well-formed but not necessarily valid.  Thus, while undesirable, it is possible to serviceably use xFolk in an (X)HTML document that does not validate.&lt;br /&gt;
&lt;br /&gt;
=== XMDP Profile ===&lt;br /&gt;
&lt;br /&gt;
See the [[xfolk-XMDP|xFolk profile]] for the [http://gmpg.org/xmdp XMDP] profile of xFolk.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Here is a sample bookmark as displayed in [http://del.icio.us del.icio.us]'s standard markup.  Lines where the value of elements' class attributes must change to conform to xFolk are marked with a comment at the end.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;amp;lt;div class=“post”&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“delLink” href=“http://www.sifry.com/alerts/archives/000306.html”&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
      Sifry's Alerts: Technorati launches Related Tags&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt; &lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“extended”&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    Ever wanted to see what posts are related to other posts, what tags &lt;br /&gt;
    are related to others? Now you can! Just check under the Tag &lt;br /&gt;
    description on most tag pages, like this one, or this one, and you'll&lt;br /&gt;
    see the patterns. Can you smell the emergence?&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“meta”&amp;amp;gt;&lt;br /&gt;
    to&lt;br /&gt;
    &amp;amp;lt;a class=“delNav” href=“/fpgibson/folksonomy”&amp;amp;gt;folksonomy&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“delNav” href=“/fpgibson/technorati”&amp;amp;gt;technorati&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    ... &amp;amp;lt;a class=“delNav” href=“/url/cbcabf7de070fdb46598ee679367be49”&amp;amp;gt;&lt;br /&gt;
    and 1 other person&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    ... on 2005-04-09&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The equivalent in xFolk is as follows.  Comments are placed at the end of lines where class attribute changes were required. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;amp;lt;div class=“xfolkentry”&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“taggedlink” href=“http://www.sifry.com/alerts/archives/000306.html”&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
      Sifry's Alerts: Technorati launches Related Tags&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt; &lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=&amp;quot;description&amp;quot;&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    Ever wanted to see what posts are related to other posts, what tags &lt;br /&gt;
    are related to others? Now you can! Just check under the Tag &lt;br /&gt;
    description on most tag pages, like this one, or this one, and you'll&lt;br /&gt;
    see the patterns. Can you smell the emergence?&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“meta”&amp;amp;gt;&lt;br /&gt;
    to&lt;br /&gt;
    &amp;amp;lt;a rel=“tag” href=“/fpgibson/folksonomy”&amp;amp;gt;folksonomy&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a rel=“tag” href=“/fpgibson/technorati”&amp;amp;gt;technorati&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    ... &amp;amp;lt;a class=“delNav” href=“/url/cbcabf7de070fdb46598ee679367be49”&amp;amp;gt;&lt;br /&gt;
    and 1 other person&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    ... on 2005-04-09&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Converting markup to be conformant with xFolk is almost always this easy.  The advantage of xFolk is that it provides one set of class attributes that can be reused across all services and link blogs, almost always with no loss of granularity.  The next section presents several more examples to illustrate this point.&lt;br /&gt;
&lt;br /&gt;
== Many more examples ==&lt;br /&gt;
&lt;br /&gt;
We have numerous examples to help developers incorporate xFolk into their sites.&lt;br /&gt;
&lt;br /&gt;
=== In the wild ===&lt;br /&gt;
&lt;br /&gt;
These are real live examples of functioning systems that publish bookmarks in xFolk.  These 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 publish using xFolk, 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;
* [http://de.lirio.us de.lirio.us] currently publishes its bookmarks using xFolk (with the deprecated class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, see [[xfolk-XMDP | the XMDP]]).&lt;br /&gt;
* [http://dev.blogmarks.net/wiki/BlogSync blogmarks] currently exports bookmarks to blogs in xFolk (scroll down to the export example on the page; the deprecated class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, see [[xfolk-XMDP | the XMDP]]).&lt;br /&gt;
* [http://thecommunityengine.com The Community Engine] uses xFolk (with the deprecated class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, see [[xfolk-XMDP | the XMDP]]) for its [http://thecommunityengine.com/home main entries] and for its [http://thecommunityengine.com/webcites republished bookmarks].&lt;br /&gt;
&lt;br /&gt;
=== Additional social bookmarking services ===&lt;br /&gt;
&lt;br /&gt;
This example illustrates how xFolk may be applied to one additional service:&lt;br /&gt;
&lt;br /&gt;
* [[xfolk-scuttle | scuttle]]&lt;br /&gt;
&lt;br /&gt;
=== Link blogs ===&lt;br /&gt;
&lt;br /&gt;
Social bookmarking services are only the most recent examples of people publishing links.  Link blogs have been around almost since the beginning of blogging.  They represent somewhat more of a challenge for xFolk because their markup tends to be less semantic from the outset.  The following examples illustrate some particular challenges and how they can be overcome.&lt;br /&gt;
&lt;br /&gt;
* [[xfolk-kottke | kottke]]&lt;br /&gt;
* [[xfolk-pollas | pollas]]&lt;br /&gt;
* [[xfolk-jacobian | jacobian]]&lt;br /&gt;
* [[xfolk-julian-bez | julian-bez]]&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
The following implementations have been developed which generate xFolk. If you have an xFolk 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;
* [http://de.lirio.us de.lirio.us] currently publishes its bookmarks using xFolk 0.4 (the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of description).&lt;br /&gt;
* [http://dev.blogmarks.net/wiki/BlogSync blogmarks] currently exports bookmarks to blogs in xFolk 0.4 (scroll down to the export example on the page; the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;).&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;
* [[rel-tag|RelTag]]&lt;br /&gt;
&lt;br /&gt;
=== Informative References ===&lt;br /&gt;
* [http://thecommunityengine.com/home/archives/xfolk articles about xFolk]&lt;br /&gt;
* [http://thecommunityengine.com/home/archives/tags/microformats articles about the business value of microformats]&lt;br /&gt;
* [http://gataga.com gataga social bookmark search engine]&lt;br /&gt;
* [http://johnvey.com/features/deliciousdirector/ an ajax based interface for del.icio.us]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Social_bookmarking social bookmarking defined at wikipedia]&lt;br /&gt;
&lt;br /&gt;
=== Similar Work ===&lt;br /&gt;
* [[hreview | hReview]]&lt;br /&gt;
&lt;br /&gt;
== Work in progress ==&lt;br /&gt;
Although this specification has recently begun to stabilize as indicated by the version RC1, it is still a work in progress.  If warranted, I am prepared to go through multiple release candidates to achieve the narrow purpose of making bookmark entries more genrally accessible with as with as light weight a format as possible.  All changes since the last iteration have been motivated by the implementation experience of developers attempting to achieve this narrow aim.  Further changes will also most likely be motivated by implementation concerns.  See &amp;quot;future directions&amp;quot; below for additional microformat possibilities.&lt;br /&gt;
&lt;br /&gt;
=== Changes since xFolk 0.4 ===&lt;br /&gt;
The class attribute value &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; was deprecated in favor &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; to better conform with other microformat usage and some requests during implementation.  The other change has been to allow use of multiple elements of class &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; based on some use cases discovered in implementation.&lt;br /&gt;
&lt;br /&gt;
=== Future directions ===&lt;br /&gt;
There are several extensions one might imagine for xFolk.  Frequently, these extensions are best achieved by combining xFolk with another microformat.  For instance, one might want to indicate his or her evaluation of the bookmarked item.  This might be achieved by using [[vote-links | Vote Links]] or [[hreview | hReview]] with xFolk.&lt;br /&gt;
&lt;br /&gt;
One can imagine extending xFolk to provide data conformant with various social bookmarking service APIs, for instance to provide all bookmarks by tag.  These APIs are currently too fluid for specification in any kind of standard.  The APIs and the functionality they provide represent one way social bookmarking services and meta services can differentiate themselves.&lt;br /&gt;
&lt;br /&gt;
A companion format called &amp;quot;xFolk definition&amp;quot; is under development.  xFolk definition will provide a means of explicitly defining the tags used in social bookmarks.&lt;br /&gt;
&lt;br /&gt;
== Discussions ==&lt;br /&gt;
&lt;br /&gt;
=== Q&amp;amp;A ===&lt;br /&gt;
* If you have any questions about xFolk, check the [[xfolk-faq|xFolk 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 [[xfolk-issues | xFolk issues]] document.&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xfolk&amp;diff=777</id>
		<title>xfolk</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xfolk&amp;diff=777"/>
		<updated>2005-07-08T21:55:25Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* Work in progress */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
= xFolk (RC1) =&lt;br /&gt;
&lt;br /&gt;
xFolk is a simple and open format for publishing collections of bookmarks. It better enables services for improving user experience and sharing data.  xFolk may be embedded in (X)HTML, Atom, RSS, and arbitrary XML. It is one of several open [[microformats|microformat]] standards.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Draft Specification ==&lt;br /&gt;
&lt;br /&gt;
=== Editor ===&lt;br /&gt;
[http://thecommunityengine.com/ Bud Gibson], [http://thecommunityengine.com The Community Engine]&lt;br /&gt;
&lt;br /&gt;
=== Authors ===&lt;br /&gt;
* [http://thecommunityengine.com/ Bud Gibson], [http://thecommunityengine.com The Community Engine]&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;
=== Inspiration and Acknowledgments ===&lt;br /&gt;
Thanks to: [http://www.cnbc.cmu.edu/~plaut/ David Plaut] who introduced me to the idea that items may partially belong to many categories at once.  More recently, thanks to: [http://tantek.com/ Tantek Çelik], [http://epeus.blogspot.com/ Kevin Marks], [http://steve.osdir.com/ Steve Mallet], [http://hybernaut.com/ Brian DelVecchio], and [http://blogmarks.net François Hodierne] who have contributed to the development of xFolk with thoughtful critiques and implementations.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Social bookmarking services let users save and tag bookmarks to share with other users.  Over the past year, the number of these services has mushroomed to [http://en.wikipedia.org/wiki/Social_bookmarking over 20], with popular examples including: [http://del.icio.us del.icio.us], [http://furl.com furl], [http://de.lirio.us de.lirio.us], and [http://blogmarks.net blogmarks].  &lt;br /&gt;
&lt;br /&gt;
Lack of an open, interoperable data standard is a major issue in using social bookmarking services.  An open standard would make it possible to easily collect social bookmark data and remix it to invent new services along the lines of  [http://gataga.com gataga]'s experimental bookmark search engine.  An open standard would also make it possible to write javascripts that work across services [http://johnvey.com/features/deliciousdirector/ as some currently do for del.icio.us], enabling across-the-board improvements in user experience.&lt;br /&gt;
&lt;br /&gt;
xFolk is an open social bookmarking standard that aims to achieve both benefits.  Social bookmarking services that adopt xFolk will continue to differentiate themselves with data services.  But, the data itself will be easy to manipulate by third party scripts and easy to share.  As a result, bookmarking services will be able to offer a wider array of options to their users at low cost and focus on what truly differentiates them.  Individuals or groups operating standalone bookmark repositories will have access to a wider array of functionality than they can produce on their own.&lt;br /&gt;
&lt;br /&gt;
== Semantic XHTML Design Principles ==&lt;br /&gt;
{{SemanticXHTMLDesignPrinciples}}&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
Extensive analysis of social bookmarking services and linkblogs, reported on [http://thecommunityengine.com/home/archives/xfolk elsewhere], reveals that the data published by both bookmarking services and '''many''' different linkblogs are described by the following implied schema:&lt;br /&gt;
&lt;br /&gt;
* A bookmarked or tagged link.&lt;br /&gt;
* A title for the entry.&lt;br /&gt;
* Tags for the link.&lt;br /&gt;
* An extended description or summary of the link.&lt;br /&gt;
&lt;br /&gt;
As demonstrated in early iterations of the xFolk standard, this general schema can be translated into markup by:&lt;br /&gt;
&lt;br /&gt;
# creating a container element for each entry of class &amp;lt;code&amp;gt;xfolkentry&amp;lt;/code&amp;gt;, &lt;br /&gt;
# using an &amp;lt;a&amp;gt; element for the bookmarked or tagged link of class &amp;lt;code&amp;gt;taggedlink&amp;lt;/code&amp;gt;, &lt;br /&gt;
# using title attribute for the tagged link &amp;lt;a&amp;gt; element, if it exists, as the entry title, otherwise using the element value,&lt;br /&gt;
# using [[reltag|RelTag]] for the tags, and&lt;br /&gt;
# using a container element of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, such as &amp;amp;lt;p&amp;gt;, for any extended description or summary.&lt;br /&gt;
&lt;br /&gt;
A given xFolk entry will always contain a tagged link including a title with all other elements optional.  Entries may have more than one tag as well as more than one element of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;.  Multiple elements of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; are ordered by default document order. Semantic elements within xFolk entries may be nested at arbitray depths.&lt;br /&gt;
&lt;br /&gt;
Many social bookmarking systems exist, each with its own markup conventions.  Further, many people are already publishing personal link blogs.  xFolk is designed with ease of adapting to these current practices as a primary goal.  Therefore, few assumptions are made as to the exact kinds of elements used for an xFolk entry.  Rather, the work of defining semantics is left entirely to the class and rel (in the case of [[reltag]]) attribute values.&lt;br /&gt;
&lt;br /&gt;
It is expected that developers will use [http://www.w3.org/TR/xpath XPath] or equivalent syntax in accessing xFolk entry elements.  a requirement for XPath is that the (X)HTML document be well-formed but not necessarily valid.  Thus, while undesirable, it is possible to serviceably use xFolk in an (X)HTML document that does not validate.&lt;br /&gt;
&lt;br /&gt;
=== XMDP Profile ===&lt;br /&gt;
&lt;br /&gt;
See the [[xfolk-XMDP|xFolk profile]] for the [http://gmpg.org/xmdp XMDP] profile of xFolk.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Here is a sample bookmark as displayed in [http://del.icio.us del.icio.us]'s standard markup.  Lines where the value of elements' class attributes must change to conform to xFolk are marked with a comment at the end.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;amp;lt;div class=“post”&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“delLink” href=“http://www.sifry.com/alerts/archives/000306.html”&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
      Sifry's Alerts: Technorati launches Related Tags&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt; &lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“extended”&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    Ever wanted to see what posts are related to other posts, what tags &lt;br /&gt;
    are related to others? Now you can! Just check under the Tag &lt;br /&gt;
    description on most tag pages, like this one, or this one, and you'll&lt;br /&gt;
    see the patterns. Can you smell the emergence?&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“meta”&amp;amp;gt;&lt;br /&gt;
    to&lt;br /&gt;
    &amp;amp;lt;a class=“delNav” href=“/fpgibson/folksonomy”&amp;amp;gt;folksonomy&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“delNav” href=“/fpgibson/technorati”&amp;amp;gt;technorati&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    ... &amp;amp;lt;a class=“delNav” href=“/url/cbcabf7de070fdb46598ee679367be49”&amp;amp;gt;&lt;br /&gt;
    and 1 other person&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    ... on 2005-04-09&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The equivalent in xFolk is as follows.  Comments are placed at the end of lines where class attribute changes were required. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;amp;lt;div class=“xfolkentry”&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“taggedlink” href=“http://www.sifry.com/alerts/archives/000306.html”&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
      Sifry's Alerts: Technorati launches Related Tags&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt; &lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=&amp;quot;description&amp;quot;&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    Ever wanted to see what posts are related to other posts, what tags &lt;br /&gt;
    are related to others? Now you can! Just check under the Tag &lt;br /&gt;
    description on most tag pages, like this one, or this one, and you'll&lt;br /&gt;
    see the patterns. Can you smell the emergence?&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“meta”&amp;amp;gt;&lt;br /&gt;
    to&lt;br /&gt;
    &amp;amp;lt;a rel=“tag” href=“/fpgibson/folksonomy”&amp;amp;gt;folksonomy&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a rel=“tag” href=“/fpgibson/technorati”&amp;amp;gt;technorati&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    ... &amp;amp;lt;a class=“delNav” href=“/url/cbcabf7de070fdb46598ee679367be49”&amp;amp;gt;&lt;br /&gt;
    and 1 other person&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    ... on 2005-04-09&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Converting markup to be conformant with xFolk is almost always this easy.  The advantage of xFolk is that it provides one set of class attributes that can be reused across all services and link blogs, almost always with no loss of granularity.  The next section presents several more examples to illustrate this point.&lt;br /&gt;
&lt;br /&gt;
== Many more examples ==&lt;br /&gt;
&lt;br /&gt;
We have numerous examples to help developers incorporate xFolk into their sites.&lt;br /&gt;
&lt;br /&gt;
=== In the wild ===&lt;br /&gt;
&lt;br /&gt;
These are real live examples of functioning systems that publish bookmarks in xFolk.  These 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 publish using xFolk, 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;
* [http://de.lirio.us de.lirio.us] currently publishes its bookmarks using xFolk (with the deprecated class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, see [[xfolk-XMDP | the XMDP]]).&lt;br /&gt;
* [http://dev.blogmarks.net/wiki/BlogSync blogmarks] currently exports bookmarks to blogs in xFolk (scroll down to the export example on the page; the deprecated class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, see [[xfolk-XMDP | the XMDP]]).&lt;br /&gt;
* [http://thecommunityengine.com The Community Engine] uses xFolk (with the deprecated class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, see [[xfolk-XMDP | the XMDP]]) for its [http://thecommunityengine.com/home main entries] and for its [http://thecommunityengine.com/webcites republished bookmarks].&lt;br /&gt;
&lt;br /&gt;
=== Additional social bookmarking services ===&lt;br /&gt;
&lt;br /&gt;
This example illustrates how xFolk may be applied to one additional service:&lt;br /&gt;
&lt;br /&gt;
* [[xfolk-scuttle | scuttle]]&lt;br /&gt;
&lt;br /&gt;
=== Link blogs ===&lt;br /&gt;
&lt;br /&gt;
Social bookmarking services are only the most recent examples of people publishing links.  Link blogs have been around almost since the beginning of blogging.  They represent somewhat more of a challenge for xFolk because their markup tends to be less semantic from the outset.  The following examples illustrate some particular challenges and how they can be overcome.&lt;br /&gt;
&lt;br /&gt;
* [[xfolk-kottke | kottke]]&lt;br /&gt;
* [[xfolk-pollas | pollas]]&lt;br /&gt;
* [[xfolk-jacobian | jacobian]]&lt;br /&gt;
* [[xfolk-julian-bez | julian-bez]]&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
The following implementations have been developed which generate xFolk. If you have an xFolk 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;
* [http://de.lirio.us de.lirio.us] currently publishes its bookmarks using xFolk 0.4 (the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of description).&lt;br /&gt;
* [http://dev.blogmarks.net/wiki/BlogSync blogmarks] currently exports bookmarks to blogs in xFolk 0.4 (scroll down to the export example on the page; the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;).&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;
* [[rel-tag|RelTag]]&lt;br /&gt;
&lt;br /&gt;
=== Informative References ===&lt;br /&gt;
* [http://thecommunityengine.com/home/archives/xfolk articles about xFolk]&lt;br /&gt;
* [http://thecommunityengine.com/home/archives/tags/microformats articles about the business value of microformats]&lt;br /&gt;
* [http://gataga.com gataga social bookmark search engine]&lt;br /&gt;
* [http://johnvey.com/features/deliciousdirector/ an ajax based interface for del.icio.us]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Social_bookmarking social bookmarking defined at wikipedia]&lt;br /&gt;
&lt;br /&gt;
=== Similar Work ===&lt;br /&gt;
* [[hreview | hReview]]&lt;br /&gt;
&lt;br /&gt;
== Work in progress ==&lt;br /&gt;
Although this specification has recently begun to stabilize as indicated by the version RC1, it is still a work in progress.  If warranted, I am prepared to go through multiple release candidates to achieve the narrow purpose of making bookmark entries more genrally accessible with as with as light weight a format as possible.  All changes since the last iteration have been motivated by the implementation experience of developers attempting to achieve this narrow aim.  Further changes will also most likely be motivated by implementation concerns.  See &amp;quot;future directions&amp;quot; below for additional microformat possibilities.&lt;br /&gt;
&lt;br /&gt;
=== Changes since xFolk 0.4 ===&lt;br /&gt;
The class attribute value &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; was deprecated in favor &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; to better conform with other microformat usage and some requests during implementation.  The other change has been to allow use of multiple elements of class &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; based on some use cases discovered in implementation.&lt;br /&gt;
&lt;br /&gt;
=== Future directions ===&lt;br /&gt;
There are several extensions one might imagine for xFolk.  Frequently, these extensions are best achieved by combining xFolk with another microformat.  For instance, one might want to indicate his or her evaluation of the bookmarked item.  This might be achieved by using [[vote-links | Vote Links]] or [[hreview | hReview]] with xFolk.&lt;br /&gt;
&lt;br /&gt;
One can imagine extending xFolk to provide data conformant with various social bookmarking service APIs, for instance to provide all bookmarks by tag.  These APIs are currently too fluid for specification in any kind of standard.  The APIs and the functionality they provide represent one way social bookmarking services and meta services can differentiate themselves.&lt;br /&gt;
&lt;br /&gt;
A companion format called &amp;quot;xFolk definition&amp;quot; is under development.  xFolk definition will provide a means of explicitly defining the tags used in social bookmarks.&lt;br /&gt;
&lt;br /&gt;
== Discussions ==&lt;br /&gt;
&lt;br /&gt;
=== Q&amp;amp;A ===&lt;br /&gt;
* If you have any questions about xFolk, check the [[xfolk-faq|xFolk 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 [[xfolk-issues | xFolk issues]] document.&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xfolk&amp;diff=776</id>
		<title>xfolk</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xfolk&amp;diff=776"/>
		<updated>2005-07-08T21:39:58Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* xFolk */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
= xFolk (RC1) =&lt;br /&gt;
&lt;br /&gt;
xFolk is a simple and open format for publishing collections of bookmarks. It better enables services for improving user experience and sharing data.  xFolk may be embedded in (X)HTML, Atom, RSS, and arbitrary XML. It is one of several open [[microformats|microformat]] standards.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Draft Specification ==&lt;br /&gt;
&lt;br /&gt;
=== Editor ===&lt;br /&gt;
[http://thecommunityengine.com/ Bud Gibson], [http://thecommunityengine.com The Community Engine]&lt;br /&gt;
&lt;br /&gt;
=== Authors ===&lt;br /&gt;
* [http://thecommunityengine.com/ Bud Gibson], [http://thecommunityengine.com The Community Engine]&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;
=== Inspiration and Acknowledgments ===&lt;br /&gt;
Thanks to: [http://www.cnbc.cmu.edu/~plaut/ David Plaut] who introduced me to the idea that items may partially belong to many categories at once.  More recently, thanks to: [http://tantek.com/ Tantek Çelik], [http://epeus.blogspot.com/ Kevin Marks], [http://steve.osdir.com/ Steve Mallet], [http://hybernaut.com/ Brian DelVecchio], and [http://blogmarks.net François Hodierne] who have contributed to the development of xFolk with thoughtful critiques and implementations.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Social bookmarking services let users save and tag bookmarks to share with other users.  Over the past year, the number of these services has mushroomed to [http://en.wikipedia.org/wiki/Social_bookmarking over 20], with popular examples including: [http://del.icio.us del.icio.us], [http://furl.com furl], [http://de.lirio.us de.lirio.us], and [http://blogmarks.net blogmarks].  &lt;br /&gt;
&lt;br /&gt;
Lack of an open, interoperable data standard is a major issue in using social bookmarking services.  An open standard would make it possible to easily collect social bookmark data and remix it to invent new services along the lines of  [http://gataga.com gataga]'s experimental bookmark search engine.  An open standard would also make it possible to write javascripts that work across services [http://johnvey.com/features/deliciousdirector/ as some currently do for del.icio.us], enabling across-the-board improvements in user experience.&lt;br /&gt;
&lt;br /&gt;
xFolk is an open social bookmarking standard that aims to achieve both benefits.  Social bookmarking services that adopt xFolk will continue to differentiate themselves with data services.  But, the data itself will be easy to manipulate by third party scripts and easy to share.  As a result, bookmarking services will be able to offer a wider array of options to their users at low cost and focus on what truly differentiates them.  Individuals or groups operating standalone bookmark repositories will have access to a wider array of functionality than they can produce on their own.&lt;br /&gt;
&lt;br /&gt;
== Semantic XHTML Design Principles ==&lt;br /&gt;
{{SemanticXHTMLDesignPrinciples}}&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
Extensive analysis of social bookmarking services and linkblogs, reported on [http://thecommunityengine.com/home/archives/xfolk elsewhere], reveals that the data published by both bookmarking services and '''many''' different linkblogs are described by the following implied schema:&lt;br /&gt;
&lt;br /&gt;
* A bookmarked or tagged link.&lt;br /&gt;
* A title for the entry.&lt;br /&gt;
* Tags for the link.&lt;br /&gt;
* An extended description or summary of the link.&lt;br /&gt;
&lt;br /&gt;
As demonstrated in early iterations of the xFolk standard, this general schema can be translated into markup by:&lt;br /&gt;
&lt;br /&gt;
# creating a container element for each entry of class &amp;lt;code&amp;gt;xfolkentry&amp;lt;/code&amp;gt;, &lt;br /&gt;
# using an &amp;lt;a&amp;gt; element for the bookmarked or tagged link of class &amp;lt;code&amp;gt;taggedlink&amp;lt;/code&amp;gt;, &lt;br /&gt;
# using title attribute for the tagged link &amp;lt;a&amp;gt; element, if it exists, as the entry title, otherwise using the element value,&lt;br /&gt;
# using [[reltag|RelTag]] for the tags, and&lt;br /&gt;
# using a container element of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, such as &amp;amp;lt;p&amp;gt;, for any extended description or summary.&lt;br /&gt;
&lt;br /&gt;
A given xFolk entry will always contain a tagged link including a title with all other elements optional.  Entries may have more than one tag as well as more than one element of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;.  Multiple elements of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; are ordered by default document order. Semantic elements within xFolk entries may be nested at arbitray depths.&lt;br /&gt;
&lt;br /&gt;
Many social bookmarking systems exist, each with its own markup conventions.  Further, many people are already publishing personal link blogs.  xFolk is designed with ease of adapting to these current practices as a primary goal.  Therefore, few assumptions are made as to the exact kinds of elements used for an xFolk entry.  Rather, the work of defining semantics is left entirely to the class and rel (in the case of [[reltag]]) attribute values.&lt;br /&gt;
&lt;br /&gt;
It is expected that developers will use [http://www.w3.org/TR/xpath XPath] or equivalent syntax in accessing xFolk entry elements.  a requirement for XPath is that the (X)HTML document be well-formed but not necessarily valid.  Thus, while undesirable, it is possible to serviceably use xFolk in an (X)HTML document that does not validate.&lt;br /&gt;
&lt;br /&gt;
=== XMDP Profile ===&lt;br /&gt;
&lt;br /&gt;
See the [[xfolk-XMDP|xFolk profile]] for the [http://gmpg.org/xmdp XMDP] profile of xFolk.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Here is a sample bookmark as displayed in [http://del.icio.us del.icio.us]'s standard markup.  Lines where the value of elements' class attributes must change to conform to xFolk are marked with a comment at the end.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;amp;lt;div class=“post”&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“delLink” href=“http://www.sifry.com/alerts/archives/000306.html”&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
      Sifry's Alerts: Technorati launches Related Tags&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt; &lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“extended”&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    Ever wanted to see what posts are related to other posts, what tags &lt;br /&gt;
    are related to others? Now you can! Just check under the Tag &lt;br /&gt;
    description on most tag pages, like this one, or this one, and you'll&lt;br /&gt;
    see the patterns. Can you smell the emergence?&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“meta”&amp;amp;gt;&lt;br /&gt;
    to&lt;br /&gt;
    &amp;amp;lt;a class=“delNav” href=“/fpgibson/folksonomy”&amp;amp;gt;folksonomy&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“delNav” href=“/fpgibson/technorati”&amp;amp;gt;technorati&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    ... &amp;amp;lt;a class=“delNav” href=“/url/cbcabf7de070fdb46598ee679367be49”&amp;amp;gt;&lt;br /&gt;
    and 1 other person&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    ... on 2005-04-09&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The equivalent in xFolk is as follows.  Comments are placed at the end of lines where class attribute changes were required. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;amp;lt;div class=“xfolkentry”&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“taggedlink” href=“http://www.sifry.com/alerts/archives/000306.html”&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
      Sifry's Alerts: Technorati launches Related Tags&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt; &lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=&amp;quot;description&amp;quot;&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    Ever wanted to see what posts are related to other posts, what tags &lt;br /&gt;
    are related to others? Now you can! Just check under the Tag &lt;br /&gt;
    description on most tag pages, like this one, or this one, and you'll&lt;br /&gt;
    see the patterns. Can you smell the emergence?&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“meta”&amp;amp;gt;&lt;br /&gt;
    to&lt;br /&gt;
    &amp;amp;lt;a rel=“tag” href=“/fpgibson/folksonomy”&amp;amp;gt;folksonomy&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a rel=“tag” href=“/fpgibson/technorati”&amp;amp;gt;technorati&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    ... &amp;amp;lt;a class=“delNav” href=“/url/cbcabf7de070fdb46598ee679367be49”&amp;amp;gt;&lt;br /&gt;
    and 1 other person&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    ... on 2005-04-09&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Converting markup to be conformant with xFolk is almost always this easy.  The advantage of xFolk is that it provides one set of class attributes that can be reused across all services and link blogs, almost always with no loss of granularity.  The next section presents several more examples to illustrate this point.&lt;br /&gt;
&lt;br /&gt;
== Many more examples ==&lt;br /&gt;
&lt;br /&gt;
We have numerous examples to help developers incorporate xFolk into their sites.&lt;br /&gt;
&lt;br /&gt;
=== In the wild ===&lt;br /&gt;
&lt;br /&gt;
These are real live examples of functioning systems that publish bookmarks in xFolk.  These 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 publish using xFolk, 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;
* [http://de.lirio.us de.lirio.us] currently publishes its bookmarks using xFolk (with the deprecated class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, see [[xfolk-XMDP | the XMDP]]).&lt;br /&gt;
* [http://dev.blogmarks.net/wiki/BlogSync blogmarks] currently exports bookmarks to blogs in xFolk (scroll down to the export example on the page; the deprecated class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, see [[xfolk-XMDP | the XMDP]]).&lt;br /&gt;
* [http://thecommunityengine.com The Community Engine] uses xFolk (with the deprecated class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, see [[xfolk-XMDP | the XMDP]]) for its [http://thecommunityengine.com/home main entries] and for its [http://thecommunityengine.com/webcites republished bookmarks].&lt;br /&gt;
&lt;br /&gt;
=== Additional social bookmarking services ===&lt;br /&gt;
&lt;br /&gt;
This example illustrates how xFolk may be applied to one additional service:&lt;br /&gt;
&lt;br /&gt;
* [[xfolk-scuttle | scuttle]]&lt;br /&gt;
&lt;br /&gt;
=== Link blogs ===&lt;br /&gt;
&lt;br /&gt;
Social bookmarking services are only the most recent examples of people publishing links.  Link blogs have been around almost since the beginning of blogging.  They represent somewhat more of a challenge for xFolk because their markup tends to be less semantic from the outset.  The following examples illustrate some particular challenges and how they can be overcome.&lt;br /&gt;
&lt;br /&gt;
* [[xfolk-kottke | kottke]]&lt;br /&gt;
* [[xfolk-pollas | pollas]]&lt;br /&gt;
* [[xfolk-jacobian | jacobian]]&lt;br /&gt;
* [[xfolk-julian-bez | julian-bez]]&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
The following implementations have been developed which generate xFolk. If you have an xFolk 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;
* [http://de.lirio.us de.lirio.us] currently publishes its bookmarks using xFolk 0.4 (the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of description).&lt;br /&gt;
* [http://dev.blogmarks.net/wiki/BlogSync blogmarks] currently exports bookmarks to blogs in xFolk 0.4 (scroll down to the export example on the page; the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;).&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;
* [[rel-tag|RelTag]]&lt;br /&gt;
&lt;br /&gt;
=== Informative References ===&lt;br /&gt;
* [http://thecommunityengine.com/home/archives/xfolk articles about xFolk]&lt;br /&gt;
* [http://thecommunityengine.com/home/archives/tags/microformats articles about the business value of microformats]&lt;br /&gt;
* [http://gataga.com gataga social bookmark search engine]&lt;br /&gt;
* [http://johnvey.com/features/deliciousdirector/ an ajax based interface for del.icio.us]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Social_bookmarking social bookmarking defined at wikipedia]&lt;br /&gt;
&lt;br /&gt;
=== Similar Work ===&lt;br /&gt;
* [[hreview | hReview]]&lt;br /&gt;
&lt;br /&gt;
== Work in progress ==&lt;br /&gt;
Although this specification has recently begun to stabilize, it is still a work in progress.  All changes since the last iteration have been motivated by implementation experience.  Further changes will also most likely be motivated by the desire to ease implementation. &lt;br /&gt;
&lt;br /&gt;
=== Changes since xFolk 0.4 ===&lt;br /&gt;
The class attribute value &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; was deprecated in favor &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; to better conform with other microformat usage and some requests during implementation.  The other change has been to allow use of multiple elements of class &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; based on some use cases discovered in implementation.&lt;br /&gt;
&lt;br /&gt;
=== Future directions ===&lt;br /&gt;
There are several extensions one might imagine for xFolk.  Frequently, these extensions are best achieved by combining xFolk with another microformat.  For instance, one might want to indicate his or her evaluation of the bookmarked item.  This might be achieved by using [[vote-links | Vote Links]] or [[hreview | hReview]] with xFolk.&lt;br /&gt;
&lt;br /&gt;
A companion format called &amp;quot;xFolk definition&amp;quot; is under development.  xFolk definition will provide a means of explicitly defining the tags used in social bookmarks.&lt;br /&gt;
&lt;br /&gt;
== Discussions ==&lt;br /&gt;
&lt;br /&gt;
=== Q&amp;amp;A ===&lt;br /&gt;
* If you have any questions about xFolk, check the [[xfolk-faq|xFolk 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 [[xfolk-issues | xFolk issues]] document.&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xfolk&amp;diff=775</id>
		<title>xfolk</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xfolk&amp;diff=775"/>
		<updated>2005-07-08T21:38:03Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* In the wild */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
= xFolk =&lt;br /&gt;
&lt;br /&gt;
xFolk is a simple and open format for publishing collections of bookmarks. It better enables services for improving user experience and sharing data.  xFolk may be embedded in (X)HTML, Atom, RSS, and arbitrary XML. It is one of several open [[microformats|microformat]] standards.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Draft Specification ==&lt;br /&gt;
&lt;br /&gt;
=== Editor ===&lt;br /&gt;
[http://thecommunityengine.com/ Bud Gibson], [http://thecommunityengine.com The Community Engine]&lt;br /&gt;
&lt;br /&gt;
=== Authors ===&lt;br /&gt;
* [http://thecommunityengine.com/ Bud Gibson], [http://thecommunityengine.com The Community Engine]&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;
=== Inspiration and Acknowledgments ===&lt;br /&gt;
Thanks to: [http://www.cnbc.cmu.edu/~plaut/ David Plaut] who introduced me to the idea that items may partially belong to many categories at once.  More recently, thanks to: [http://tantek.com/ Tantek Çelik], [http://epeus.blogspot.com/ Kevin Marks], [http://steve.osdir.com/ Steve Mallet], [http://hybernaut.com/ Brian DelVecchio], and [http://blogmarks.net François Hodierne] who have contributed to the development of xFolk with thoughtful critiques and implementations.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Social bookmarking services let users save and tag bookmarks to share with other users.  Over the past year, the number of these services has mushroomed to [http://en.wikipedia.org/wiki/Social_bookmarking over 20], with popular examples including: [http://del.icio.us del.icio.us], [http://furl.com furl], [http://de.lirio.us de.lirio.us], and [http://blogmarks.net blogmarks].  &lt;br /&gt;
&lt;br /&gt;
Lack of an open, interoperable data standard is a major issue in using social bookmarking services.  An open standard would make it possible to easily collect social bookmark data and remix it to invent new services along the lines of  [http://gataga.com gataga]'s experimental bookmark search engine.  An open standard would also make it possible to write javascripts that work across services [http://johnvey.com/features/deliciousdirector/ as some currently do for del.icio.us], enabling across-the-board improvements in user experience.&lt;br /&gt;
&lt;br /&gt;
xFolk is an open social bookmarking standard that aims to achieve both benefits.  Social bookmarking services that adopt xFolk will continue to differentiate themselves with data services.  But, the data itself will be easy to manipulate by third party scripts and easy to share.  As a result, bookmarking services will be able to offer a wider array of options to their users at low cost and focus on what truly differentiates them.  Individuals or groups operating standalone bookmark repositories will have access to a wider array of functionality than they can produce on their own.&lt;br /&gt;
&lt;br /&gt;
== Semantic XHTML Design Principles ==&lt;br /&gt;
{{SemanticXHTMLDesignPrinciples}}&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
Extensive analysis of social bookmarking services and linkblogs, reported on [http://thecommunityengine.com/home/archives/xfolk elsewhere], reveals that the data published by both bookmarking services and '''many''' different linkblogs are described by the following implied schema:&lt;br /&gt;
&lt;br /&gt;
* A bookmarked or tagged link.&lt;br /&gt;
* A title for the entry.&lt;br /&gt;
* Tags for the link.&lt;br /&gt;
* An extended description or summary of the link.&lt;br /&gt;
&lt;br /&gt;
As demonstrated in early iterations of the xFolk standard, this general schema can be translated into markup by:&lt;br /&gt;
&lt;br /&gt;
# creating a container element for each entry of class &amp;lt;code&amp;gt;xfolkentry&amp;lt;/code&amp;gt;, &lt;br /&gt;
# using an &amp;lt;a&amp;gt; element for the bookmarked or tagged link of class &amp;lt;code&amp;gt;taggedlink&amp;lt;/code&amp;gt;, &lt;br /&gt;
# using title attribute for the tagged link &amp;lt;a&amp;gt; element, if it exists, as the entry title, otherwise using the element value,&lt;br /&gt;
# using [[reltag|RelTag]] for the tags, and&lt;br /&gt;
# using a container element of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, such as &amp;amp;lt;p&amp;gt;, for any extended description or summary.&lt;br /&gt;
&lt;br /&gt;
A given xFolk entry will always contain a tagged link including a title with all other elements optional.  Entries may have more than one tag as well as more than one element of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;.  Multiple elements of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; are ordered by default document order. Semantic elements within xFolk entries may be nested at arbitray depths.&lt;br /&gt;
&lt;br /&gt;
Many social bookmarking systems exist, each with its own markup conventions.  Further, many people are already publishing personal link blogs.  xFolk is designed with ease of adapting to these current practices as a primary goal.  Therefore, few assumptions are made as to the exact kinds of elements used for an xFolk entry.  Rather, the work of defining semantics is left entirely to the class and rel (in the case of [[reltag]]) attribute values.&lt;br /&gt;
&lt;br /&gt;
It is expected that developers will use [http://www.w3.org/TR/xpath XPath] or equivalent syntax in accessing xFolk entry elements.  a requirement for XPath is that the (X)HTML document be well-formed but not necessarily valid.  Thus, while undesirable, it is possible to serviceably use xFolk in an (X)HTML document that does not validate.&lt;br /&gt;
&lt;br /&gt;
=== XMDP Profile ===&lt;br /&gt;
&lt;br /&gt;
See the [[xfolk-XMDP|xFolk profile]] for the [http://gmpg.org/xmdp XMDP] profile of xFolk.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Here is a sample bookmark as displayed in [http://del.icio.us del.icio.us]'s standard markup.  Lines where the value of elements' class attributes must change to conform to xFolk are marked with a comment at the end.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;amp;lt;div class=“post”&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“delLink” href=“http://www.sifry.com/alerts/archives/000306.html”&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
      Sifry's Alerts: Technorati launches Related Tags&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt; &lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“extended”&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    Ever wanted to see what posts are related to other posts, what tags &lt;br /&gt;
    are related to others? Now you can! Just check under the Tag &lt;br /&gt;
    description on most tag pages, like this one, or this one, and you'll&lt;br /&gt;
    see the patterns. Can you smell the emergence?&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“meta”&amp;amp;gt;&lt;br /&gt;
    to&lt;br /&gt;
    &amp;amp;lt;a class=“delNav” href=“/fpgibson/folksonomy”&amp;amp;gt;folksonomy&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“delNav” href=“/fpgibson/technorati”&amp;amp;gt;technorati&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    ... &amp;amp;lt;a class=“delNav” href=“/url/cbcabf7de070fdb46598ee679367be49”&amp;amp;gt;&lt;br /&gt;
    and 1 other person&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    ... on 2005-04-09&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The equivalent in xFolk is as follows.  Comments are placed at the end of lines where class attribute changes were required. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;amp;lt;div class=“xfolkentry”&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“taggedlink” href=“http://www.sifry.com/alerts/archives/000306.html”&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
      Sifry's Alerts: Technorati launches Related Tags&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt; &lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=&amp;quot;description&amp;quot;&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    Ever wanted to see what posts are related to other posts, what tags &lt;br /&gt;
    are related to others? Now you can! Just check under the Tag &lt;br /&gt;
    description on most tag pages, like this one, or this one, and you'll&lt;br /&gt;
    see the patterns. Can you smell the emergence?&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“meta”&amp;amp;gt;&lt;br /&gt;
    to&lt;br /&gt;
    &amp;amp;lt;a rel=“tag” href=“/fpgibson/folksonomy”&amp;amp;gt;folksonomy&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a rel=“tag” href=“/fpgibson/technorati”&amp;amp;gt;technorati&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    ... &amp;amp;lt;a class=“delNav” href=“/url/cbcabf7de070fdb46598ee679367be49”&amp;amp;gt;&lt;br /&gt;
    and 1 other person&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    ... on 2005-04-09&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Converting markup to be conformant with xFolk is almost always this easy.  The advantage of xFolk is that it provides one set of class attributes that can be reused across all services and link blogs, almost always with no loss of granularity.  The next section presents several more examples to illustrate this point.&lt;br /&gt;
&lt;br /&gt;
== Many more examples ==&lt;br /&gt;
&lt;br /&gt;
We have numerous examples to help developers incorporate xFolk into their sites.&lt;br /&gt;
&lt;br /&gt;
=== In the wild ===&lt;br /&gt;
&lt;br /&gt;
These are real live examples of functioning systems that publish bookmarks in xFolk.  These 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 publish using xFolk, 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;
* [http://de.lirio.us de.lirio.us] currently publishes its bookmarks using xFolk (with the deprecated class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, see [[xfolk-XMDP | the XMDP]]).&lt;br /&gt;
* [http://dev.blogmarks.net/wiki/BlogSync blogmarks] currently exports bookmarks to blogs in xFolk (scroll down to the export example on the page; the deprecated class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, see [[xfolk-XMDP | the XMDP]]).&lt;br /&gt;
* [http://thecommunityengine.com The Community Engine] uses xFolk (with the deprecated class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, see [[xfolk-XMDP | the XMDP]]) for its [http://thecommunityengine.com/home main entries] and for its [http://thecommunityengine.com/webcites republished bookmarks].&lt;br /&gt;
&lt;br /&gt;
=== Additional social bookmarking services ===&lt;br /&gt;
&lt;br /&gt;
This example illustrates how xFolk may be applied to one additional service:&lt;br /&gt;
&lt;br /&gt;
* [[xfolk-scuttle | scuttle]]&lt;br /&gt;
&lt;br /&gt;
=== Link blogs ===&lt;br /&gt;
&lt;br /&gt;
Social bookmarking services are only the most recent examples of people publishing links.  Link blogs have been around almost since the beginning of blogging.  They represent somewhat more of a challenge for xFolk because their markup tends to be less semantic from the outset.  The following examples illustrate some particular challenges and how they can be overcome.&lt;br /&gt;
&lt;br /&gt;
* [[xfolk-kottke | kottke]]&lt;br /&gt;
* [[xfolk-pollas | pollas]]&lt;br /&gt;
* [[xfolk-jacobian | jacobian]]&lt;br /&gt;
* [[xfolk-julian-bez | julian-bez]]&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
The following implementations have been developed which generate xFolk. If you have an xFolk 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;
* [http://de.lirio.us de.lirio.us] currently publishes its bookmarks using xFolk 0.4 (the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of description).&lt;br /&gt;
* [http://dev.blogmarks.net/wiki/BlogSync blogmarks] currently exports bookmarks to blogs in xFolk 0.4 (scroll down to the export example on the page; the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;).&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;
* [[rel-tag|RelTag]]&lt;br /&gt;
&lt;br /&gt;
=== Informative References ===&lt;br /&gt;
* [http://thecommunityengine.com/home/archives/xfolk articles about xFolk]&lt;br /&gt;
* [http://thecommunityengine.com/home/archives/tags/microformats articles about the business value of microformats]&lt;br /&gt;
* [http://gataga.com gataga social bookmark search engine]&lt;br /&gt;
* [http://johnvey.com/features/deliciousdirector/ an ajax based interface for del.icio.us]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Social_bookmarking social bookmarking defined at wikipedia]&lt;br /&gt;
&lt;br /&gt;
=== Similar Work ===&lt;br /&gt;
* [[hreview | hReview]]&lt;br /&gt;
&lt;br /&gt;
== Work in progress ==&lt;br /&gt;
Although this specification has recently begun to stabilize, it is still a work in progress.  All changes since the last iteration have been motivated by implementation experience.  Further changes will also most likely be motivated by the desire to ease implementation. &lt;br /&gt;
&lt;br /&gt;
=== Changes since xFolk 0.4 ===&lt;br /&gt;
The class attribute value &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; was deprecated in favor &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; to better conform with other microformat usage and some requests during implementation.  The other change has been to allow use of multiple elements of class &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; based on some use cases discovered in implementation.&lt;br /&gt;
&lt;br /&gt;
=== Future directions ===&lt;br /&gt;
There are several extensions one might imagine for xFolk.  Frequently, these extensions are best achieved by combining xFolk with another microformat.  For instance, one might want to indicate his or her evaluation of the bookmarked item.  This might be achieved by using [[vote-links | Vote Links]] or [[hreview | hReview]] with xFolk.&lt;br /&gt;
&lt;br /&gt;
A companion format called &amp;quot;xFolk definition&amp;quot; is under development.  xFolk definition will provide a means of explicitly defining the tags used in social bookmarks.&lt;br /&gt;
&lt;br /&gt;
== Discussions ==&lt;br /&gt;
&lt;br /&gt;
=== Q&amp;amp;A ===&lt;br /&gt;
* If you have any questions about xFolk, check the [[xfolk-faq|xFolk 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 [[xfolk-issues | xFolk issues]] document.&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xfolk&amp;diff=774</id>
		<title>xfolk</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xfolk&amp;diff=774"/>
		<updated>2005-07-08T21:37:01Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* In the wild */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
= xFolk =&lt;br /&gt;
&lt;br /&gt;
xFolk is a simple and open format for publishing collections of bookmarks. It better enables services for improving user experience and sharing data.  xFolk may be embedded in (X)HTML, Atom, RSS, and arbitrary XML. It is one of several open [[microformats|microformat]] standards.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Draft Specification ==&lt;br /&gt;
&lt;br /&gt;
=== Editor ===&lt;br /&gt;
[http://thecommunityengine.com/ Bud Gibson], [http://thecommunityengine.com The Community Engine]&lt;br /&gt;
&lt;br /&gt;
=== Authors ===&lt;br /&gt;
* [http://thecommunityengine.com/ Bud Gibson], [http://thecommunityengine.com The Community Engine]&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;
=== Inspiration and Acknowledgments ===&lt;br /&gt;
Thanks to: [http://www.cnbc.cmu.edu/~plaut/ David Plaut] who introduced me to the idea that items may partially belong to many categories at once.  More recently, thanks to: [http://tantek.com/ Tantek Çelik], [http://epeus.blogspot.com/ Kevin Marks], [http://steve.osdir.com/ Steve Mallet], [http://hybernaut.com/ Brian DelVecchio], and [http://blogmarks.net François Hodierne] who have contributed to the development of xFolk with thoughtful critiques and implementations.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Social bookmarking services let users save and tag bookmarks to share with other users.  Over the past year, the number of these services has mushroomed to [http://en.wikipedia.org/wiki/Social_bookmarking over 20], with popular examples including: [http://del.icio.us del.icio.us], [http://furl.com furl], [http://de.lirio.us de.lirio.us], and [http://blogmarks.net blogmarks].  &lt;br /&gt;
&lt;br /&gt;
Lack of an open, interoperable data standard is a major issue in using social bookmarking services.  An open standard would make it possible to easily collect social bookmark data and remix it to invent new services along the lines of  [http://gataga.com gataga]'s experimental bookmark search engine.  An open standard would also make it possible to write javascripts that work across services [http://johnvey.com/features/deliciousdirector/ as some currently do for del.icio.us], enabling across-the-board improvements in user experience.&lt;br /&gt;
&lt;br /&gt;
xFolk is an open social bookmarking standard that aims to achieve both benefits.  Social bookmarking services that adopt xFolk will continue to differentiate themselves with data services.  But, the data itself will be easy to manipulate by third party scripts and easy to share.  As a result, bookmarking services will be able to offer a wider array of options to their users at low cost and focus on what truly differentiates them.  Individuals or groups operating standalone bookmark repositories will have access to a wider array of functionality than they can produce on their own.&lt;br /&gt;
&lt;br /&gt;
== Semantic XHTML Design Principles ==&lt;br /&gt;
{{SemanticXHTMLDesignPrinciples}}&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
Extensive analysis of social bookmarking services and linkblogs, reported on [http://thecommunityengine.com/home/archives/xfolk elsewhere], reveals that the data published by both bookmarking services and '''many''' different linkblogs are described by the following implied schema:&lt;br /&gt;
&lt;br /&gt;
* A bookmarked or tagged link.&lt;br /&gt;
* A title for the entry.&lt;br /&gt;
* Tags for the link.&lt;br /&gt;
* An extended description or summary of the link.&lt;br /&gt;
&lt;br /&gt;
As demonstrated in early iterations of the xFolk standard, this general schema can be translated into markup by:&lt;br /&gt;
&lt;br /&gt;
# creating a container element for each entry of class &amp;lt;code&amp;gt;xfolkentry&amp;lt;/code&amp;gt;, &lt;br /&gt;
# using an &amp;lt;a&amp;gt; element for the bookmarked or tagged link of class &amp;lt;code&amp;gt;taggedlink&amp;lt;/code&amp;gt;, &lt;br /&gt;
# using title attribute for the tagged link &amp;lt;a&amp;gt; element, if it exists, as the entry title, otherwise using the element value,&lt;br /&gt;
# using [[reltag|RelTag]] for the tags, and&lt;br /&gt;
# using a container element of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, such as &amp;amp;lt;p&amp;gt;, for any extended description or summary.&lt;br /&gt;
&lt;br /&gt;
A given xFolk entry will always contain a tagged link including a title with all other elements optional.  Entries may have more than one tag as well as more than one element of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;.  Multiple elements of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; are ordered by default document order. Semantic elements within xFolk entries may be nested at arbitray depths.&lt;br /&gt;
&lt;br /&gt;
Many social bookmarking systems exist, each with its own markup conventions.  Further, many people are already publishing personal link blogs.  xFolk is designed with ease of adapting to these current practices as a primary goal.  Therefore, few assumptions are made as to the exact kinds of elements used for an xFolk entry.  Rather, the work of defining semantics is left entirely to the class and rel (in the case of [[reltag]]) attribute values.&lt;br /&gt;
&lt;br /&gt;
It is expected that developers will use [http://www.w3.org/TR/xpath XPath] or equivalent syntax in accessing xFolk entry elements.  a requirement for XPath is that the (X)HTML document be well-formed but not necessarily valid.  Thus, while undesirable, it is possible to serviceably use xFolk in an (X)HTML document that does not validate.&lt;br /&gt;
&lt;br /&gt;
=== XMDP Profile ===&lt;br /&gt;
&lt;br /&gt;
See the [[xfolk-XMDP|xFolk profile]] for the [http://gmpg.org/xmdp XMDP] profile of xFolk.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Here is a sample bookmark as displayed in [http://del.icio.us del.icio.us]'s standard markup.  Lines where the value of elements' class attributes must change to conform to xFolk are marked with a comment at the end.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;amp;lt;div class=“post”&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“delLink” href=“http://www.sifry.com/alerts/archives/000306.html”&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
      Sifry's Alerts: Technorati launches Related Tags&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt; &lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“extended”&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    Ever wanted to see what posts are related to other posts, what tags &lt;br /&gt;
    are related to others? Now you can! Just check under the Tag &lt;br /&gt;
    description on most tag pages, like this one, or this one, and you'll&lt;br /&gt;
    see the patterns. Can you smell the emergence?&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“meta”&amp;amp;gt;&lt;br /&gt;
    to&lt;br /&gt;
    &amp;amp;lt;a class=“delNav” href=“/fpgibson/folksonomy”&amp;amp;gt;folksonomy&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“delNav” href=“/fpgibson/technorati”&amp;amp;gt;technorati&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    ... &amp;amp;lt;a class=“delNav” href=“/url/cbcabf7de070fdb46598ee679367be49”&amp;amp;gt;&lt;br /&gt;
    and 1 other person&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    ... on 2005-04-09&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The equivalent in xFolk is as follows.  Comments are placed at the end of lines where class attribute changes were required. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;amp;lt;div class=“xfolkentry”&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“taggedlink” href=“http://www.sifry.com/alerts/archives/000306.html”&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
      Sifry's Alerts: Technorati launches Related Tags&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt; &lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=&amp;quot;description&amp;quot;&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    Ever wanted to see what posts are related to other posts, what tags &lt;br /&gt;
    are related to others? Now you can! Just check under the Tag &lt;br /&gt;
    description on most tag pages, like this one, or this one, and you'll&lt;br /&gt;
    see the patterns. Can you smell the emergence?&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“meta”&amp;amp;gt;&lt;br /&gt;
    to&lt;br /&gt;
    &amp;amp;lt;a rel=“tag” href=“/fpgibson/folksonomy”&amp;amp;gt;folksonomy&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a rel=“tag” href=“/fpgibson/technorati”&amp;amp;gt;technorati&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    ... &amp;amp;lt;a class=“delNav” href=“/url/cbcabf7de070fdb46598ee679367be49”&amp;amp;gt;&lt;br /&gt;
    and 1 other person&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    ... on 2005-04-09&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Converting markup to be conformant with xFolk is almost always this easy.  The advantage of xFolk is that it provides one set of class attributes that can be reused across all services and link blogs, almost always with no loss of granularity.  The next section presents several more examples to illustrate this point.&lt;br /&gt;
&lt;br /&gt;
== Many more examples ==&lt;br /&gt;
&lt;br /&gt;
We have numerous examples to help developers incorporate xFolk into their sites.&lt;br /&gt;
&lt;br /&gt;
=== In the wild ===&lt;br /&gt;
&lt;br /&gt;
These are real live examples of functioning systems that publish bookmarks in xFolk.  These 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 publish using xFolk, 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;
* [http://de.lirio.us de.lirio.us] currently publishes its bookmarks using xFolk (with the deprecated class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, see [[xfolk-xmdp | the XMDP]]).&lt;br /&gt;
* [http://dev.blogmarks.net/wiki/BlogSync blogmarks] currently exports bookmarks to blogs in xFolk (scroll down to the export example on the page; the deprecated class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, see [[xfolk-xmdp | the XMDP]]).&lt;br /&gt;
* [http://thecommunityengine.com The Community Engine] uses xFolk (with the deprecated class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, see [[xfolk-xmdp | the XMDP]]) for its [http://thecommunityengine.com/home main entries] and for its [http://thecommunityengine.com/webcites republished bookmarks].&lt;br /&gt;
&lt;br /&gt;
=== Additional social bookmarking services ===&lt;br /&gt;
&lt;br /&gt;
This example illustrates how xFolk may be applied to one additional service:&lt;br /&gt;
&lt;br /&gt;
* [[xfolk-scuttle | scuttle]]&lt;br /&gt;
&lt;br /&gt;
=== Link blogs ===&lt;br /&gt;
&lt;br /&gt;
Social bookmarking services are only the most recent examples of people publishing links.  Link blogs have been around almost since the beginning of blogging.  They represent somewhat more of a challenge for xFolk because their markup tends to be less semantic from the outset.  The following examples illustrate some particular challenges and how they can be overcome.&lt;br /&gt;
&lt;br /&gt;
* [[xfolk-kottke | kottke]]&lt;br /&gt;
* [[xfolk-pollas | pollas]]&lt;br /&gt;
* [[xfolk-jacobian | jacobian]]&lt;br /&gt;
* [[xfolk-julian-bez | julian-bez]]&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
The following implementations have been developed which generate xFolk. If you have an xFolk 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;
* [http://de.lirio.us de.lirio.us] currently publishes its bookmarks using xFolk 0.4 (the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of description).&lt;br /&gt;
* [http://dev.blogmarks.net/wiki/BlogSync blogmarks] currently exports bookmarks to blogs in xFolk 0.4 (scroll down to the export example on the page; the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;).&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;
* [[rel-tag|RelTag]]&lt;br /&gt;
&lt;br /&gt;
=== Informative References ===&lt;br /&gt;
* [http://thecommunityengine.com/home/archives/xfolk articles about xFolk]&lt;br /&gt;
* [http://thecommunityengine.com/home/archives/tags/microformats articles about the business value of microformats]&lt;br /&gt;
* [http://gataga.com gataga social bookmark search engine]&lt;br /&gt;
* [http://johnvey.com/features/deliciousdirector/ an ajax based interface for del.icio.us]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Social_bookmarking social bookmarking defined at wikipedia]&lt;br /&gt;
&lt;br /&gt;
=== Similar Work ===&lt;br /&gt;
* [[hreview | hReview]]&lt;br /&gt;
&lt;br /&gt;
== Work in progress ==&lt;br /&gt;
Although this specification has recently begun to stabilize, it is still a work in progress.  All changes since the last iteration have been motivated by implementation experience.  Further changes will also most likely be motivated by the desire to ease implementation. &lt;br /&gt;
&lt;br /&gt;
=== Changes since xFolk 0.4 ===&lt;br /&gt;
The class attribute value &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; was deprecated in favor &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; to better conform with other microformat usage and some requests during implementation.  The other change has been to allow use of multiple elements of class &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; based on some use cases discovered in implementation.&lt;br /&gt;
&lt;br /&gt;
=== Future directions ===&lt;br /&gt;
There are several extensions one might imagine for xFolk.  Frequently, these extensions are best achieved by combining xFolk with another microformat.  For instance, one might want to indicate his or her evaluation of the bookmarked item.  This might be achieved by using [[vote-links | Vote Links]] or [[hreview | hReview]] with xFolk.&lt;br /&gt;
&lt;br /&gt;
A companion format called &amp;quot;xFolk definition&amp;quot; is under development.  xFolk definition will provide a means of explicitly defining the tags used in social bookmarks.&lt;br /&gt;
&lt;br /&gt;
== Discussions ==&lt;br /&gt;
&lt;br /&gt;
=== Q&amp;amp;A ===&lt;br /&gt;
* If you have any questions about xFolk, check the [[xfolk-faq|xFolk 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 [[xfolk-issues | xFolk issues]] document.&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xfolk&amp;diff=773</id>
		<title>xfolk</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xfolk&amp;diff=773"/>
		<updated>2005-07-08T21:31:19Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* Changes since xFolk 0.4 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
= xFolk =&lt;br /&gt;
&lt;br /&gt;
xFolk is a simple and open format for publishing collections of bookmarks. It better enables services for improving user experience and sharing data.  xFolk may be embedded in (X)HTML, Atom, RSS, and arbitrary XML. It is one of several open [[microformats|microformat]] standards.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Draft Specification ==&lt;br /&gt;
&lt;br /&gt;
=== Editor ===&lt;br /&gt;
[http://thecommunityengine.com/ Bud Gibson], [http://thecommunityengine.com The Community Engine]&lt;br /&gt;
&lt;br /&gt;
=== Authors ===&lt;br /&gt;
* [http://thecommunityengine.com/ Bud Gibson], [http://thecommunityengine.com The Community Engine]&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;
=== Inspiration and Acknowledgments ===&lt;br /&gt;
Thanks to: [http://www.cnbc.cmu.edu/~plaut/ David Plaut] who introduced me to the idea that items may partially belong to many categories at once.  More recently, thanks to: [http://tantek.com/ Tantek Çelik], [http://epeus.blogspot.com/ Kevin Marks], [http://steve.osdir.com/ Steve Mallet], [http://hybernaut.com/ Brian DelVecchio], and [http://blogmarks.net François Hodierne] who have contributed to the development of xFolk with thoughtful critiques and implementations.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Social bookmarking services let users save and tag bookmarks to share with other users.  Over the past year, the number of these services has mushroomed to [http://en.wikipedia.org/wiki/Social_bookmarking over 20], with popular examples including: [http://del.icio.us del.icio.us], [http://furl.com furl], [http://de.lirio.us de.lirio.us], and [http://blogmarks.net blogmarks].  &lt;br /&gt;
&lt;br /&gt;
Lack of an open, interoperable data standard is a major issue in using social bookmarking services.  An open standard would make it possible to easily collect social bookmark data and remix it to invent new services along the lines of  [http://gataga.com gataga]'s experimental bookmark search engine.  An open standard would also make it possible to write javascripts that work across services [http://johnvey.com/features/deliciousdirector/ as some currently do for del.icio.us], enabling across-the-board improvements in user experience.&lt;br /&gt;
&lt;br /&gt;
xFolk is an open social bookmarking standard that aims to achieve both benefits.  Social bookmarking services that adopt xFolk will continue to differentiate themselves with data services.  But, the data itself will be easy to manipulate by third party scripts and easy to share.  As a result, bookmarking services will be able to offer a wider array of options to their users at low cost and focus on what truly differentiates them.  Individuals or groups operating standalone bookmark repositories will have access to a wider array of functionality than they can produce on their own.&lt;br /&gt;
&lt;br /&gt;
== Semantic XHTML Design Principles ==&lt;br /&gt;
{{SemanticXHTMLDesignPrinciples}}&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
Extensive analysis of social bookmarking services and linkblogs, reported on [http://thecommunityengine.com/home/archives/xfolk elsewhere], reveals that the data published by both bookmarking services and '''many''' different linkblogs are described by the following implied schema:&lt;br /&gt;
&lt;br /&gt;
* A bookmarked or tagged link.&lt;br /&gt;
* A title for the entry.&lt;br /&gt;
* Tags for the link.&lt;br /&gt;
* An extended description or summary of the link.&lt;br /&gt;
&lt;br /&gt;
As demonstrated in early iterations of the xFolk standard, this general schema can be translated into markup by:&lt;br /&gt;
&lt;br /&gt;
# creating a container element for each entry of class &amp;lt;code&amp;gt;xfolkentry&amp;lt;/code&amp;gt;, &lt;br /&gt;
# using an &amp;lt;a&amp;gt; element for the bookmarked or tagged link of class &amp;lt;code&amp;gt;taggedlink&amp;lt;/code&amp;gt;, &lt;br /&gt;
# using title attribute for the tagged link &amp;lt;a&amp;gt; element, if it exists, as the entry title, otherwise using the element value,&lt;br /&gt;
# using [[reltag|RelTag]] for the tags, and&lt;br /&gt;
# using a container element of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, such as &amp;amp;lt;p&amp;gt;, for any extended description or summary.&lt;br /&gt;
&lt;br /&gt;
A given xFolk entry will always contain a tagged link including a title with all other elements optional.  Entries may have more than one tag as well as more than one element of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;.  Multiple elements of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; are ordered by default document order. Semantic elements within xFolk entries may be nested at arbitray depths.&lt;br /&gt;
&lt;br /&gt;
Many social bookmarking systems exist, each with its own markup conventions.  Further, many people are already publishing personal link blogs.  xFolk is designed with ease of adapting to these current practices as a primary goal.  Therefore, few assumptions are made as to the exact kinds of elements used for an xFolk entry.  Rather, the work of defining semantics is left entirely to the class and rel (in the case of [[reltag]]) attribute values.&lt;br /&gt;
&lt;br /&gt;
It is expected that developers will use [http://www.w3.org/TR/xpath XPath] or equivalent syntax in accessing xFolk entry elements.  a requirement for XPath is that the (X)HTML document be well-formed but not necessarily valid.  Thus, while undesirable, it is possible to serviceably use xFolk in an (X)HTML document that does not validate.&lt;br /&gt;
&lt;br /&gt;
=== XMDP Profile ===&lt;br /&gt;
&lt;br /&gt;
See the [[xfolk-XMDP|xFolk profile]] for the [http://gmpg.org/xmdp XMDP] profile of xFolk.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Here is a sample bookmark as displayed in [http://del.icio.us del.icio.us]'s standard markup.  Lines where the value of elements' class attributes must change to conform to xFolk are marked with a comment at the end.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;amp;lt;div class=“post”&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“delLink” href=“http://www.sifry.com/alerts/archives/000306.html”&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
      Sifry's Alerts: Technorati launches Related Tags&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt; &lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“extended”&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    Ever wanted to see what posts are related to other posts, what tags &lt;br /&gt;
    are related to others? Now you can! Just check under the Tag &lt;br /&gt;
    description on most tag pages, like this one, or this one, and you'll&lt;br /&gt;
    see the patterns. Can you smell the emergence?&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“meta”&amp;amp;gt;&lt;br /&gt;
    to&lt;br /&gt;
    &amp;amp;lt;a class=“delNav” href=“/fpgibson/folksonomy”&amp;amp;gt;folksonomy&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“delNav” href=“/fpgibson/technorati”&amp;amp;gt;technorati&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    ... &amp;amp;lt;a class=“delNav” href=“/url/cbcabf7de070fdb46598ee679367be49”&amp;amp;gt;&lt;br /&gt;
    and 1 other person&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    ... on 2005-04-09&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The equivalent in xFolk is as follows.  Comments are placed at the end of lines where class attribute changes were required. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;amp;lt;div class=“xfolkentry”&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“taggedlink” href=“http://www.sifry.com/alerts/archives/000306.html”&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
      Sifry's Alerts: Technorati launches Related Tags&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt; &lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=&amp;quot;description&amp;quot;&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    Ever wanted to see what posts are related to other posts, what tags &lt;br /&gt;
    are related to others? Now you can! Just check under the Tag &lt;br /&gt;
    description on most tag pages, like this one, or this one, and you'll&lt;br /&gt;
    see the patterns. Can you smell the emergence?&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“meta”&amp;amp;gt;&lt;br /&gt;
    to&lt;br /&gt;
    &amp;amp;lt;a rel=“tag” href=“/fpgibson/folksonomy”&amp;amp;gt;folksonomy&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a rel=“tag” href=“/fpgibson/technorati”&amp;amp;gt;technorati&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    ... &amp;amp;lt;a class=“delNav” href=“/url/cbcabf7de070fdb46598ee679367be49”&amp;amp;gt;&lt;br /&gt;
    and 1 other person&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    ... on 2005-04-09&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Converting markup to be conformant with xFolk is almost always this easy.  The advantage of xFolk is that it provides one set of class attributes that can be reused across all services and link blogs, almost always with no loss of granularity.  The next section presents several more examples to illustrate this point.&lt;br /&gt;
&lt;br /&gt;
== Many more examples ==&lt;br /&gt;
&lt;br /&gt;
We have numerous examples to help developers incorporate xFolk into their sites.&lt;br /&gt;
&lt;br /&gt;
=== In the wild ===&lt;br /&gt;
&lt;br /&gt;
These are real live examples of functioning systems that publish bookmarks in xFolk.  These 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 publish using xFolk, 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;
* [http://de.lirio.us de.lirio.us] currently publishes its bookmarks using xFolk 0.4 (the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of description).&lt;br /&gt;
* [http://dev.blogmarks.net/wiki/BlogSync blogmarks] currently exports bookmarks to blogs in xFolk 0.4 (scroll down to the export example on the page; the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;).&lt;br /&gt;
* [http://thecommunityengine.com The Community Engine] uses xFolk 0.4 (the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in palce of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;) for its [http://thecommunityengine.com/home main entries] and for its [http://thecommunityengine.com/webcites republished bookmarks].&lt;br /&gt;
&lt;br /&gt;
=== Additional social bookmarking services ===&lt;br /&gt;
&lt;br /&gt;
This example illustrates how xFolk may be applied to one additional service:&lt;br /&gt;
&lt;br /&gt;
* [[xfolk-scuttle | scuttle]]&lt;br /&gt;
&lt;br /&gt;
=== Link blogs ===&lt;br /&gt;
&lt;br /&gt;
Social bookmarking services are only the most recent examples of people publishing links.  Link blogs have been around almost since the beginning of blogging.  They represent somewhat more of a challenge for xFolk because their markup tends to be less semantic from the outset.  The following examples illustrate some particular challenges and how they can be overcome.&lt;br /&gt;
&lt;br /&gt;
* [[xfolk-kottke | kottke]]&lt;br /&gt;
* [[xfolk-pollas | pollas]]&lt;br /&gt;
* [[xfolk-jacobian | jacobian]]&lt;br /&gt;
* [[xfolk-julian-bez | julian-bez]]&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
The following implementations have been developed which generate xFolk. If you have an xFolk 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;
* [http://de.lirio.us de.lirio.us] currently publishes its bookmarks using xFolk 0.4 (the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of description).&lt;br /&gt;
* [http://dev.blogmarks.net/wiki/BlogSync blogmarks] currently exports bookmarks to blogs in xFolk 0.4 (scroll down to the export example on the page; the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;).&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;
* [[rel-tag|RelTag]]&lt;br /&gt;
&lt;br /&gt;
=== Informative References ===&lt;br /&gt;
* [http://thecommunityengine.com/home/archives/xfolk articles about xFolk]&lt;br /&gt;
* [http://thecommunityengine.com/home/archives/tags/microformats articles about the business value of microformats]&lt;br /&gt;
* [http://gataga.com gataga social bookmark search engine]&lt;br /&gt;
* [http://johnvey.com/features/deliciousdirector/ an ajax based interface for del.icio.us]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Social_bookmarking social bookmarking defined at wikipedia]&lt;br /&gt;
&lt;br /&gt;
=== Similar Work ===&lt;br /&gt;
* [[hreview | hReview]]&lt;br /&gt;
&lt;br /&gt;
== Work in progress ==&lt;br /&gt;
Although this specification has recently begun to stabilize, it is still a work in progress.  All changes since the last iteration have been motivated by implementation experience.  Further changes will also most likely be motivated by the desire to ease implementation. &lt;br /&gt;
&lt;br /&gt;
=== Changes since xFolk 0.4 ===&lt;br /&gt;
The class attribute value &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; was deprecated in favor &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; to better conform with other microformat usage and some requests during implementation.  The other change has been to allow use of multiple elements of class &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; based on some use cases discovered in implementation.&lt;br /&gt;
&lt;br /&gt;
=== Future directions ===&lt;br /&gt;
There are several extensions one might imagine for xFolk.  Frequently, these extensions are best achieved by combining xFolk with another microformat.  For instance, one might want to indicate his or her evaluation of the bookmarked item.  This might be achieved by using [[vote-links | Vote Links]] or [[hreview | hReview]] with xFolk.&lt;br /&gt;
&lt;br /&gt;
A companion format called &amp;quot;xFolk definition&amp;quot; is under development.  xFolk definition will provide a means of explicitly defining the tags used in social bookmarks.&lt;br /&gt;
&lt;br /&gt;
== Discussions ==&lt;br /&gt;
&lt;br /&gt;
=== Q&amp;amp;A ===&lt;br /&gt;
* If you have any questions about xFolk, check the [[xfolk-faq|xFolk 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 [[xfolk-issues | xFolk issues]] document.&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xfolk&amp;diff=772</id>
		<title>xfolk</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xfolk&amp;diff=772"/>
		<updated>2005-07-08T21:28:18Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* Changes since xFolk 0.4 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
= xFolk =&lt;br /&gt;
&lt;br /&gt;
xFolk is a simple and open format for publishing collections of bookmarks. It better enables services for improving user experience and sharing data.  xFolk may be embedded in (X)HTML, Atom, RSS, and arbitrary XML. It is one of several open [[microformats|microformat]] standards.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Draft Specification ==&lt;br /&gt;
&lt;br /&gt;
=== Editor ===&lt;br /&gt;
[http://thecommunityengine.com/ Bud Gibson], [http://thecommunityengine.com The Community Engine]&lt;br /&gt;
&lt;br /&gt;
=== Authors ===&lt;br /&gt;
* [http://thecommunityengine.com/ Bud Gibson], [http://thecommunityengine.com The Community Engine]&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;
=== Inspiration and Acknowledgments ===&lt;br /&gt;
Thanks to: [http://www.cnbc.cmu.edu/~plaut/ David Plaut] who introduced me to the idea that items may partially belong to many categories at once.  More recently, thanks to: [http://tantek.com/ Tantek Çelik], [http://epeus.blogspot.com/ Kevin Marks], [http://steve.osdir.com/ Steve Mallet], [http://hybernaut.com/ Brian DelVecchio], and [http://blogmarks.net François Hodierne] who have contributed to the development of xFolk with thoughtful critiques and implementations.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Social bookmarking services let users save and tag bookmarks to share with other users.  Over the past year, the number of these services has mushroomed to [http://en.wikipedia.org/wiki/Social_bookmarking over 20], with popular examples including: [http://del.icio.us del.icio.us], [http://furl.com furl], [http://de.lirio.us de.lirio.us], and [http://blogmarks.net blogmarks].  &lt;br /&gt;
&lt;br /&gt;
Lack of an open, interoperable data standard is a major issue in using social bookmarking services.  An open standard would make it possible to easily collect social bookmark data and remix it to invent new services along the lines of  [http://gataga.com gataga]'s experimental bookmark search engine.  An open standard would also make it possible to write javascripts that work across services [http://johnvey.com/features/deliciousdirector/ as some currently do for del.icio.us], enabling across-the-board improvements in user experience.&lt;br /&gt;
&lt;br /&gt;
xFolk is an open social bookmarking standard that aims to achieve both benefits.  Social bookmarking services that adopt xFolk will continue to differentiate themselves with data services.  But, the data itself will be easy to manipulate by third party scripts and easy to share.  As a result, bookmarking services will be able to offer a wider array of options to their users at low cost and focus on what truly differentiates them.  Individuals or groups operating standalone bookmark repositories will have access to a wider array of functionality than they can produce on their own.&lt;br /&gt;
&lt;br /&gt;
== Semantic XHTML Design Principles ==&lt;br /&gt;
{{SemanticXHTMLDesignPrinciples}}&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
Extensive analysis of social bookmarking services and linkblogs, reported on [http://thecommunityengine.com/home/archives/xfolk elsewhere], reveals that the data published by both bookmarking services and '''many''' different linkblogs are described by the following implied schema:&lt;br /&gt;
&lt;br /&gt;
* A bookmarked or tagged link.&lt;br /&gt;
* A title for the entry.&lt;br /&gt;
* Tags for the link.&lt;br /&gt;
* An extended description or summary of the link.&lt;br /&gt;
&lt;br /&gt;
As demonstrated in early iterations of the xFolk standard, this general schema can be translated into markup by:&lt;br /&gt;
&lt;br /&gt;
# creating a container element for each entry of class &amp;lt;code&amp;gt;xfolkentry&amp;lt;/code&amp;gt;, &lt;br /&gt;
# using an &amp;lt;a&amp;gt; element for the bookmarked or tagged link of class &amp;lt;code&amp;gt;taggedlink&amp;lt;/code&amp;gt;, &lt;br /&gt;
# using title attribute for the tagged link &amp;lt;a&amp;gt; element, if it exists, as the entry title, otherwise using the element value,&lt;br /&gt;
# using [[reltag|RelTag]] for the tags, and&lt;br /&gt;
# using a container element of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, such as &amp;amp;lt;p&amp;gt;, for any extended description or summary.&lt;br /&gt;
&lt;br /&gt;
A given xFolk entry will always contain a tagged link including a title with all other elements optional.  Entries may have more than one tag as well as more than one element of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;.  Multiple elements of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; are ordered by default document order. Semantic elements within xFolk entries may be nested at arbitray depths.&lt;br /&gt;
&lt;br /&gt;
Many social bookmarking systems exist, each with its own markup conventions.  Further, many people are already publishing personal link blogs.  xFolk is designed with ease of adapting to these current practices as a primary goal.  Therefore, few assumptions are made as to the exact kinds of elements used for an xFolk entry.  Rather, the work of defining semantics is left entirely to the class and rel (in the case of [[reltag]]) attribute values.&lt;br /&gt;
&lt;br /&gt;
It is expected that developers will use [http://www.w3.org/TR/xpath XPath] or equivalent syntax in accessing xFolk entry elements.  a requirement for XPath is that the (X)HTML document be well-formed but not necessarily valid.  Thus, while undesirable, it is possible to serviceably use xFolk in an (X)HTML document that does not validate.&lt;br /&gt;
&lt;br /&gt;
=== XMDP Profile ===&lt;br /&gt;
&lt;br /&gt;
See the [[xfolk-XMDP|xFolk profile]] for the [http://gmpg.org/xmdp XMDP] profile of xFolk.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Here is a sample bookmark as displayed in [http://del.icio.us del.icio.us]'s standard markup.  Lines where the value of elements' class attributes must change to conform to xFolk are marked with a comment at the end.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;amp;lt;div class=“post”&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“delLink” href=“http://www.sifry.com/alerts/archives/000306.html”&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
      Sifry's Alerts: Technorati launches Related Tags&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt; &lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“extended”&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    Ever wanted to see what posts are related to other posts, what tags &lt;br /&gt;
    are related to others? Now you can! Just check under the Tag &lt;br /&gt;
    description on most tag pages, like this one, or this one, and you'll&lt;br /&gt;
    see the patterns. Can you smell the emergence?&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“meta”&amp;amp;gt;&lt;br /&gt;
    to&lt;br /&gt;
    &amp;amp;lt;a class=“delNav” href=“/fpgibson/folksonomy”&amp;amp;gt;folksonomy&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“delNav” href=“/fpgibson/technorati”&amp;amp;gt;technorati&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    ... &amp;amp;lt;a class=“delNav” href=“/url/cbcabf7de070fdb46598ee679367be49”&amp;amp;gt;&lt;br /&gt;
    and 1 other person&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    ... on 2005-04-09&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The equivalent in xFolk is as follows.  Comments are placed at the end of lines where class attribute changes were required. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;amp;lt;div class=“xfolkentry”&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“taggedlink” href=“http://www.sifry.com/alerts/archives/000306.html”&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
      Sifry's Alerts: Technorati launches Related Tags&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt; &lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=&amp;quot;description&amp;quot;&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    Ever wanted to see what posts are related to other posts, what tags &lt;br /&gt;
    are related to others? Now you can! Just check under the Tag &lt;br /&gt;
    description on most tag pages, like this one, or this one, and you'll&lt;br /&gt;
    see the patterns. Can you smell the emergence?&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“meta”&amp;amp;gt;&lt;br /&gt;
    to&lt;br /&gt;
    &amp;amp;lt;a rel=“tag” href=“/fpgibson/folksonomy”&amp;amp;gt;folksonomy&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a rel=“tag” href=“/fpgibson/technorati”&amp;amp;gt;technorati&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    ... &amp;amp;lt;a class=“delNav” href=“/url/cbcabf7de070fdb46598ee679367be49”&amp;amp;gt;&lt;br /&gt;
    and 1 other person&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    ... on 2005-04-09&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Converting markup to be conformant with xFolk is almost always this easy.  The advantage of xFolk is that it provides one set of class attributes that can be reused across all services and link blogs, almost always with no loss of granularity.  The next section presents several more examples to illustrate this point.&lt;br /&gt;
&lt;br /&gt;
== Many more examples ==&lt;br /&gt;
&lt;br /&gt;
We have numerous examples to help developers incorporate xFolk into their sites.&lt;br /&gt;
&lt;br /&gt;
=== In the wild ===&lt;br /&gt;
&lt;br /&gt;
These are real live examples of functioning systems that publish bookmarks in xFolk.  These 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 publish using xFolk, 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;
* [http://de.lirio.us de.lirio.us] currently publishes its bookmarks using xFolk 0.4 (the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of description).&lt;br /&gt;
* [http://dev.blogmarks.net/wiki/BlogSync blogmarks] currently exports bookmarks to blogs in xFolk 0.4 (scroll down to the export example on the page; the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;).&lt;br /&gt;
* [http://thecommunityengine.com The Community Engine] uses xFolk 0.4 (the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in palce of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;) for its [http://thecommunityengine.com/home main entries] and for its [http://thecommunityengine.com/webcites republished bookmarks].&lt;br /&gt;
&lt;br /&gt;
=== Additional social bookmarking services ===&lt;br /&gt;
&lt;br /&gt;
This example illustrates how xFolk may be applied to one additional service:&lt;br /&gt;
&lt;br /&gt;
* [[xfolk-scuttle | scuttle]]&lt;br /&gt;
&lt;br /&gt;
=== Link blogs ===&lt;br /&gt;
&lt;br /&gt;
Social bookmarking services are only the most recent examples of people publishing links.  Link blogs have been around almost since the beginning of blogging.  They represent somewhat more of a challenge for xFolk because their markup tends to be less semantic from the outset.  The following examples illustrate some particular challenges and how they can be overcome.&lt;br /&gt;
&lt;br /&gt;
* [[xfolk-kottke | kottke]]&lt;br /&gt;
* [[xfolk-pollas | pollas]]&lt;br /&gt;
* [[xfolk-jacobian | jacobian]]&lt;br /&gt;
* [[xfolk-julian-bez | julian-bez]]&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
The following implementations have been developed which generate xFolk. If you have an xFolk 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;
* [http://de.lirio.us de.lirio.us] currently publishes its bookmarks using xFolk 0.4 (the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of description).&lt;br /&gt;
* [http://dev.blogmarks.net/wiki/BlogSync blogmarks] currently exports bookmarks to blogs in xFolk 0.4 (scroll down to the export example on the page; the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;).&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;
* [[rel-tag|RelTag]]&lt;br /&gt;
&lt;br /&gt;
=== Informative References ===&lt;br /&gt;
* [http://thecommunityengine.com/home/archives/xfolk articles about xFolk]&lt;br /&gt;
* [http://thecommunityengine.com/home/archives/tags/microformats articles about the business value of microformats]&lt;br /&gt;
* [http://gataga.com gataga social bookmark search engine]&lt;br /&gt;
* [http://johnvey.com/features/deliciousdirector/ an ajax based interface for del.icio.us]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Social_bookmarking social bookmarking defined at wikipedia]&lt;br /&gt;
&lt;br /&gt;
=== Similar Work ===&lt;br /&gt;
* [[hreview | hReview]]&lt;br /&gt;
&lt;br /&gt;
== Work in progress ==&lt;br /&gt;
Although this specification has recently begun to stabilize, it is still a work in progress.  All changes since the last iteration have been motivated by implementation experience.  Further changes will also most likely be motivated by the desire to ease implementation. &lt;br /&gt;
&lt;br /&gt;
=== Changes since xFolk 0.4 ===&lt;br /&gt;
The class attribute value &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; was deprecated in favor &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; to better conform with other microformat usage making it more natural for microformats developers to implement.  One other change has been to allow use of multiple elements of class &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; based on some use cases discovered in implementation.&lt;br /&gt;
&lt;br /&gt;
=== Future directions ===&lt;br /&gt;
There are several extensions one might imagine for xFolk.  Frequently, these extensions are best achieved by combining xFolk with another microformat.  For instance, one might want to indicate his or her evaluation of the bookmarked item.  This might be achieved by using [[vote-links | Vote Links]] or [[hreview | hReview]] with xFolk.&lt;br /&gt;
&lt;br /&gt;
A companion format called &amp;quot;xFolk definition&amp;quot; is under development.  xFolk definition will provide a means of explicitly defining the tags used in social bookmarks.&lt;br /&gt;
&lt;br /&gt;
== Discussions ==&lt;br /&gt;
&lt;br /&gt;
=== Q&amp;amp;A ===&lt;br /&gt;
* If you have any questions about xFolk, check the [[xfolk-faq|xFolk 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 [[xfolk-issues | xFolk issues]] document.&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xfolk-profile&amp;diff=5051</id>
		<title>xfolk-profile</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xfolk-profile&amp;diff=5051"/>
		<updated>2005-07-08T21:18:25Z</updated>

		<summary type="html">&lt;p&gt;Bud: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;		&amp;lt;h1&amp;gt;xFolk meta data profile&amp;lt;/h1&amp;gt;&lt;br /&gt;
		&amp;lt;h2&amp;gt;Author&amp;lt;/h2&amp;gt;&lt;br /&gt;
		&amp;lt;ul id=&amp;quot;author&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;li&amp;gt;[http://thecommunityengine.com/home Bud Gibson]&amp;lt;/li&amp;gt;&lt;br /&gt;
		&amp;lt;/ul&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;p&amp;gt;As described in [http://www.w3.org/TR/html401/struct/global.html#h-7.4.4.3 HTML4 Meta data profiles] and further elaborated on in [http://gmpg.org/xmdp/ Xhmtl Meta Data Profiles] with specific reference to the [http://gmpg.org/xfn/11 XFN 1.1 relationships meta data profile] and [http://developers.technorati.com/wiki/XOXO#head-b5d00b5ce5348c0355e0fbe3b310fb2bd6a57909&amp;quot; XOXO profile].&amp;lt;/p&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;p&amp;gt;The author believes this profile provides a set of class attribute values sufficient to be used in working implementations of xFolk.  The profile may be incomplete and is subject to change as xFolk evolves.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;dl class=&amp;quot;profile&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;dt id='class'&amp;gt;class&amp;lt;/dt&amp;gt;&lt;br /&gt;
			&amp;lt;dd&amp;gt;&lt;br /&gt;
				&amp;lt;p&amp;gt;[http://www.w3.org/TR/html401/struct/global.html#adef-class HTML4 definition of the 'class' attribute].  This meta data profile defines some 'class' attribute values (class names) and their meanings as suggested by a [http://www.w3.org/TR/WD-htmllink-970328#profile&amp;quot; draft of &amp;quot;Hypertext Links in HTML&amp;quot;]:&amp;lt;/p&amp;gt;&lt;br /&gt;
				&amp;lt;dl&amp;gt;&lt;br /&gt;
					&amp;lt;dt id=&amp;quot;xfolkentry&amp;quot;&amp;gt;xfolkentry&amp;lt;/dt&amp;gt;&lt;br /&gt;
					&amp;lt;dd&amp;gt;Indicates a container element for an xFolk entry.  An xFolk entry indicates one bookmark with supporting metadata that the user wants to have aggregated into a folksonomy.  The xfolkentry class attribute value is usually applied to &amp;amp;lt;div&amp;gt;, &amp;amp;lt;ul&amp;gt;, &amp;amp;lt;ol&amp;gt;, &amp;amp;lt;dt&amp;gt;, &amp;amp;lt;p&amp;gt; or &amp;amp;lt;span&amp;gt; elements.  xFolk elements contained in an xfolkentry may be nested at an arbitrary depth.&amp;lt;/dd&amp;gt;&lt;br /&gt;
					&amp;lt;dt id=&amp;quot;taggedlink&amp;quot;&amp;gt;taggedlink&amp;lt;/dt&amp;gt;&lt;br /&gt;
					&amp;lt;dd&amp;gt;An &amp;amp;lt;a&amp;gt; tag of class taggedlink indicates the URL of the item the xFolk entry bookmarks.  One and only one &amp;amp;lt;a&amp;gt; element of class taggedlink must occur within each element of class xfolkentry.  The title of the bookmark is in order of availability: (1) the value of an optional title attribute; (2) The value of the &amp;amp;lt;a&amp;gt; element itself.&amp;lt;/dd&amp;gt;&lt;br /&gt;
					&amp;lt;dt id=&amp;quot;description&amp;quot;&amp;gt;description&amp;lt;/dt&amp;gt;&lt;br /&gt;
					&amp;lt;dd&amp;gt;A further description of the xFolk entry.  Typically applied to &amp;amp;lt;dd&amp;gt;, &amp;amp;lt;li&amp;gt;, &amp;amp;lt;p&amp;gt;, and &amp;amp;lt;span&amp;gt; elements.  Elements of class extended are optional and may occur multiply.  When multiple elements of class extended are present, they are assumed to be in document order.&amp;lt;/dd&amp;gt;&lt;br /&gt;
					&amp;lt;dt id=&amp;quot;extended&amp;quot;&amp;gt;extended&amp;lt;/dt&amp;gt;&lt;br /&gt;
					&amp;lt;dd&amp;gt;A deprecated class value that is equivalent to &amp;lt;code&amp;gt;description&amp;lt;/code&amp;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;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xfolk&amp;diff=771</id>
		<title>xfolk</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xfolk&amp;diff=771"/>
		<updated>2005-07-08T21:09:20Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* Format */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
= xFolk =&lt;br /&gt;
&lt;br /&gt;
xFolk is a simple and open format for publishing collections of bookmarks. It better enables services for improving user experience and sharing data.  xFolk may be embedded in (X)HTML, Atom, RSS, and arbitrary XML. It is one of several open [[microformats|microformat]] standards.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Draft Specification ==&lt;br /&gt;
&lt;br /&gt;
=== Editor ===&lt;br /&gt;
[http://thecommunityengine.com/ Bud Gibson], [http://thecommunityengine.com The Community Engine]&lt;br /&gt;
&lt;br /&gt;
=== Authors ===&lt;br /&gt;
* [http://thecommunityengine.com/ Bud Gibson], [http://thecommunityengine.com The Community Engine]&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;
=== Inspiration and Acknowledgments ===&lt;br /&gt;
Thanks to: [http://www.cnbc.cmu.edu/~plaut/ David Plaut] who introduced me to the idea that items may partially belong to many categories at once.  More recently, thanks to: [http://tantek.com/ Tantek Çelik], [http://epeus.blogspot.com/ Kevin Marks], [http://steve.osdir.com/ Steve Mallet], [http://hybernaut.com/ Brian DelVecchio], and [http://blogmarks.net François Hodierne] who have contributed to the development of xFolk with thoughtful critiques and implementations.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Social bookmarking services let users save and tag bookmarks to share with other users.  Over the past year, the number of these services has mushroomed to [http://en.wikipedia.org/wiki/Social_bookmarking over 20], with popular examples including: [http://del.icio.us del.icio.us], [http://furl.com furl], [http://de.lirio.us de.lirio.us], and [http://blogmarks.net blogmarks].  &lt;br /&gt;
&lt;br /&gt;
Lack of an open, interoperable data standard is a major issue in using social bookmarking services.  An open standard would make it possible to easily collect social bookmark data and remix it to invent new services along the lines of  [http://gataga.com gataga]'s experimental bookmark search engine.  An open standard would also make it possible to write javascripts that work across services [http://johnvey.com/features/deliciousdirector/ as some currently do for del.icio.us], enabling across-the-board improvements in user experience.&lt;br /&gt;
&lt;br /&gt;
xFolk is an open social bookmarking standard that aims to achieve both benefits.  Social bookmarking services that adopt xFolk will continue to differentiate themselves with data services.  But, the data itself will be easy to manipulate by third party scripts and easy to share.  As a result, bookmarking services will be able to offer a wider array of options to their users at low cost and focus on what truly differentiates them.  Individuals or groups operating standalone bookmark repositories will have access to a wider array of functionality than they can produce on their own.&lt;br /&gt;
&lt;br /&gt;
== Semantic XHTML Design Principles ==&lt;br /&gt;
{{SemanticXHTMLDesignPrinciples}}&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
Extensive analysis of social bookmarking services and linkblogs, reported on [http://thecommunityengine.com/home/archives/xfolk elsewhere], reveals that the data published by both bookmarking services and '''many''' different linkblogs are described by the following implied schema:&lt;br /&gt;
&lt;br /&gt;
* A bookmarked or tagged link.&lt;br /&gt;
* A title for the entry.&lt;br /&gt;
* Tags for the link.&lt;br /&gt;
* An extended description or summary of the link.&lt;br /&gt;
&lt;br /&gt;
As demonstrated in early iterations of the xFolk standard, this general schema can be translated into markup by:&lt;br /&gt;
&lt;br /&gt;
# creating a container element for each entry of class &amp;lt;code&amp;gt;xfolkentry&amp;lt;/code&amp;gt;, &lt;br /&gt;
# using an &amp;lt;a&amp;gt; element for the bookmarked or tagged link of class &amp;lt;code&amp;gt;taggedlink&amp;lt;/code&amp;gt;, &lt;br /&gt;
# using title attribute for the tagged link &amp;lt;a&amp;gt; element, if it exists, as the entry title, otherwise using the element value,&lt;br /&gt;
# using [[reltag|RelTag]] for the tags, and&lt;br /&gt;
# using a container element of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, such as &amp;amp;lt;p&amp;gt;, for any extended description or summary.&lt;br /&gt;
&lt;br /&gt;
A given xFolk entry will always contain a tagged link including a title with all other elements optional.  Entries may have more than one tag as well as more than one element of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;.  Multiple elements of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; are ordered by default document order. Semantic elements within xFolk entries may be nested at arbitray depths.&lt;br /&gt;
&lt;br /&gt;
Many social bookmarking systems exist, each with its own markup conventions.  Further, many people are already publishing personal link blogs.  xFolk is designed with ease of adapting to these current practices as a primary goal.  Therefore, few assumptions are made as to the exact kinds of elements used for an xFolk entry.  Rather, the work of defining semantics is left entirely to the class and rel (in the case of [[reltag]]) attribute values.&lt;br /&gt;
&lt;br /&gt;
It is expected that developers will use [http://www.w3.org/TR/xpath XPath] or equivalent syntax in accessing xFolk entry elements.  a requirement for XPath is that the (X)HTML document be well-formed but not necessarily valid.  Thus, while undesirable, it is possible to serviceably use xFolk in an (X)HTML document that does not validate.&lt;br /&gt;
&lt;br /&gt;
=== XMDP Profile ===&lt;br /&gt;
&lt;br /&gt;
See the [[xfolk-XMDP|xFolk profile]] for the [http://gmpg.org/xmdp XMDP] profile of xFolk.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Here is a sample bookmark as displayed in [http://del.icio.us del.icio.us]'s standard markup.  Lines where the value of elements' class attributes must change to conform to xFolk are marked with a comment at the end.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;amp;lt;div class=“post”&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“delLink” href=“http://www.sifry.com/alerts/archives/000306.html”&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
      Sifry's Alerts: Technorati launches Related Tags&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt; &lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“extended”&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    Ever wanted to see what posts are related to other posts, what tags &lt;br /&gt;
    are related to others? Now you can! Just check under the Tag &lt;br /&gt;
    description on most tag pages, like this one, or this one, and you'll&lt;br /&gt;
    see the patterns. Can you smell the emergence?&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“meta”&amp;amp;gt;&lt;br /&gt;
    to&lt;br /&gt;
    &amp;amp;lt;a class=“delNav” href=“/fpgibson/folksonomy”&amp;amp;gt;folksonomy&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“delNav” href=“/fpgibson/technorati”&amp;amp;gt;technorati&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    ... &amp;amp;lt;a class=“delNav” href=“/url/cbcabf7de070fdb46598ee679367be49”&amp;amp;gt;&lt;br /&gt;
    and 1 other person&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    ... on 2005-04-09&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The equivalent in xFolk is as follows.  Comments are placed at the end of lines where class attribute changes were required. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;amp;lt;div class=“xfolkentry”&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“taggedlink” href=“http://www.sifry.com/alerts/archives/000306.html”&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
      Sifry's Alerts: Technorati launches Related Tags&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt; &lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=&amp;quot;description&amp;quot;&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    Ever wanted to see what posts are related to other posts, what tags &lt;br /&gt;
    are related to others? Now you can! Just check under the Tag &lt;br /&gt;
    description on most tag pages, like this one, or this one, and you'll&lt;br /&gt;
    see the patterns. Can you smell the emergence?&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“meta”&amp;amp;gt;&lt;br /&gt;
    to&lt;br /&gt;
    &amp;amp;lt;a rel=“tag” href=“/fpgibson/folksonomy”&amp;amp;gt;folksonomy&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a rel=“tag” href=“/fpgibson/technorati”&amp;amp;gt;technorati&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    ... &amp;amp;lt;a class=“delNav” href=“/url/cbcabf7de070fdb46598ee679367be49”&amp;amp;gt;&lt;br /&gt;
    and 1 other person&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    ... on 2005-04-09&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Converting markup to be conformant with xFolk is almost always this easy.  The advantage of xFolk is that it provides one set of class attributes that can be reused across all services and link blogs, almost always with no loss of granularity.  The next section presents several more examples to illustrate this point.&lt;br /&gt;
&lt;br /&gt;
== Many more examples ==&lt;br /&gt;
&lt;br /&gt;
We have numerous examples to help developers incorporate xFolk into their sites.&lt;br /&gt;
&lt;br /&gt;
=== In the wild ===&lt;br /&gt;
&lt;br /&gt;
These are real live examples of functioning systems that publish bookmarks in xFolk.  These 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 publish using xFolk, 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;
* [http://de.lirio.us de.lirio.us] currently publishes its bookmarks using xFolk 0.4 (the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of description).&lt;br /&gt;
* [http://dev.blogmarks.net/wiki/BlogSync blogmarks] currently exports bookmarks to blogs in xFolk 0.4 (scroll down to the export example on the page; the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;).&lt;br /&gt;
* [http://thecommunityengine.com The Community Engine] uses xFolk 0.4 (the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in palce of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;) for its [http://thecommunityengine.com/home main entries] and for its [http://thecommunityengine.com/webcites republished bookmarks].&lt;br /&gt;
&lt;br /&gt;
=== Additional social bookmarking services ===&lt;br /&gt;
&lt;br /&gt;
This example illustrates how xFolk may be applied to one additional service:&lt;br /&gt;
&lt;br /&gt;
* [[xfolk-scuttle | scuttle]]&lt;br /&gt;
&lt;br /&gt;
=== Link blogs ===&lt;br /&gt;
&lt;br /&gt;
Social bookmarking services are only the most recent examples of people publishing links.  Link blogs have been around almost since the beginning of blogging.  They represent somewhat more of a challenge for xFolk because their markup tends to be less semantic from the outset.  The following examples illustrate some particular challenges and how they can be overcome.&lt;br /&gt;
&lt;br /&gt;
* [[xfolk-kottke | kottke]]&lt;br /&gt;
* [[xfolk-pollas | pollas]]&lt;br /&gt;
* [[xfolk-jacobian | jacobian]]&lt;br /&gt;
* [[xfolk-julian-bez | julian-bez]]&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
The following implementations have been developed which generate xFolk. If you have an xFolk 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;
* [http://de.lirio.us de.lirio.us] currently publishes its bookmarks using xFolk 0.4 (the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of description).&lt;br /&gt;
* [http://dev.blogmarks.net/wiki/BlogSync blogmarks] currently exports bookmarks to blogs in xFolk 0.4 (scroll down to the export example on the page; the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;).&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;
* [[rel-tag|RelTag]]&lt;br /&gt;
&lt;br /&gt;
=== Informative References ===&lt;br /&gt;
* [http://thecommunityengine.com/home/archives/xfolk articles about xFolk]&lt;br /&gt;
* [http://thecommunityengine.com/home/archives/tags/microformats articles about the business value of microformats]&lt;br /&gt;
* [http://gataga.com gataga social bookmark search engine]&lt;br /&gt;
* [http://johnvey.com/features/deliciousdirector/ an ajax based interface for del.icio.us]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Social_bookmarking social bookmarking defined at wikipedia]&lt;br /&gt;
&lt;br /&gt;
=== Similar Work ===&lt;br /&gt;
* [[hreview | hReview]]&lt;br /&gt;
&lt;br /&gt;
== Work in progress ==&lt;br /&gt;
Although this specification has recently begun to stabilize, it is still a work in progress.  All changes since the last iteration have been motivated by implementation experience.  Further changes will also most likely be motivated by the desire to ease implementation. &lt;br /&gt;
&lt;br /&gt;
=== Changes since xFolk 0.4 ===&lt;br /&gt;
The class attribute value &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; was changed to &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; to better conform with other microformat usage so that it would be more natural for microformats developers to implement.  One other change has been to allow use of multiple elements of class extended based on some use cases discovered in implementation.&lt;br /&gt;
&lt;br /&gt;
=== Future directions ===&lt;br /&gt;
There are several extensions one might imagine for xFolk.  Frequently, these extensions are best achieved by combining xFolk with another microformat.  For instance, one might want to indicate his or her evaluation of the bookmarked item.  This might be achieved by using [[vote-links | Vote Links]] or [[hreview | hReview]] with xFolk.&lt;br /&gt;
&lt;br /&gt;
A companion format called &amp;quot;xFolk definition&amp;quot; is under development.  xFolk definition will provide a means of explicitly defining the tags used in social bookmarks.&lt;br /&gt;
&lt;br /&gt;
== Discussions ==&lt;br /&gt;
&lt;br /&gt;
=== Q&amp;amp;A ===&lt;br /&gt;
* If you have any questions about xFolk, check the [[xfolk-faq|xFolk 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 [[xfolk-issues | xFolk issues]] document.&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xfolk&amp;diff=769</id>
		<title>xfolk</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xfolk&amp;diff=769"/>
		<updated>2005-07-08T21:08:41Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* Format */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
= xFolk =&lt;br /&gt;
&lt;br /&gt;
xFolk is a simple and open format for publishing collections of bookmarks. It better enables services for improving user experience and sharing data.  xFolk may be embedded in (X)HTML, Atom, RSS, and arbitrary XML. It is one of several open [[microformats|microformat]] standards.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Draft Specification ==&lt;br /&gt;
&lt;br /&gt;
=== Editor ===&lt;br /&gt;
[http://thecommunityengine.com/ Bud Gibson], [http://thecommunityengine.com The Community Engine]&lt;br /&gt;
&lt;br /&gt;
=== Authors ===&lt;br /&gt;
* [http://thecommunityengine.com/ Bud Gibson], [http://thecommunityengine.com The Community Engine]&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;
=== Inspiration and Acknowledgments ===&lt;br /&gt;
Thanks to: [http://www.cnbc.cmu.edu/~plaut/ David Plaut] who introduced me to the idea that items may partially belong to many categories at once.  More recently, thanks to: [http://tantek.com/ Tantek Çelik], [http://epeus.blogspot.com/ Kevin Marks], [http://steve.osdir.com/ Steve Mallet], [http://hybernaut.com/ Brian DelVecchio], and [http://blogmarks.net François Hodierne] who have contributed to the development of xFolk with thoughtful critiques and implementations.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Social bookmarking services let users save and tag bookmarks to share with other users.  Over the past year, the number of these services has mushroomed to [http://en.wikipedia.org/wiki/Social_bookmarking over 20], with popular examples including: [http://del.icio.us del.icio.us], [http://furl.com furl], [http://de.lirio.us de.lirio.us], and [http://blogmarks.net blogmarks].  &lt;br /&gt;
&lt;br /&gt;
Lack of an open, interoperable data standard is a major issue in using social bookmarking services.  An open standard would make it possible to easily collect social bookmark data and remix it to invent new services along the lines of  [http://gataga.com gataga]'s experimental bookmark search engine.  An open standard would also make it possible to write javascripts that work across services [http://johnvey.com/features/deliciousdirector/ as some currently do for del.icio.us], enabling across-the-board improvements in user experience.&lt;br /&gt;
&lt;br /&gt;
xFolk is an open social bookmarking standard that aims to achieve both benefits.  Social bookmarking services that adopt xFolk will continue to differentiate themselves with data services.  But, the data itself will be easy to manipulate by third party scripts and easy to share.  As a result, bookmarking services will be able to offer a wider array of options to their users at low cost and focus on what truly differentiates them.  Individuals or groups operating standalone bookmark repositories will have access to a wider array of functionality than they can produce on their own.&lt;br /&gt;
&lt;br /&gt;
== Semantic XHTML Design Principles ==&lt;br /&gt;
{{SemanticXHTMLDesignPrinciples}}&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
Extensive analysis of social bookmarking services and linkblogs, reported on [http://thecommunityengine.com/archives/xfolk elsewhere], reveals that the data published by both bookmarking services and '''many''' different linkblogs are described by the following implied schema:&lt;br /&gt;
&lt;br /&gt;
* A bookmarked or tagged link.&lt;br /&gt;
* A title for the entry.&lt;br /&gt;
* Tags for the link.&lt;br /&gt;
* An extended description or summary of the link.&lt;br /&gt;
&lt;br /&gt;
As demonstrated in early iterations of the xFolk standard, this general schema can be translated into markup by:&lt;br /&gt;
&lt;br /&gt;
# creating a container element for each entry of class &amp;lt;code&amp;gt;xfolkentry&amp;lt;/code&amp;gt;, &lt;br /&gt;
# using an &amp;lt;a&amp;gt; element for the bookmarked or tagged link of class &amp;lt;code&amp;gt;taggedlink&amp;lt;/code&amp;gt;, &lt;br /&gt;
# using title attribute for the tagged link &amp;lt;a&amp;gt; element, if it exists, as the entry title, otherwise using the element value,&lt;br /&gt;
# using [[reltag|RelTag]] for the tags, and&lt;br /&gt;
# using a container element of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, such as &amp;amp;lt;p&amp;gt;, for any extended description or summary.&lt;br /&gt;
&lt;br /&gt;
A given xFolk entry will always contain a tagged link including a title with all other elements optional.  Entries may have more than one tag as well as more than one element of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;.  Multiple elements of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; are ordered by default document order. Semantic elements within xFolk entries may be nested at arbitray depths.&lt;br /&gt;
&lt;br /&gt;
Many social bookmarking systems exist, each with its own markup conventions.  Further, many people are already publishing personal link blogs.  xFolk is designed with ease of adapting to these current practices as a primary goal.  Therefore, few assumptions are made as to the exact kinds of elements used for an xFolk entry.  Rather, the work of defining semantics is left entirely to the class and rel (in the case of [[reltag]]) attribute values.&lt;br /&gt;
&lt;br /&gt;
It is expected that developers will use [http://www.w3.org/TR/xpath XPath] or equivalent syntax in accessing xFolk entry elements.  a requirement for XPath is that the (X)HTML document be well-formed but not necessarily valid.  Thus, while undesirable, it is possible to serviceably use xFolk in an (X)HTML document that does not validate.&lt;br /&gt;
&lt;br /&gt;
=== XMDP Profile ===&lt;br /&gt;
&lt;br /&gt;
See the [[xfolk-XMDP|xFolk profile]] for the [http://gmpg.org/xmdp XMDP] profile of xFolk.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Here is a sample bookmark as displayed in [http://del.icio.us del.icio.us]'s standard markup.  Lines where the value of elements' class attributes must change to conform to xFolk are marked with a comment at the end.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;amp;lt;div class=“post”&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“delLink” href=“http://www.sifry.com/alerts/archives/000306.html”&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
      Sifry's Alerts: Technorati launches Related Tags&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt; &lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“extended”&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    Ever wanted to see what posts are related to other posts, what tags &lt;br /&gt;
    are related to others? Now you can! Just check under the Tag &lt;br /&gt;
    description on most tag pages, like this one, or this one, and you'll&lt;br /&gt;
    see the patterns. Can you smell the emergence?&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“meta”&amp;amp;gt;&lt;br /&gt;
    to&lt;br /&gt;
    &amp;amp;lt;a class=“delNav” href=“/fpgibson/folksonomy”&amp;amp;gt;folksonomy&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“delNav” href=“/fpgibson/technorati”&amp;amp;gt;technorati&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    ... &amp;amp;lt;a class=“delNav” href=“/url/cbcabf7de070fdb46598ee679367be49”&amp;amp;gt;&lt;br /&gt;
    and 1 other person&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    ... on 2005-04-09&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The equivalent in xFolk is as follows.  Comments are placed at the end of lines where class attribute changes were required. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;amp;lt;div class=“xfolkentry”&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“taggedlink” href=“http://www.sifry.com/alerts/archives/000306.html”&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
      Sifry's Alerts: Technorati launches Related Tags&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt; &lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=&amp;quot;description&amp;quot;&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    Ever wanted to see what posts are related to other posts, what tags &lt;br /&gt;
    are related to others? Now you can! Just check under the Tag &lt;br /&gt;
    description on most tag pages, like this one, or this one, and you'll&lt;br /&gt;
    see the patterns. Can you smell the emergence?&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“meta”&amp;amp;gt;&lt;br /&gt;
    to&lt;br /&gt;
    &amp;amp;lt;a rel=“tag” href=“/fpgibson/folksonomy”&amp;amp;gt;folksonomy&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a rel=“tag” href=“/fpgibson/technorati”&amp;amp;gt;technorati&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    ... &amp;amp;lt;a class=“delNav” href=“/url/cbcabf7de070fdb46598ee679367be49”&amp;amp;gt;&lt;br /&gt;
    and 1 other person&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    ... on 2005-04-09&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Converting markup to be conformant with xFolk is almost always this easy.  The advantage of xFolk is that it provides one set of class attributes that can be reused across all services and link blogs, almost always with no loss of granularity.  The next section presents several more examples to illustrate this point.&lt;br /&gt;
&lt;br /&gt;
== Many more examples ==&lt;br /&gt;
&lt;br /&gt;
We have numerous examples to help developers incorporate xFolk into their sites.&lt;br /&gt;
&lt;br /&gt;
=== In the wild ===&lt;br /&gt;
&lt;br /&gt;
These are real live examples of functioning systems that publish bookmarks in xFolk.  These 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 publish using xFolk, 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;
* [http://de.lirio.us de.lirio.us] currently publishes its bookmarks using xFolk 0.4 (the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of description).&lt;br /&gt;
* [http://dev.blogmarks.net/wiki/BlogSync blogmarks] currently exports bookmarks to blogs in xFolk 0.4 (scroll down to the export example on the page; the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;).&lt;br /&gt;
* [http://thecommunityengine.com The Community Engine] uses xFolk 0.4 (the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in palce of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;) for its [http://thecommunityengine.com/home main entries] and for its [http://thecommunityengine.com/webcites republished bookmarks].&lt;br /&gt;
&lt;br /&gt;
=== Additional social bookmarking services ===&lt;br /&gt;
&lt;br /&gt;
This example illustrates how xFolk may be applied to one additional service:&lt;br /&gt;
&lt;br /&gt;
* [[xfolk-scuttle | scuttle]]&lt;br /&gt;
&lt;br /&gt;
=== Link blogs ===&lt;br /&gt;
&lt;br /&gt;
Social bookmarking services are only the most recent examples of people publishing links.  Link blogs have been around almost since the beginning of blogging.  They represent somewhat more of a challenge for xFolk because their markup tends to be less semantic from the outset.  The following examples illustrate some particular challenges and how they can be overcome.&lt;br /&gt;
&lt;br /&gt;
* [[xfolk-kottke | kottke]]&lt;br /&gt;
* [[xfolk-pollas | pollas]]&lt;br /&gt;
* [[xfolk-jacobian | jacobian]]&lt;br /&gt;
* [[xfolk-julian-bez | julian-bez]]&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
The following implementations have been developed which generate xFolk. If you have an xFolk 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;
* [http://de.lirio.us de.lirio.us] currently publishes its bookmarks using xFolk 0.4 (the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of description).&lt;br /&gt;
* [http://dev.blogmarks.net/wiki/BlogSync blogmarks] currently exports bookmarks to blogs in xFolk 0.4 (scroll down to the export example on the page; the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;).&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;
* [[rel-tag|RelTag]]&lt;br /&gt;
&lt;br /&gt;
=== Informative References ===&lt;br /&gt;
* [http://thecommunityengine.com/home/archives/xfolk articles about xFolk]&lt;br /&gt;
* [http://thecommunityengine.com/home/archives/tags/microformats articles about the business value of microformats]&lt;br /&gt;
* [http://gataga.com gataga social bookmark search engine]&lt;br /&gt;
* [http://johnvey.com/features/deliciousdirector/ an ajax based interface for del.icio.us]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Social_bookmarking social bookmarking defined at wikipedia]&lt;br /&gt;
&lt;br /&gt;
=== Similar Work ===&lt;br /&gt;
* [[hreview | hReview]]&lt;br /&gt;
&lt;br /&gt;
== Work in progress ==&lt;br /&gt;
Although this specification has recently begun to stabilize, it is still a work in progress.  All changes since the last iteration have been motivated by implementation experience.  Further changes will also most likely be motivated by the desire to ease implementation. &lt;br /&gt;
&lt;br /&gt;
=== Changes since xFolk 0.4 ===&lt;br /&gt;
The class attribute value &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; was changed to &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; to better conform with other microformat usage so that it would be more natural for microformats developers to implement.  One other change has been to allow use of multiple elements of class extended based on some use cases discovered in implementation.&lt;br /&gt;
&lt;br /&gt;
=== Future directions ===&lt;br /&gt;
There are several extensions one might imagine for xFolk.  Frequently, these extensions are best achieved by combining xFolk with another microformat.  For instance, one might want to indicate his or her evaluation of the bookmarked item.  This might be achieved by using [[vote-links | Vote Links]] or [[hreview | hReview]] with xFolk.&lt;br /&gt;
&lt;br /&gt;
A companion format called &amp;quot;xFolk definition&amp;quot; is under development.  xFolk definition will provide a means of explicitly defining the tags used in social bookmarks.&lt;br /&gt;
&lt;br /&gt;
== Discussions ==&lt;br /&gt;
&lt;br /&gt;
=== Q&amp;amp;A ===&lt;br /&gt;
* If you have any questions about xFolk, check the [[xfolk-faq|xFolk 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 [[xfolk-issues | xFolk issues]] document.&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xfolk&amp;diff=768</id>
		<title>xfolk</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xfolk&amp;diff=768"/>
		<updated>2005-07-08T21:02:43Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
= xFolk =&lt;br /&gt;
&lt;br /&gt;
xFolk is a simple and open format for publishing collections of bookmarks. It better enables services for improving user experience and sharing data.  xFolk may be embedded in (X)HTML, Atom, RSS, and arbitrary XML. It is one of several open [[microformats|microformat]] standards.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Draft Specification ==&lt;br /&gt;
&lt;br /&gt;
=== Editor ===&lt;br /&gt;
[http://thecommunityengine.com/ Bud Gibson], [http://thecommunityengine.com The Community Engine]&lt;br /&gt;
&lt;br /&gt;
=== Authors ===&lt;br /&gt;
* [http://thecommunityengine.com/ Bud Gibson], [http://thecommunityengine.com The Community Engine]&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;
=== Inspiration and Acknowledgments ===&lt;br /&gt;
Thanks to: [http://www.cnbc.cmu.edu/~plaut/ David Plaut] who introduced me to the idea that items may partially belong to many categories at once.  More recently, thanks to: [http://tantek.com/ Tantek Çelik], [http://epeus.blogspot.com/ Kevin Marks], [http://steve.osdir.com/ Steve Mallet], [http://hybernaut.com/ Brian DelVecchio], and [http://blogmarks.net François Hodierne] who have contributed to the development of xFolk with thoughtful critiques and implementations.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Social bookmarking services let users save and tag bookmarks to share with other users.  Over the past year, the number of these services has mushroomed to [http://en.wikipedia.org/wiki/Social_bookmarking over 20], with popular examples including: [http://del.icio.us del.icio.us], [http://furl.com furl], [http://de.lirio.us de.lirio.us], and [http://blogmarks.net blogmarks].  &lt;br /&gt;
&lt;br /&gt;
Lack of an open, interoperable data standard is a major issue in using social bookmarking services.  An open standard would make it possible to easily collect social bookmark data and remix it to invent new services along the lines of  [http://gataga.com gataga]'s experimental bookmark search engine.  An open standard would also make it possible to write javascripts that work across services [http://johnvey.com/features/deliciousdirector/ as some currently do for del.icio.us], enabling across-the-board improvements in user experience.&lt;br /&gt;
&lt;br /&gt;
xFolk is an open social bookmarking standard that aims to achieve both benefits.  Social bookmarking services that adopt xFolk will continue to differentiate themselves with data services.  But, the data itself will be easy to manipulate by third party scripts and easy to share.  As a result, bookmarking services will be able to offer a wider array of options to their users at low cost and focus on what truly differentiates them.  Individuals or groups operating standalone bookmark repositories will have access to a wider array of functionality than they can produce on their own.&lt;br /&gt;
&lt;br /&gt;
== Semantic XHTML Design Principles ==&lt;br /&gt;
{{SemanticXHTMLDesignPrinciples}}&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
Extensive analysis of social bookmarking services and linkblogs, reported on here, here, here, and here, reveals that the data published by both bookmarking services and '''many''' different linkblogs are described by the following implied schema:&lt;br /&gt;
&lt;br /&gt;
* A bookmarked or tagged link.&lt;br /&gt;
* A title for the entry.&lt;br /&gt;
* Tags for the link.&lt;br /&gt;
* An extended description or summary of the link.&lt;br /&gt;
&lt;br /&gt;
As demonstrated in early iterations of the xFolk standard, this general schema can be translated into markup by:&lt;br /&gt;
&lt;br /&gt;
# creating a container element for each entry of class &amp;lt;code&amp;gt;xfolkentry&amp;lt;/code&amp;gt;, &lt;br /&gt;
# using an &amp;lt;a&amp;gt; element for the bookmarked or tagged link of class &amp;lt;code&amp;gt;taggedlink&amp;lt;/code&amp;gt;, &lt;br /&gt;
# using title attribute for the tagged link &amp;lt;a&amp;gt; element, if it exists, as the entry title, otherwise using the element value,&lt;br /&gt;
# using [[reltag|RelTag]] for the tags, and&lt;br /&gt;
# using a container element of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, such as &amp;amp;lt;p&amp;gt;, for any extended description or summary.&lt;br /&gt;
&lt;br /&gt;
A given xFolk entry will always contain a tagged link including a title with all other elements optional.  Entries may have more than one tag as well as more than one element of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;.  Multiple elements of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; are ordered by default document order. Semantic elements within xFolk entries may be nested at arbitray depths.&lt;br /&gt;
&lt;br /&gt;
Many social bookmarking systems exist, each with its own markup conventions.  Further, many people are already publishing personal link blogs.  xFolk is designed with ease of adapting to these current practices as a primary goal.  Therefore, few assumptions are made as to the exact kinds of elements used for an xFolk entry.  Rather, the work of defining semantics is left entirely to the class and rel (in the case of [[reltag]]) attribute values.&lt;br /&gt;
&lt;br /&gt;
It is expected that developers will use [http://www.w3.org/TR/xpath XPath] or equivalent syntax in accessing xFolk entry elements.  a requirement for XPath is that the (X)HTML document be well-formed but not necessarily valid.  Thus, while undesirable, it is possible to serviceably use xFolk in an (X)HTML document that does not validate.&lt;br /&gt;
&lt;br /&gt;
=== XMDP Profile ===&lt;br /&gt;
&lt;br /&gt;
See the [[xfolk-XMDP|xFolk profile]] for the [http://gmpg.org/xmdp XMDP] profile of xFolk.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Here is a sample bookmark as displayed in [http://del.icio.us del.icio.us]'s standard markup.  Lines where the value of elements' class attributes must change to conform to xFolk are marked with a comment at the end.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;amp;lt;div class=“post”&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“delLink” href=“http://www.sifry.com/alerts/archives/000306.html”&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
      Sifry's Alerts: Technorati launches Related Tags&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt; &lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“extended”&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    Ever wanted to see what posts are related to other posts, what tags &lt;br /&gt;
    are related to others? Now you can! Just check under the Tag &lt;br /&gt;
    description on most tag pages, like this one, or this one, and you'll&lt;br /&gt;
    see the patterns. Can you smell the emergence?&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“meta”&amp;amp;gt;&lt;br /&gt;
    to&lt;br /&gt;
    &amp;amp;lt;a class=“delNav” href=“/fpgibson/folksonomy”&amp;amp;gt;folksonomy&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“delNav” href=“/fpgibson/technorati”&amp;amp;gt;technorati&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    ... &amp;amp;lt;a class=“delNav” href=“/url/cbcabf7de070fdb46598ee679367be49”&amp;amp;gt;&lt;br /&gt;
    and 1 other person&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    ... on 2005-04-09&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The equivalent in xFolk is as follows.  Comments are placed at the end of lines where class attribute changes were required. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;amp;lt;div class=“xfolkentry”&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“taggedlink” href=“http://www.sifry.com/alerts/archives/000306.html”&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
      Sifry's Alerts: Technorati launches Related Tags&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt; &lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=&amp;quot;description&amp;quot;&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    Ever wanted to see what posts are related to other posts, what tags &lt;br /&gt;
    are related to others? Now you can! Just check under the Tag &lt;br /&gt;
    description on most tag pages, like this one, or this one, and you'll&lt;br /&gt;
    see the patterns. Can you smell the emergence?&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“meta”&amp;amp;gt;&lt;br /&gt;
    to&lt;br /&gt;
    &amp;amp;lt;a rel=“tag” href=“/fpgibson/folksonomy”&amp;amp;gt;folksonomy&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a rel=“tag” href=“/fpgibson/technorati”&amp;amp;gt;technorati&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    ... &amp;amp;lt;a class=“delNav” href=“/url/cbcabf7de070fdb46598ee679367be49”&amp;amp;gt;&lt;br /&gt;
    and 1 other person&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    ... on 2005-04-09&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Converting markup to be conformant with xFolk is almost always this easy.  The advantage of xFolk is that it provides one set of class attributes that can be reused across all services and link blogs, almost always with no loss of granularity.  The next section presents several more examples to illustrate this point.&lt;br /&gt;
&lt;br /&gt;
== Many more examples ==&lt;br /&gt;
&lt;br /&gt;
We have numerous examples to help developers incorporate xFolk into their sites.&lt;br /&gt;
&lt;br /&gt;
=== In the wild ===&lt;br /&gt;
&lt;br /&gt;
These are real live examples of functioning systems that publish bookmarks in xFolk.  These 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 publish using xFolk, 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;
* [http://de.lirio.us de.lirio.us] currently publishes its bookmarks using xFolk 0.4 (the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of description).&lt;br /&gt;
* [http://dev.blogmarks.net/wiki/BlogSync blogmarks] currently exports bookmarks to blogs in xFolk 0.4 (scroll down to the export example on the page; the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;).&lt;br /&gt;
* [http://thecommunityengine.com The Community Engine] uses xFolk 0.4 (the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in palce of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;) for its [http://thecommunityengine.com/home main entries] and for its [http://thecommunityengine.com/webcites republished bookmarks].&lt;br /&gt;
&lt;br /&gt;
=== Additional social bookmarking services ===&lt;br /&gt;
&lt;br /&gt;
This example illustrates how xFolk may be applied to one additional service:&lt;br /&gt;
&lt;br /&gt;
* [[xfolk-scuttle | scuttle]]&lt;br /&gt;
&lt;br /&gt;
=== Link blogs ===&lt;br /&gt;
&lt;br /&gt;
Social bookmarking services are only the most recent examples of people publishing links.  Link blogs have been around almost since the beginning of blogging.  They represent somewhat more of a challenge for xFolk because their markup tends to be less semantic from the outset.  The following examples illustrate some particular challenges and how they can be overcome.&lt;br /&gt;
&lt;br /&gt;
* [[xfolk-kottke | kottke]]&lt;br /&gt;
* [[xfolk-pollas | pollas]]&lt;br /&gt;
* [[xfolk-jacobian | jacobian]]&lt;br /&gt;
* [[xfolk-julian-bez | julian-bez]]&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
The following implementations have been developed which generate xFolk. If you have an xFolk 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;
* [http://de.lirio.us de.lirio.us] currently publishes its bookmarks using xFolk 0.4 (the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of description).&lt;br /&gt;
* [http://dev.blogmarks.net/wiki/BlogSync blogmarks] currently exports bookmarks to blogs in xFolk 0.4 (scroll down to the export example on the page; the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;).&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;
* [[rel-tag|RelTag]]&lt;br /&gt;
&lt;br /&gt;
=== Informative References ===&lt;br /&gt;
* [http://thecommunityengine.com/home/archives/xfolk articles about xFolk]&lt;br /&gt;
* [http://thecommunityengine.com/home/archives/tags/microformats articles about the business value of microformats]&lt;br /&gt;
* [http://gataga.com gataga social bookmark search engine]&lt;br /&gt;
* [http://johnvey.com/features/deliciousdirector/ an ajax based interface for del.icio.us]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Social_bookmarking social bookmarking defined at wikipedia]&lt;br /&gt;
&lt;br /&gt;
=== Similar Work ===&lt;br /&gt;
* [[hreview | hReview]]&lt;br /&gt;
&lt;br /&gt;
== Work in progress ==&lt;br /&gt;
Although this specification has recently begun to stabilize, it is still a work in progress.  All changes since the last iteration have been motivated by implementation experience.  Further changes will also most likely be motivated by the desire to ease implementation. &lt;br /&gt;
&lt;br /&gt;
=== Changes since xFolk 0.4 ===&lt;br /&gt;
The class attribute value &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; was changed to &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; to better conform with other microformat usage so that it would be more natural for microformats developers to implement.  One other change has been to allow use of multiple elements of class extended based on some use cases discovered in implementation.&lt;br /&gt;
&lt;br /&gt;
=== Future directions ===&lt;br /&gt;
There are several extensions one might imagine for xFolk.  Frequently, these extensions are best achieved by combining xFolk with another microformat.  For instance, one might want to indicate his or her evaluation of the bookmarked item.  This might be achieved by using [[vote-links | Vote Links]] or [[hreview | hReview]] with xFolk.&lt;br /&gt;
&lt;br /&gt;
A companion format called &amp;quot;xFolk definition&amp;quot; is under development.  xFolk definition will provide a means of explicitly defining the tags used in social bookmarks.&lt;br /&gt;
&lt;br /&gt;
== Discussions ==&lt;br /&gt;
&lt;br /&gt;
=== Q&amp;amp;A ===&lt;br /&gt;
* If you have any questions about xFolk, check the [[xfolk-faq|xFolk 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 [[xfolk-issues | xFolk issues]] document.&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=xfolk&amp;diff=767</id>
		<title>xfolk</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=xfolk&amp;diff=767"/>
		<updated>2005-07-08T20:50:48Z</updated>

		<summary type="html">&lt;p&gt;Bud: /* xFolk */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
= xFolk =&lt;br /&gt;
&lt;br /&gt;
xFolk is a simple and open format for publishing collections of bookmarks. It better enables services for improving user experience and sharing data.  xFolk may be embedded in (X)HTML, Atom, RSS, and arbitrary XML. It is one of several open [[microformats|microformat]] standards.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Draft Specification ==&lt;br /&gt;
&lt;br /&gt;
=== Editor ===&lt;br /&gt;
[http://thecommunityengine.com/ Bud Gibson], [http://thecommunityengine.com The Community Engine]&lt;br /&gt;
&lt;br /&gt;
=== Authors ===&lt;br /&gt;
* [http://thecommunityengine.com/ Bud Gibson], [http://thecommunityengine.com The Community Engine]&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;
=== Inspiration and Acknowledgments ===&lt;br /&gt;
Thanks to: [http://www.cnbc.cmu.edu/~plaut/ David Plaut] who introduced me to the idea that items may partially belong to many categories at once.  More recently, thanks to: [http://tantek.com/ Tantek Çelik], [http://epeus.blogspot.com/ Kevin Marks], [http://steve.osdir.com/ Steve Mallet], [http://hybernaut.com/ Brian DelVecchio], and [http://blogmarks.net François Hodierne] who have contributed to the development of xFolk with thoughtful critiques and implementations.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Social bookmarking services let users save and tag bookmarks to share with other users.  Over the past year, the number of these services has mushroomed, with popular examples including: [http://del.icio.us del.icio.us], [http://furl.com furl], [http://de.lirio.us de.lirio.us], and [http://blogmarks.net blogmarks].  &lt;br /&gt;
&lt;br /&gt;
Lack of an open, interoperable data standard is a major issue in using social bookmarking services.  An open standard would make it possible to easily collect social bookmark data and remix it to invent new services along the lines of  [http://gataga.com gataga]'s experimental bookmark search engine.  An open standard would also make it possible to write javascripts that work across services [http://johnvey.com/features/deliciousdirector/ as some currently do for del.icio.us], enabling across-the-board improvements in user experience.&lt;br /&gt;
&lt;br /&gt;
xFolk is an open social bookmarking standard that aims to achieve both benefits.  Social bookmarking services that adopt xFolk will continue to differentiate themselves with data services.  But, the data itself will be easy to manipulate by third party scripts and easy to share.  As a result, bookmarking services will be able to offer a wider array of options to their users at low cost and focus on what truly differentiates them.&lt;br /&gt;
&lt;br /&gt;
== Semantic XHTML Design Principles ==&lt;br /&gt;
{{SemanticXHTMLDesignPrinciples}}&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
Extensive analysis of social bookmarking services and linkblogs, reported on here, here, here, and here, reveals that the data published by both bookmarking services and '''many''' different linkblogs are described by the following implied schema:&lt;br /&gt;
&lt;br /&gt;
* A bookmarked or tagged link.&lt;br /&gt;
* A title for the entry.&lt;br /&gt;
* Tags for the link.&lt;br /&gt;
* An extended description or summary of the link.&lt;br /&gt;
&lt;br /&gt;
As demonstrated in early iterations of the xFolk standard, this general schema can be translated into markup by:&lt;br /&gt;
&lt;br /&gt;
# creating a container element for each entry of class &amp;lt;code&amp;gt;xfolkentry&amp;lt;/code&amp;gt;, &lt;br /&gt;
# using an &amp;lt;a&amp;gt; element for the bookmarked or tagged link of class &amp;lt;code&amp;gt;taggedlink&amp;lt;/code&amp;gt;, &lt;br /&gt;
# using title attribute for the tagged link &amp;lt;a&amp;gt; element, if it exists, as the entry title, otherwise using the element value,&lt;br /&gt;
# using [[reltag|RelTag]] for the tags, and&lt;br /&gt;
# using a container element of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;, such as &amp;amp;lt;p&amp;gt;, for any extended description or summary.&lt;br /&gt;
&lt;br /&gt;
A given xFolk entry will always contain a tagged link including a title with all other elements optional.  Entries may have more than one tag as well as more than one element of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;.  Multiple elements of class &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; are ordered by default document order. Semantic elements within xFolk entries may be nested at arbitray depths.&lt;br /&gt;
&lt;br /&gt;
Many social bookmarking systems exist, each with its own markup conventions.  Further, many people are already publishing personal link blogs.  xFolk is designed with ease of adapting to these current practices as a primary goal.  Therefore, few assumptions are made as to the exact kinds of elements used for an xFolk entry.  Rather, the work of defining semantics is left entirely to the class and rel (in the case of [[reltag]]) attribute values.&lt;br /&gt;
&lt;br /&gt;
It is expected that developers will use [http://www.w3.org/TR/xpath XPath] or equivalent syntax in accessing xFolk entry elements.  a requirement for XPath is that the (X)HTML document be well-formed but not necessarily valid.  Thus, while undesirable, it is possible to serviceably use xFolk in an (X)HTML document that does not validate.&lt;br /&gt;
&lt;br /&gt;
=== XMDP Profile ===&lt;br /&gt;
&lt;br /&gt;
See the [[xfolk-XMDP|xFolk profile]] for the [http://gmpg.org/xmdp XMDP] profile of xFolk.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Here is a sample bookmark as displayed in [http://del.icio.us del.icio.us]'s standard markup.  Lines where the value of elements' class attributes must change to conform to xFolk are marked with a comment at the end.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;amp;lt;div class=“post”&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“delLink” href=“http://www.sifry.com/alerts/archives/000306.html”&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
      Sifry's Alerts: Technorati launches Related Tags&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt; &lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“extended”&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    Ever wanted to see what posts are related to other posts, what tags &lt;br /&gt;
    are related to others? Now you can! Just check under the Tag &lt;br /&gt;
    description on most tag pages, like this one, or this one, and you'll&lt;br /&gt;
    see the patterns. Can you smell the emergence?&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“meta”&amp;amp;gt;&lt;br /&gt;
    to&lt;br /&gt;
    &amp;amp;lt;a class=“delNav” href=“/fpgibson/folksonomy”&amp;amp;gt;folksonomy&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“delNav” href=“/fpgibson/technorati”&amp;amp;gt;technorati&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!--will change--&amp;gt;&lt;br /&gt;
    ... &amp;amp;lt;a class=“delNav” href=“/url/cbcabf7de070fdb46598ee679367be49”&amp;amp;gt;&lt;br /&gt;
    and 1 other person&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    ... on 2005-04-09&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The equivalent in xFolk is as follows.  Comments are placed at the end of lines where class attribute changes were required. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;amp;lt;div class=“xfolkentry”&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;a class=“taggedlink” href=“http://www.sifry.com/alerts/archives/000306.html”&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
      Sifry's Alerts: Technorati launches Related Tags&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt; &lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=&amp;quot;description&amp;quot;&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    Ever wanted to see what posts are related to other posts, what tags &lt;br /&gt;
    are related to others? Now you can! Just check under the Tag &lt;br /&gt;
    description on most tag pages, like this one, or this one, and you'll&lt;br /&gt;
    see the patterns. Can you smell the emergence?&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=“meta”&amp;amp;gt;&lt;br /&gt;
    to&lt;br /&gt;
    &amp;amp;lt;a rel=“tag” href=“/fpgibson/folksonomy”&amp;amp;gt;folksonomy&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    &amp;amp;lt;a rel=“tag” href=“/fpgibson/technorati”&amp;amp;gt;technorati&amp;amp;lt;/a&amp;amp;gt; &amp;lt;!-- changed --&amp;gt;&lt;br /&gt;
    ... &amp;amp;lt;a class=“delNav” href=“/url/cbcabf7de070fdb46598ee679367be49”&amp;amp;gt;&lt;br /&gt;
    and 1 other person&lt;br /&gt;
    &amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
    ... on 2005-04-09&lt;br /&gt;
  &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Converting markup to be conformant with xFolk is almost always this easy.  The advantage of xFolk is that it provides one set of class attributes that can be reused across all services and link blogs, almost always with no loss of granularity.  The next section presents several more examples to illustrate this point.&lt;br /&gt;
&lt;br /&gt;
== Many more examples ==&lt;br /&gt;
&lt;br /&gt;
We have numerous examples to help developers incorporate xFolk into their sites.&lt;br /&gt;
&lt;br /&gt;
=== In the wild ===&lt;br /&gt;
&lt;br /&gt;
These are real live examples of functioning systems that publish bookmarks in xFolk.  These 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 publish using xFolk, 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;
* [http://de.lirio.us de.lirio.us] currently publishes its bookmarks using xFolk 0.4 (the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of description).&lt;br /&gt;
* [http://dev.blogmarks.net/wiki/BlogSync blogmarks] currently exports bookmarks to blogs in xFolk 0.4 (scroll down to the export example on the page; the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;).&lt;br /&gt;
* [http://thecommunityengine.com The Community Engine] uses xFolk 0.4 (the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in palce of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;) for its [http://thecommunityengine.com/home main entries] and for its [http://thecommunityengine.com/webcites republished bookmarks].&lt;br /&gt;
&lt;br /&gt;
=== Additional social bookmarking services ===&lt;br /&gt;
&lt;br /&gt;
This example illustrates how xFolk may be applied to one additional service:&lt;br /&gt;
&lt;br /&gt;
* [[xfolk-scuttle | scuttle]]&lt;br /&gt;
&lt;br /&gt;
=== Link blogs ===&lt;br /&gt;
&lt;br /&gt;
Social bookmarking services are only the most recent examples of people publishing links.  Link blogs have been around almost since the beginning of blogging.  They represent somewhat more of a challenge for xFolk because their markup tends to be less semantic from the outset.  The following examples illustrate some particular challenges and how they can be overcome.&lt;br /&gt;
&lt;br /&gt;
* [[xfolk-kottke | kottke]]&lt;br /&gt;
* [[xfolk-pollas | pollas]]&lt;br /&gt;
* [[xfolk-jacobian | jacobian]]&lt;br /&gt;
* [[xfolk-julian-bez | julian-bez]]&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
The following implementations have been developed which generate xFolk. If you have an xFolk 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;
* [http://de.lirio.us de.lirio.us] currently publishes its bookmarks using xFolk 0.4 (the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of description).&lt;br /&gt;
* [http://dev.blogmarks.net/wiki/BlogSync blogmarks] currently exports bookmarks to blogs in xFolk 0.4 (scroll down to the export example on the page; the class attribute &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; is used in place of &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;).&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;
* [[rel-tag|RelTag]]&lt;br /&gt;
&lt;br /&gt;
=== Informative References ===&lt;br /&gt;
* [http://thecommunityengine.com/home/archives/xfolk articles about xFolk]&lt;br /&gt;
* [http://thecommunityengine.com/home/archives/tags/microformats articles about the business value of microformats]&lt;br /&gt;
* [http://gataga.com gataga social bookmark search engine]&lt;br /&gt;
* [http://johnvey.com/features/deliciousdirector/ an ajax based interface for del.icio.us]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Social_bookmarking social bookmarking defined at wikipedia]&lt;br /&gt;
&lt;br /&gt;
=== Similar Work ===&lt;br /&gt;
* [[hreview | hReview]]&lt;br /&gt;
&lt;br /&gt;
== Work in progress ==&lt;br /&gt;
Although this specification has recently begun to stabilize, it is still a work in progress.  All changes since the last iteration have been motivated by implementation experience.  Further changes will also most likely be motivated by the desire to ease implementation. &lt;br /&gt;
&lt;br /&gt;
=== Changes since xFolk 0.4 ===&lt;br /&gt;
The class attribute value &amp;lt;code&amp;gt;extended&amp;lt;/code&amp;gt; was changed to &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; to better conform with other microformat usage so that it would be more natural for microformats developers to implement.  One other change has been to allow use of multiple elements of class extended based on some use cases discovered in implementation.&lt;br /&gt;
&lt;br /&gt;
=== Future directions ===&lt;br /&gt;
There are several extensions one might imagine for xFolk.  Frequently, these extensions are best achieved by combining xFolk with another microformat.  For instance, one might want to indicate his or her evaluation of the bookmarked item.  This might be achieved by using [[vote-links | Vote Links]] or [[hreview | hReview]] with xFolk.&lt;br /&gt;
&lt;br /&gt;
A companion format called &amp;quot;xFolk definition&amp;quot; is under development.  xFolk definition will provide a means of explicitly defining the tags used in social bookmarks.&lt;br /&gt;
&lt;br /&gt;
== Discussions ==&lt;br /&gt;
&lt;br /&gt;
=== Q&amp;amp;A ===&lt;br /&gt;
* If you have any questions about xFolk, check the [[xfolk-faq|xFolk 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 [[xfolk-issues | xFolk issues]] document.&lt;/div&gt;</summary>
		<author><name>Bud</name></author>
	</entry>
</feed>