http://microformats.org/wiki/api.php?action=feedcontributions&user=AndyMabbett&feedformat=atomMicroformats Wiki - User contributions [en]2024-03-28T08:08:17ZUser contributionsMediaWiki 1.38.4http://microformats.org/wiki/index.php?title=User:TobyInk/hcalendar-1.1&diff=26147User:TobyInk/hcalendar-1.12008-03-04T10:30:35Z<p>AndyMabbett: Discussion appears to have been bypassed (& typo in original comment)</p>
<hr />
<div>(I am aware of the existence of [[hcalendar-brainstorming]] and [[htask]]. This is intended to be more of a formal-style document, representing a draft replacement for the current [[hcalendar]] spec, mostly aimed at filling in areas where the current spec is incomplete or ambiguous, rather than adding newly requested functionality.)<br />
<br />
:Rather than replacing the current spec, we can iterate on it. If there are areas that you feel are incomplete or ambiguous please post them to a wiki page and as a community we can sort them out and edit the spec together. Some of these idea might have been discussed and dropped previously for various reasons which might not be documented or are buried somewhere. Getting everyone's thoughts onto a page were we can discuss this and find the reference will save everyone time and make for a better result in the end. [[User:Brian|Brian]]<br />
<br />
:This user page is now being referenced on "live" pages (e.g. [http://microformats.org/wiki?title=hcalendar-implementations&diff=next&oldid=26084]). Discussion appears to have been bypassed. [[User:AndyMabbett|Andy Mabbett]] 02:30, 4 Mar 2008 (PST)<br />
<br />
<h1>hCalendar <small>1.1</small></h1><br />
http://www.boogdesign.com/images/buttons/microformat_hcalendar.png<br />
<br />
'''This is a DRAFT version of an update to the [[hCalendar]] spec.'''<br />
<br />
hCalendar is a simple, open, distributed calendaring and events format, based on the iCalendar standard ([http://www.ietf.org/rfc/rfc2445.txt RFC2445]), suitable for embedding in HTML or XHTML, Atom, RSS, and arbitrary XML. hCalendar is one of several open [[microformats|microformat]] standards.<br />
<br />
Want to get started with writing an [[hcalendar|hCalendar]] event? Use the [http://microformats.org/code/hcalendar/creator hCalendar creator] to write up an event and publish it, or follow the [[hcalendar-authoring|hCalendar authoring tips]] to add hCalendar mark-up to your page of upcoming events or events you mention in blog posts, wikis, etc.<br />
<br />
__TOC__<br />
<br />
== Specification ==<br />
<br />
; Editor : [http://tobyinkster.co.uk Toby Inkster]<br />
; Authors : [http://tantek.com/ Tantek Çelik] ([http://technorati.com Technorati, Inc])<br />
: [http://suda.co.uk/ Brian Suda]<br />
: [http://tobyinkster.co.uk Toby Inkster]<br />
<br />
=== Copyright ===<br />
Per the public domain release on the authors' user pages ([[User:Tantek|Tantek Çelik]], [[User:Brian|Brian Suda]]) this specification is released into the public domain.<br />
<br />
{{MicroFormatPublicDomainContributionStatement}}<br />
<br />
=== Patents ===<br />
{{MicroFormatPatentStatement}}<br />
<br />
=== Inspiration and Acknowledgments ===<br />
Thanks to:<br />
* Adam Bosworth for leading the [http://wiki.oreillynet.com/foocamp04/index.cgi?HTMLForCalendars FOO Camp 2004 HTML For Calendars presentation] which brought together a critical mass of interested parties.<br />
<br />
== Introduction ==<br />
The iCalendar standard ([http://www.ietf.org/rfc/rfc2445.txt RFC2445]), has been broadly interoperably implemented (e.g. Apple's "iCal" application built into MacOSX).<br />
<br />
In addition, bloggers often discuss events on their blogs -- upcoming events, write-ups of past events, etc. With just a tad bit of structure, bloggers can discuss events in their blog(s) in such a way that spiders and other aggregators can retrieve such events, automatically convert them to iCalendar, and use them in any iCalendar application or service.<br />
<br />
This specification introduces the '''hCalendar''' format, which is a representation of a subset of the aforementioned iCalendar standard, in semantic HTML. Bloggers can both embed hCalendar events and todo items directly in their web pages, and style them with CSS to make them appear as desired. In addition, hCalendar enables applications to retrieve information about such events directly from web pages without having to reference a separate file.<br />
<br />
{{rfc-2119-intro}}<br />
<br />
== Semantic XHTML Design Principles ==<br />
<br />
{{semantic-xhtml-design-principles}}<br />
<br />
For practical implementations, note that Internet Explorer's support for styling <code><nowiki><abbr></nowiki></code> elements is poor, and might require wrapper elements.<br />
<br />
== Format ==<br />
=== In General ===<br />
The iCalendar standard ([http://www.ietf.org/rfc/rfc2445.txt RFC2445]) forms the basis of hCalendar.<br />
<br />
The basic format of hCalendar is to use iCalendar object/property names in lower-case for class names, and to map the nesting of iCalendar objects directly into nested XHTML elements.<br />
<br />
The VJOURNAL and VTIMEZONE components of iCalendar are explicitly not supported as part of hCalendar. hCalendar authors {{should-not}} use classes "vjournal" or "vtimezone" within an hCalendar context; parsers {{must-not}} attempt to interpret them if conforming to this version of the specification. [[hAtom]] {{may}} be used as an alternative to VJOURNAL for those authors wishing to publish journal information. VTIMEZONE has no suggested direct replacement: authors {{should}} restrict themselves to publishing dates in [http://www.w3.org/TR/NOTE-datetime W3CDTF format] using only well-known timezones.<br />
<br />
=== Root Class Name ===<br />
The root class name for hCalendar is "vcalendar". An element with a class name of "vcalendar" is itself called an ''hCalendar''. <br />
<br />
The root class name for events is "vevent". An element with a class name of "vevent" is itself called an ''hCalendar event''. The root class name for todo items is "vtodo". An element with a class name of "vtodo" is itself called an ''hCalendar todo''. The root class name for todo items is "valarm". An element with a class name of "valarm" is itself called an ''hCalendar alarm''. The root class name for todo items is "vfreebusy". An element with a class name of "vfreebusy" is itself called an ''hCalendar freebusy''.<br />
<br />
For authoring convenience, both all of the above are treated as root class names for parsing purposes. If a document contains elements with class names "vevent", "vtodo", "valarm" or "vfreebusy", but not "vcalendar", the entire document has an implied "vcalendar" context.<br />
<br />
=== Properties and Sub-properties ===<br />
The properties of an hCalendar are represented by elements inside the hCalendar. Elements with class names of the listed properties represent the values of those properties. Some properties have sub-properties, and those are represented by elements inside the elements for properties.<br />
<br />
==== Property List for hCalendars ====<br />
<br />
* vcalendar ?<br />
** ''vevent'' (hCalendar event)*<br />
** ''vtodo'' (hCalendar todo)*<br />
** ''valarm'' (hCalendar alarm)*<br />
** ''vfreebusy'' (hCalendar freebusy)*<br />
<br />
Although each component of an hCalendar is optional and {{may}} occur more than once, an hCalendar {{should}} contain at least one item.<br />
<br />
===== Key =====<br />
Based on Perl's [http://www.perl.com/doc/manual/html/pod/perlre.html standard quantifiers]:<br />
{| border="1" cellpadding="2"<br />
| '''bold''' {1} || {{must}} be present exactly once<br />
|- <br />
| ''italic''<nowiki>*</nowiki> || {{optional}}, and {{may}} occur more than once <br />
|- <br />
| + || {{must}} be present, and {{may}} occur more than once <br />
|- <br />
| ? || {{optional}}, but {{must-not}} occur more than once <br />
|- <br />
| [square brackets] || list of common values <br />
|- <br />
| (parentheses) || data format <br />
|-<br />
| <nowiki>A | B</nowiki> || A or B (not both)<br />
|- <br />
| # || comment <br />
|- <br />
| ! || awaiting documentation <br />
|}<br />
<br />
==== Property List for hCalendar Events ====<br />
<br />
hCalendar event properties<br />
<br />
* '''vevent''' {1}<br />
** '''dtstart''' ([[iso-8601|ISO date]]) {1}<br />
** '''summary''' {1}<br />
** class ? ["PUBLIC", "PRIVATE", "CONFIDENTIAL"]<br />
** created (ISO date) ? <br />
** description ?<br />
** dtend (ISO date) | duration (ISO date duration) ?<br />
** dtstamp (ISO date) ?<br />
** geo ([[geo]]) ?<br />
** last-modified (ISO date) ?<br />
** location (text | [[geo]] | [[adr]] | [[hCard]]) ?<br />
** organizer (text | [[hCard]]) ?<br />
** priority ? ["LOW", "MEDIUM", "HIGH" or integer from 0 to 9]<br />
** recurrence-id (link) ?<br />
** sequence (integer) ?<br />
** status ? ["TENTATIVE", "CONFIRMED", "CANCELLED"]<br />
** transp ? ["OPAQUE", "TRANSPARENT"]<br />
** uid (link) ?<br />
** url (link) ?<br />
** ''attendee'' (text | [[hCard]]) *<br />
** ''contact'' (text | [[hCard]]) *<br />
** ''comment'' *<br />
** ''exdate'' (ISO date) *<br />
** ''exrule'' (see the section on Recurrence below) *<br />
*** '''freq''' {1} ["SECONDLY", "MINUTELY", "HOURLY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY"]<br />
*** until (ISO date) | count (integer) ?<br />
*** interval ?<br />
*** ''bysecond'' *<br />
*** ''byminute'' *<br />
*** ''byhour'' *<br />
*** ''byday'' *<br />
*** ''bymonthday'' *<br />
*** ''byyearday'' *<br />
*** ''byweekno'' *<br />
*** ''bymonth'' *<br />
*** ''bysetpos'' *<br />
*** wkst ?<br />
** ''rdate'' (ISO date) *<br />
** ''related-to'' (link) *<br />
** ''resources'' *<br />
** ''rrule'' (see the section on Recurrence below) *<br />
*** (as per "exrule")<br />
** ''valarm'' (hCalendar alarm) *<br />
<br />
Additionally an hCalendar event {{may}} contain zero or more links marked up as [[rel-tag]] corresponding to the CATEGORY property from iCalendar; and zero or more links marked up as [[rel-enclosure]] corresponding to the ATTACH property.<br />
<br />
==== Property List for hCalendar Todos ====<br />
<br />
hCalendar todo items have the same properties as hCalendar events, except that they {{should-not}} contain "transp" or "dtend" properties. The following additional properties are defined:<br />
<br />
* '''vtodo''' {1}<br />
** due (ISO date) ?<br />
** percent-complete ?<br />
** completed (ISO date) ?<br />
<br />
Allowed values for the "status" property are instead: "NEEDS-ACTION", "COMPLETED", "IN-PROCESS", "CANCELLED".<br />
<br />
As per hCalendar events, [[rel-tag]] and [[rel-enclosure]] links {{may}} be used.<br />
<br />
==== Property List for hCalendar Alarms ====<br />
<br />
* '''valarm''' {1}<br />
** '''summary''' {1}<br />
** '''trigger''' (ISO date duration) {1}<br />
** action ? ["AUDIO", "DISPLAY", "EMAIL", "PROCEDURE"]<br />
** description ?<br />
** duration (ISO date duration) ?<br />
** repeat (integer) ?<br />
** ''attendee'' (text | [[hCard]]) *<br />
<br />
[[rel-enclosure]] links {{may}} be used, but [[rel-tag]] {{should-not}}.<br />
<br />
==== Property List for hCalendar Freebusys ====<br />
<br />
* '''vfreebusy''' {1}<br />
** '''summary''' {1}<br />
** '''freebusy''' +<br />
** comment ?<br />
** dtend (ISO date) ?<br />
** dtstamp (ISO date) ?<br />
** dtstart (ISO date) ?<br />
** duration (ISO date duration) ?<br />
** organizer (text | [[hCard]]) ?<br />
** uid (link) ?<br />
** ''attendee'' (text | [[hCard]]) *<br />
** ''contact'' (text | [[hCard]]) *<br />
** ''url'' (link) *<br />
<br />
[[rel-tag]] and [[rel-enclosure]] links {{should-not}} be included.<br />
<br />
=== Case-Sensitivity of Pre-Defined Values ===<br />
<br />
Certain properties have a list of possible values, defined in the iCalendar specification in ALL-CAPS. For example, the "transp" property has a value of either "OPAQUE" or "TRANSPARENT". hCalendar authors {{may}} use lower or mixed case for these values. hCalendar parsers {{must}} convert these to upper case if exporting as iCalendar.<br />
<br />
=== Dates and Times ===<br />
<br />
Dates and times {{must}} be expressed in the [http://www.w3.org/TR/NOTE-datetime W3C datetime format]. Authors {{may}} take advantage of the [[abbr-design-pattern|ABBR design pattern]], but {{should}} take into account [[accessibility-issues#abbr-design-pattern|accessibility issues]].<br />
<br />
==== Durations ====<br />
<br />
Durations {{must}} be expressed as ISO 8601 durations of time, as per RFC 2445. Some examples:<br />
<br />
<pre>The <span class="summary">management meeting</span> with last approximately<br />
<abbr class="duration" title="PT2H30M">two and a half hours</abbr>.</pre><br />
<br />
<pre>This <abbr title="2008-06-23" class="dtstart">summer</abbr>, we begin our<br />
<abbr class="duration" title="P13W">season</abbr> of light entertainment.</pre><br />
<br />
=== Links ===<br />
<br />
When a class is found indicating a property of type "link", then it {{should}} be parsed as follows:<br />
<br />
# If the element is an &lt;a> element, the "href" attribute is used as the value;<br />
# Otherwise, if the element is an &lt;img> element, the "src" attribute is used as the value;<br />
# Otherwise, if the element is an &lt;object> element, the "data" attribute is used as the value;<br />
# If all else fails, the element is interpreted as if it were a non-link element, with the textual content of the element being treated as the value.<br />
<br />
==== UID ====<br />
<br />
As a special case, the UID property is parsed as follows:<br />
<br />
# If the element with class "uid" has a fragment identifier (that is, if it has an "id" attribute or is <a name>), then the value of the UID property {{must}} be set to the absolute URL of that fragment;<br />
# Otherwise the element with class "uid" is parsed using the procedure described in the previous section on links in general.<br />
# If there is no element with class "uid", then the element bearing the root class name (e.g. "vevent" or "vtodo") is checked. If that element has a fragment identifier (that is, if it has an "id" attribute or is <a name>), then the value of the UID property {{must}} be set to the absolute URL of that fragment.<br />
# If all else fails, an hCalendar parser {{may}} choose to generate its own UID for the item. Reasonable care {{must}} be taken to ensure the uniqueness of this UID. Authors {{should not}} rely on this behaviour.<br />
# Otherwise, the item has no UID value.<br />
<br />
==== Related-To Links ====<br />
<br />
The value of the related-to property {{must}} be a link, and {{should}} link to another hCalendar event or todo item. If the element with the "related-to" class is &lt;a> or &lt;area>, then it {{may}} take a rel attribute with any of the following values:<br />
<br />
* vcalendar-parent<br />
* vcalendar-child<br />
* vcalendar-sibling<br />
<br />
These correspond to the PARENT, CHILD and SIBLING values of the RELTYPE sub-property.<br />
<br />
=== Recurrence ===<br />
<br />
Recurrence rules and exclusion rules are complex. hCalendar parsers are not required to support them, and {{may}} choose to ignore the entire contents of "rrule" and "exrule" properties. But if "rrule" and "exrule" are supported, then they {{must}} be parsed according to the guidelines in this section of the specification.<br />
<br />
That is, parsers {{should}} aim to implement "rrule" and "exrule" entirely, or not at all.<br />
<br />
==== A Worked Example ====<br />
<br />
The following example iCalendar recurrence rule is given in RFC 2445:<br />
<br />
<pre><br />
DTSTART;TZID=US-Eastern:19970105T083000<br />
RRULE:FREQ=YEARLY;INTERVAL=2;BYMONTH=1;BYDAY=SU;BYHOUR=8,9;<br />
BYMINUTE=30<br />
</pre><br />
<br />
This represents an event which occurs every Sunday in January at 08:30 and 09:30, starting on 5 January 1997 and only occurring on odd-numbered years. Here is an example of how that might be translated into HTML:<br />
<br />
<pre><br />
<p>Our organisation has been offering a series of summer lectures since<br />
<abbr class="dtstart" title="19970105T083000">January 1997</abbr>. They<br />
are<br />
<span class="rrule"><br />
held <span class="freq">yearly</span>,<br />
every <span class="interval">2</span>nd year (1999, 2001, etc),<br />
every <span class="byday">Sunday</span><br />
in January <abbr class="bymonth" title="1" style="display:none"></abbr><br />
at <span class="byhour">8</span>:<span class="byminute">30</span> and<br />
repeated at <span class="byhour">9</span>:30.<br />
</span><br />
</p><br />
</pre><br />
<br />
This might be rendered as:<br />
<div style="margin:1em 4em 1.5em;padding:0.5em;border:1px solid silver;background:#f8f8f8;font-size:120%"><br />
<p>Our organisation has been offering a series of summer lectures since<br />
<abbr class="dtstart" title="19970105T083000">January 1997</abbr>. They<br />
are<br />
<span class="rrule"><br />
held <span class="freq">yearly</span>,<br />
every <span class="interval">2</span>nd year (1999, 2001, etc),<br />
every <span class="byday">Sunday</span><br />
in January <abbr class="bymonth" title="1" style="display:none"></abbr><br />
at <span class="byhour">8</span>:<span class="byminute">30</span> and<br />
repeated at <span class="byhour">9</span>:30.<br />
</span><br />
</p><br />
</div><br />
<br />
==== Notes ====<br />
<br />
# The examples above show only the DTSTART and RRULE properties and do not represent an entire VEVENT (which would require an element with class "vevent", and one with class "summary").<br />
# For further information and allowed values, see section 4.3.10 of RFC 2445.<br />
# Although iCalendar doesn't allow the "BY*" properties to be repeated (BYHOUR=8;BYHOUR=9) it does allow a single "BY*" property to contain a comma-separated list of numbers (BYHOUR=8,9). When an hCalendar recurrence rule specifies a repeated "BY*" property, parsers {{must}} interpret this as being equivalent to a comma-separated list in iCalendar.<br />
# RFC 2445 section 4.3.10 defines the tokens "SECONDLY" / "MINUTELY" / "HOURLY" / "DAILY" / "WEEKLY" / "MONTHLY" / "YEARLY" as possible values for FREQ. hCalendar allows these to be specified in a case-insensitive manner. Parsers {{should}} convert them to upper-case if exporting as an iCalendar file.<br />
# hCalendar recurrence rules {{may}} use tokens longer than two characters to identify the day. Parsers {{must}} trim the token down to its first two non-whitespace characters and upper-case them if wishing to convert them to iCalendar BYDAY tokens.<br />
# hCalendar recurrence rules {{should-not}} include multiple occurrences of "until" or "count" sub-properties, and {{should-not}} specify both an "until" and a "count" sub-property for the same rule. If a rule violates this requirement, parsers {{must}} use only the first "until" or "count" sub-property and {{must}} ignore subsequent uses of "until" or "count".<br />
<br />
==== Simplified Notation ====<br />
<br />
In the notation above, an element with class "freq" is a required child element of "rrule" and "exrule". When a parser encounters a recurrence rule with no "freq" specified, then the entire contents of the "rrule" or "exrule" element {{must}} be treated as a literal iCalendar RRULE or EXRULE. For example:<br />
<br />
<pre><p>Our organisation has been offering a series of summer lectures since<br />
<abbr class="dtstart" title="19970105T083000">January 1997</abbr>. They<br />
are held every second year (1999, 2001, etc), every Sunday in January at<br />
8:30 and repeated at 9:30.<br />
<abbr title="FREQ=YEARLY;INTERVAL=2;BYMONTH=1;BYDAY=SU;BYHOUR=8,9;BYMINUTE=30"<br />
class="rrule" style="display:none"></abbr><br />
</p></pre><br />
<br />
This allows authors to express complicated rules in more natural language without having to worry about how to map their language onto the various recurrance rule sub-properties.<br />
<br />
=== Nested Events and Todos ===<br />
<br />
As with [[hcard-parsing#nested_hCards|hCard]], events and todos {{may}} be nested:<br />
<br />
<pre><nowiki><br />
<div class="vevent"><br />
<h1 class="summary">Technology Conference</h1><br />
<p class="dtstart">2008-03-01</p><br />
<br />
<h2>Workshops</h2><br />
<ul><br />
<li class="vevent"><br />
<b class="summary">Microformats</b><br />
<abbr class="dtstart" title="2008-03-01T10:30:00Z">10:30am</abbr><br />
</li><br />
<li class="vevent"><br />
<b class="summary">RDFa</b><br />
<abbr class="dtstart" title="2008-03-01T11:30:00Z">11:30am</abbr><br />
</li><br />
<li class="vtodo"><br />
<b class="summary">Lunch</b><br />
<abbr class="dtstart" title="2008-03-01T12:45:00Z">12:45pm</abbr><br />
</li><br />
</ul><br />
</div><br />
</nowiki></pre><br />
<br />
The events and todos are to be parsed as independent items, with properties from the children not being applied to the parent, nor vice versa. The only thing a parser {{may}} infer from the nesting is the RELATED-TO property. However, if the items explicitly specify a "related-to" class, the explicit relation {{must}} override any implied relation.<br />
<br />
=== Nested hCards ===<br />
<br />
Certain properties, such as attendee {{may}} take an hCard as a value. In these cases, the "vcard" class {{must}} be on the same element as the hCalendar property.<br />
<br />
<pre><br />
YES: <div class="attendee vcard">...</div><br />
NO: <div class="attendee"><p class="vcard">...</p></div><br />
</pre><br />
<br />
[[hCard]] has an optional "role" property. If this role takes any of the following values (case-insensitive):<br />
<br />
* Chair<br />
* Req-Participant<br />
* Opt-Participant<br />
* Non-Participant<br />
<br />
then they are taken to correspond to the participation role parameter described in the iCalendar specification, section 4.2.16.<br />
<br />
=== Include Pattern ===<br />
<br />
The [[include-pattern|include pattern]] {{may}} be used within hCalendar mark-up to reference material elsewhere on the page.<br />
<br />
=== ABBR Pattern ===<br />
<br />
The [[abbr-design-pattern|ABBR design pattern]] {{may}} be used within hCalendar, but authors {{should}} take into account potential accessibility issues.<br />
<br />
== Examples ==<br />
<br />
=== Simple hCalendar Event ===<br />
<br />
Here is a sample event in an iCalendar:<br />
<pre><nowiki><br />
BEGIN:VCALENDAR<br />
PRODID:-//XYZproduct//EN<br />
VERSION:2.0<br />
BEGIN:VEVENT<br />
URL:http://www.web2con.com/<br />
DTSTART:20071005<br />
DTEND:20071020<br />
SUMMARY:Web 2.0 Conference<br />
LOCATION:Argent Hotel\, San Francisco\, CA<br />
END:VEVENT<br />
END:VCALENDAR<br />
</nowiki></pre><br />
<br />
and an equivalent event in hCalendar format with various elements optimized appropriately. See [[hcalendar-example1-steps]] for the derivation.<br />
<br />
<pre><nowiki><br />
<div class="vevent"><br />
<a class="url" href="http://www.web2con.com/">http://www.web2con.com/</a><br />
<span class="summary">Web 2.0 Conference</span>: <br />
<abbr class="dtstart" title="2007-10-05">October 5</abbr>-<br />
<abbr class="dtend" title="2007-10-20">19</abbr>,<br />
at the <span class="location">Argent Hotel, San Francisco, CA</span><br />
</div><br />
</nowiki></pre><br />
<br />
which could be displayed as:<br />
<br />
<div class="vevent" style="margin:1em 4em 1.5em;padding:0.5em;border:1px solid silver;background:#f8f8f8;font-size:120%"><br />
<span class="url">http://www.web2con.com/</span>&nbsp;<!-- note modified to account for idiosyncrasy of wiki software --><br />
<span class="summary">Web 2.0 Conference</span>: <br />
<abbr class="dtstart" title="2007-10-05">October 5</abbr>-<br />
<abbr class="dtend" title="2007-10-20">19</abbr>,<br />
at the <span class="location">Argent Hotel, San Francisco, CA</span><br />
</div><br />
<br />
Note that this is a '''live''' hCalendar microformat, which will be found on this page by parsers.<br />
<br />
=== Full hCalendar Example ===<br />
<br />
The following hCalendar example includes three events and a todo item. It makes use of nested hCalendar components, embedded hCards and recurrences.<br />
<br />
<pre><nowiki><br />
<div class="vcalendar"><br />
<br />
<div class="vevent"><br />
<h1 class="uid" id="xmas"><br />
<span class="summary">Christmas</span> Schedule<br />
</h1><br />
<abbr class="dtstart" title="0001-12-25" style="display:none"></abbr><br />
<p class="comment rrule"><span class="freq">Yearly</span><br />
period of festive merriment.</p><br />
<div class="attendee vcard"><br />
<b class="role"><br />
<abbr title="REQ-PARTICIPANT">Required for merriment:</abbr><br />
</b><br><br />
<span class="fn"><br />
<span class="honorific-prefix nickname">Santa</span><br />
<span class="given-name">Claus</span><br />
</span><br />
(<span class="adr><span class="region">North Pole</span></span>)<br />
</div><br />
<br />
<div class="vtodo"><br />
<h2 class="uid" id="shopping">Shopping</h2><br />
<abbr class="dtstart" title="2008-12-01">In December</abbr>, don't forget<br />
to <span class="summary">buy everyone their presents</span> before the<br />
shops shut on <abbr class="due" title="2008-12-24T16:00:00">Christmas<br />
Eve</abbr>!<br />
</div><br />
<br />
<div class="vevent"><br />
<h2 id="jones" class="uid summary">Jones' Christmas Lunch</h2><br />
<p class="comment">The Joneses have been having a wonderful lunch <br />
<abbr class="rrule" title="FREQ=YEARLY">every year</abbr> at<br />
<abbr class="dtstart" title="2003-12-25T13:00:00Z">1pm for the last<br />
few years</abbr>.</p><br />
<p><span class="attendee">Everyone</span>'s invited.</p><br />
</div><br />
</div><br />
<br />
<div class="vevent"><br />
<h2 class="summary">Boxing Day</h2><br />
<p class="comment"><br />
<abbr class="rrule" title="FREQ=YEARLY">Every year</abbr><br />
<abbr class="dtstart" title="0001-12-26">the day after</abbr><br />
<a class="related-to" href="#xmas" rel="vcalendar-sibling">Christmas</a><br />
is Boxing Day. Nobody knows quite why this day is called that.<br />
</p><br />
</div><br />
<br />
</div><br />
</nowiki></pre><br />
<br />
This might be transformed to iCalendar as:<br />
<br />
<pre><nowiki><br />
BEGIN:VCALENDAR<br />
BEGIN:VEVENT<br />
UID:<http://example.org/hcalendar#xmas><br />
SUMMARY:Christmas<br />
DTSTART:0001-12-25<br />
RRULE:FREQ=YEARLY<br />
COMMENT:Yearly period of festive merriment.<br />
ATTENDEE;ROLE=REQ-PARTICIPANT:Santa Claus<br />
RELATED-TO;REL-TYPE=CHILD:<http://example.org/hcalendar#shopping><br />
RELATED-TO;REL-TYPE=CHILD:<http://example.org/hcalendar#jones><br />
END:VEVENT<br />
BEGIN:VTODO<br />
UID:<http://example.org/hcalendar#shopping><br />
SUMMARY:buy everyone their presents<br />
DTSTART:2008-12-01<br />
DUE:2008-12-24T16:00:00<br />
RELATED-TO;REL-TYPE=PARENT:<http://example.org/hcalendar#xmas><br />
END:VTODO<br />
BEGIN:VEVENT<br />
UID:<http://example.org/hcalendar#jones><br />
SUMMARY:Jones' Christmas Lunch<br />
DTSTART:2003-12-25T13:00:00Z<br />
RRULE:FREQ=YEARLY<br />
COMMENT:The Joneses have been having a wonderful lunch every year at<br />
1pm for the last few years.<br />
ATTENDEE:Everyone<br />
RELATED-TO;REL-TYPE=PARENT:<http://example.org/hcalendar#xmas><br />
END:VEVENT<br />
BEGIN:VEVENT<br />
SUMMARY:Boxing Day<br />
DTSTART:0001-12-26<br />
RRULE:FREQ=YEARLY<br />
COMMENT:Every year the day after Christmas is Boxing Day. Nobody knows quite<br />
why this day is called that.<br />
RELATED-TO;REL-TYPE=SIBLING:<http://example.org/hcalendar#xmas><br />
END:VEVENT<br />
END:VCALENDAR<br />
</nowiki></pre><br />
<br />
The following vCard can also be extracted from it:<br />
<br />
<pre><nowiki><br />
BEGIN:VCARD<br />
FN:Santa Claus<br />
N:;Claus;;Santa;<br />
NICKNAME:Santa<br />
ROLE:REQ-PARTICIPANT<br />
ADR:;;;;North Pole;;<br />
END:VCARD<br />
</nowiki></pre><br />
<br />
== References ==<br />
=== Normative References ===<br />
* [http://www.w3.org/TR/2002/REC-xhtml1-20020801/ XHTML 1.0 SE]<br />
* [[hcard|hCard]]<br />
* [http://www.ietf.org/rfc/rfc2445.txt iCalendar RFC2445]<br />
* [[rfc-2119| RFC 2119]]<br />
* [[iso-8601|ISO8601]]<br />
<br />
=== Informative References ===<br />
* [http://w3.org/TR/REC-CSS1 CSS1]<br />
* [http://tantek.com/log/2004/09.html#hcalendar hCalendar term introduced and defined on the Web, 20040930]<br />
* [http://wiki.oreillynet.com/foocamp04/index.cgi?HTMLForCalendars FOO Camp 2004 HTML For Calendars presentation, 20040911]<br />
* [http://wiki.oreillynet.com/foocamp04/index.cgi?SimpleSemanticFormats FOO Camp 2004 Simple Semantic Formats presentation, 20040910]<br />
* [http://ietfreport.isoc.org/idref/draft-royer-ical-basic/ iCal-Basic (latest)] [http://www.faqs.org/ftp/pub/pub/internet-drafts/draft-royer-ical-basic-04.txt (draft 04)]<br />
* [http://www.w3.org/TR/NOTE-datetime W3C Note on Date and Time Formats]<br />
* [http://www.imc.org/pdi/ Internet Mail Consortium Personal Data Interchange vCard and vCalendar]<br />
* Contributed from http://developers.technorati.com/wiki/hCalendar<br />
<br />
==== Specifications That Use hCalendar ====<br />
* [[hreview|hReview]]<br />
<br />
==== Related Work ====<br />
* [http://lists.osafoundation.org/pipermail/ietf-calsify/ IETF-calsify archives]<br />
* [http://www.softwarestudio.org/iCal/2445Issues.html RFC2445 Issues List]<br />
* [http://ietf.webdav.org/calsify/ CALSIFY WG Links And Resources]<br />
<br />
=== Further Reading ===<br />
* [http://www.livejournal.com/users/jwz/444651.html jwz - Hula] (required reading)<br />
* [http://www.jwz.org/doc/groupware.html Groupware Bad by Jamie Zawinski] crystallizes the reason for hCalendar ('''emphasis''' added):<br />
<blockquote>Right now people can do that by publishing .ics files, but it's not trivial to do so, and it's work on the part of other people to look at them. '''If it's not HTML hanging off our friend's home page that can be viewed in any browser on a public terminal in a library, the bar to entry is too high and it's useless.'''</blockquote><br />
<br />
* [http://muddybranch.thejkgroup.com/ Jason Klemow's blog]<br />
* [http://weblog.infoworld.com/udell/2006/01/11.html#a1368 Moving forward with microformats] by [http://weblog.infoworld.com/udell Jon Udell] provides an hCalendar example and some discussion.<br />
* See also [http://www.technorati.com/cosmos/referer.html blogs discussing this page] and the [http://technorati.com/tags/hcalendar hCalendar tag]<br />
* [http://en.wikipedia.org/wiki/HCalendar Wikipedia article on hCalendar] (requires expansion)<br />
<br />
== Related Pages ==<br />
{{hcalendar-related-pages}}</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=User:TobyInk/hcalendar-1.1&diff=26087User:TobyInk/hcalendar-1.12008-03-04T10:26:29Z<p>AndyMabbett: spelling (NOTE: changes a class name); RFC 2119 templates</p>
<hr />
<div>(I am aware of the existence of [[hcalendar-brainstorming]] and [[htask]]. This is intended to be more of a formal-style document, representing a draft replacement for the current [[hcalendar]] spec, mostly aimed at filling in areas where the current spec is incomplete or ambiguous, rather than additing newly requested functionality.)<br />
<br />
:Rather than replacing the current spec, we can iterate on it. If there are areas that you feel are incomplete or ambiguous please post them to a wiki page and as a community we can sort them out and edit the spec together. Some of these idea might have been discussed and dropped previously for various reasons which might not be documented or are buried somewhere. Getting everyone's thoughts onto a page were we can discuss this and find the reference will save everyone time and make for a better result in the end. [[User:Brian|Brian]]<br />
<br />
<h1>hCalendar <small>1.1</small></h1><br />
http://www.boogdesign.com/images/buttons/microformat_hcalendar.png<br />
<br />
'''This is a DRAFT version of an update to the [[hCalendar]] spec.'''<br />
<br />
hCalendar is a simple, open, distributed calendaring and events format, based on the iCalendar standard ([http://www.ietf.org/rfc/rfc2445.txt RFC2445]), suitable for embedding in HTML or XHTML, Atom, RSS, and arbitrary XML. hCalendar is one of several open [[microformats|microformat]] standards.<br />
<br />
Want to get started with writing an [[hcalendar|hCalendar]] event? Use the [http://microformats.org/code/hcalendar/creator hCalendar creator] to write up an event and publish it, or follow the [[hcalendar-authoring|hCalendar authoring tips]] to add hCalendar markup to your page of upcoming events or events you mention in blog posts, wikis, etc.<br />
<br />
__TOC__<br />
<br />
== Specification ==<br />
<br />
; Editor : [http://tobyinkster.co.uk Toby Inkster]<br />
; Authors : [http://tantek.com/ Tantek Çelik] ([http://technorati.com Technorati, Inc])<br />
: [http://suda.co.uk/ Brian Suda]<br />
: [http://tobyinkster.co.uk Toby Inkster]<br />
<br />
=== Copyright ===<br />
Per the public domain release on the authors' user pages ([[User:Tantek|Tantek Çelik]], [[User:Brian|Brian Suda]]) this specification is released into the public domain.<br />
<br />
{{MicroFormatPublicDomainContributionStatement}}<br />
<br />
=== Patents ===<br />
{{MicroFormatPatentStatement}}<br />
<br />
=== Inspiration and Acknowledgments ===<br />
Thanks to:<br />
* Adam Bosworth for leading the [http://wiki.oreillynet.com/foocamp04/index.cgi?HTMLForCalendars FOO Camp 2004 HTML For Calendars presentation] which brought together a critical mass of interested parties.<br />
<br />
== Introduction ==<br />
The iCalendar standard ([http://www.ietf.org/rfc/rfc2445.txt RFC2445]), has been broadly interoperably implemented (e.g. Apple's "iCal" application built into MacOSX).<br />
<br />
In addition, bloggers often discuss events on their blogs -- upcoming events, write-ups of past events, etc. With just a tad bit of structure, bloggers can discuss events in their blog(s) in such a way that spiders and other aggregators can retrieve such events, automatically convert them to iCalendar, and use them in any iCalendar application or service.<br />
<br />
This specification introduces the '''hCalendar''' format, which is a representation of a subset of the aforementioned iCalendar standard, in semantic HTML. Bloggers can both embed hCalendar events and todo items directly in their web pages, and style them with CSS to make them appear as desired. In addition, hCalendar enables applications to retrieve information about such events directly from web pages without having to reference a separate file.<br />
<br />
{{rfc-2119-intro}}<br />
<br />
== Semantic XHTML Design Principles ==<br />
<br />
{{semantic-xhtml-design-principles}}<br />
<br />
For practical implementations, note that Internet Explorer's support for styling <code><nowiki><abbr></nowiki></code> elements is poor, and might require wrapper elements.<br />
<br />
== Format ==<br />
=== In General ===<br />
The iCalendar standard ([http://www.ietf.org/rfc/rfc2445.txt RFC2445]) forms the basis of hCalendar.<br />
<br />
The basic format of hCalendar is to use iCalendar object/property names in lower-case for class names, and to map the nesting of iCalendar objects directly into nested XHTML elements.<br />
<br />
The VJOURNAL and VTIMEZONE components of iCalendar are explicitly not supported as part of hCalendar. hCalendar authors {{should-not}} use classes "vjournal" or "vtimezone" within an hCalendar context; parsers {{must-not}} attempt to interpret them if conforming to this version of the specification. [[hAtom]] {{may}} be used as an alternative to VJOURNAL for those authors wishing to publish journal information. VTIMEZONE has no suggested direct replacement: authors {{should}} restrict themselves to publishing dates in [http://www.w3.org/TR/NOTE-datetime W3CDTF format] using only well-known timezones.<br />
<br />
=== Root Class Name ===<br />
The root class name for hCalendar is "vcalendar". An element with a class name of "vcalendar" is itself called an ''hCalendar''. <br />
<br />
The root class name for events is "vevent". An element with a class name of "vevent" is itself called an ''hCalendar event''. The root class name for todo items is "vtodo". An element with a class name of "vtodo" is itself called an ''hCalendar todo''. The root class name for todo items is "valarm". An element with a class name of "valarm" is itself called an ''hCalendar alarm''. The root class name for todo items is "vfreebusy". An element with a class name of "vfreebusy" is itself called an ''hCalendar freebusy''.<br />
<br />
For authoring convenience, both all of the above are treated as root class names for parsing purposes. If a document contains elements with class names "vevent", "vtodo", "valarm" or "vfreebusy", but not "vcalendar", the entire document has an implied "vcalendar" context.<br />
<br />
=== Properties and Sub-properties ===<br />
The properties of an hCalendar are represented by elements inside the hCalendar. Elements with class names of the listed properties represent the values of those properties. Some properties have sub-properties, and those are represented by elements inside the elements for properties.<br />
<br />
==== Property List for hCalendars ====<br />
<br />
* vcalendar ?<br />
** ''vevent'' (hCalendar event)*<br />
** ''vtodo'' (hCalendar todo)*<br />
** ''valarm'' (hCalendar alarm)*<br />
** ''vfreebusy'' (hCalendar freebusy)*<br />
<br />
Although each component of an hCalendar is optional and {{may}} occur more than once, an hCalendar {{should}} contain at least one item.<br />
<br />
===== Key =====<br />
Based on Perl's [http://www.perl.com/doc/manual/html/pod/perlre.html standard quantifiers]:<br />
{| border="1" cellpadding="2"<br />
| '''bold''' {1} || {{must}} be present exactly once<br />
|- <br />
| ''italic''<nowiki>*</nowiki> || {{optional}}, and {{may}} occur more than once <br />
|- <br />
| + || {{must}} be present, and {{may}} occur more than once <br />
|- <br />
| ? || {{optional}}, but {{must-not}} occur more than once <br />
|- <br />
| [square brackets] || list of common values <br />
|- <br />
| (parentheses) || data format <br />
|-<br />
| <nowiki>A | B</nowiki> || A or B (not both)<br />
|- <br />
| # || comment <br />
|- <br />
| ! || awaiting documentation <br />
|}<br />
<br />
==== Property List for hCalendar Events ====<br />
<br />
hCalendar event properties<br />
<br />
* '''vevent''' {1}<br />
** '''dtstart''' ([[iso-8601|ISO date]]) {1}<br />
** '''summary''' {1}<br />
** class ? ["PUBLIC", "PRIVATE", "CONFIDENTIAL"]<br />
** created (ISO date) ? <br />
** description ?<br />
** dtend (ISO date) | duration (ISO date duration) ?<br />
** dtstamp (ISO date) ?<br />
** geo ([[geo]]) ?<br />
** last-modified (ISO date) ?<br />
** location (text | [[geo]] | [[adr]] | [[hCard]]) ?<br />
** organizer (text | [[hCard]]) ?<br />
** priority ? ["LOW", "MEDIUM", "HIGH" or integer from 0 to 9]<br />
** recurrence-id (link) ?<br />
** sequence (integer) ?<br />
** status ? ["TENTATIVE", "CONFIRMED", "CANCELLED"]<br />
** transp ? ["OPAQUE", "TRANSPARENT"]<br />
** uid (link) ?<br />
** url (link) ?<br />
** ''attendee'' (text | [[hCard]]) *<br />
** ''contact'' (text | [[hCard]]) *<br />
** ''comment'' *<br />
** ''exdate'' (ISO date) *<br />
** ''exrule'' (see the section on Recurrence below) *<br />
*** '''freq''' {1} ["SECONDLY", "MINUTELY", "HOURLY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY"]<br />
*** until (ISO date) | count (integer) ?<br />
*** interval ?<br />
*** ''bysecond'' *<br />
*** ''byminute'' *<br />
*** ''byhour'' *<br />
*** ''byday'' *<br />
*** ''bymonthday'' *<br />
*** ''byyearday'' *<br />
*** ''byweekno'' *<br />
*** ''bymonth'' *<br />
*** ''bysetpos'' *<br />
*** wkst ?<br />
** ''rdate'' (ISO date) *<br />
** ''related-to'' (link) *<br />
** ''resources'' *<br />
** ''rrule'' (see the section on Recurrence below) *<br />
*** (as per "exrule")<br />
** ''valarm'' (hCalendar alarm) *<br />
<br />
Additionally an hCalendar event {{may}} contain zero or more links marked up as [[rel-tag]] corresponding to the CATEGORY property from iCalendar; and zero or more links marked up as [[rel-enclosure]] corresponding to the ATTACH property.<br />
<br />
==== Property List for hCalendar Todos ====<br />
<br />
hCalendar todo items have the same properties as hCalendar events, except that they {{should-not}} contain "transp" or "dtend" properties. The following additional properties are defined:<br />
<br />
* '''vtodo''' {1}<br />
** due (ISO date) ?<br />
** percent-complete ?<br />
** completed (ISO date) ?<br />
<br />
Allowed values for the "status" property are instead: "NEEDS-ACTION", "COMPLETED", "IN-PROCESS", "CANCELLED".<br />
<br />
As per hCalendar events, [[rel-tag]] and [[rel-enclosure]] links {{may}} be used.<br />
<br />
==== Property List for hCalendar Alarms ====<br />
<br />
* '''valarm''' {1}<br />
** '''summary''' {1}<br />
** '''trigger''' (ISO date duration) {1}<br />
** action ? ["AUDIO", "DISPLAY", "EMAIL", "PROCEDURE"]<br />
** description ?<br />
** duration (ISO date duration) ?<br />
** repeat (integer) ?<br />
** ''attendee'' (text | [[hCard]]) *<br />
<br />
[[rel-enclosure]] links {{may}} be used, but [[rel-tag]] {{should-not}}.<br />
<br />
==== Property List for hCalendar Freebusys ====<br />
<br />
* '''vfreebusy''' {1}<br />
** '''summary''' {1}<br />
** '''freebusy''' +<br />
** comment ?<br />
** dtend (ISO date) ?<br />
** dtstamp (ISO date) ?<br />
** dtstart (ISO date) ?<br />
** duration (ISO date duration) ?<br />
** organizer (text | [[hCard]]) ?<br />
** uid (link) ?<br />
** ''attendee'' (text | [[hCard]]) *<br />
** ''contact'' (text | [[hCard]]) *<br />
** ''url'' (link) *<br />
<br />
[[rel-tag]] and [[rel-enclosure]] links {{should-not}} be included.<br />
<br />
=== Case-Sensitivity of Pre-Defined Values ===<br />
<br />
Certain properties have a list of possible values, defined in the iCalendar specification in ALL-CAPS. For example, the "transp" property has a value of either "OPAQUE" or "TRANSPARENT". hCalendar authors {{may}} use lower or mixed case for these values. hCalendar parsers {{must}} convert these to upper case if exporting as iCalendar.<br />
<br />
=== Dates and Times ===<br />
<br />
Dates and times {{must}} be expressed in the [http://www.w3.org/TR/NOTE-datetime W3C datetime format]. Authors {{may}} take advantage of the [[abbr-design-pattern|ABBR design pattern]], but {{should}} take into account [[accessibility-issues#abbr-design-pattern|accessibility issues]].<br />
<br />
==== Durations ====<br />
<br />
Durations {{must}} be expressed as ISO 8601 durations of time, as per RFC 2445. Some examples:<br />
<br />
<pre>The <span class="summary">management meeting</span> with last approximately<br />
<abbr class="duration" title="PT2H30M">two and a half hours</abbr>.</pre><br />
<br />
<pre>This <abbr title="2008-06-23" class="dtstart">summer</abbr>, we begin our<br />
<abbr class="duration" title="P13W">season</abbr> of light entertainment.</pre><br />
<br />
=== Links ===<br />
<br />
When a class is found indicating a property of type "link", then it {{should}} be parsed as follows:<br />
<br />
# If the element is an &lt;a> element, the "href" attribute is used as the value;<br />
# Otherwise, if the element is an &lt;img> element, the "src" attribute is used as the value;<br />
# Otherwise, if the element is an &lt;object> element, the "data" attribute is used as the value;<br />
# If all else fails, the element is interpreted as if it were a non-link element, with the textual content of the element being treated as the value.<br />
<br />
==== UID ====<br />
<br />
As a special case, the UID property is parsed as follows:<br />
<br />
# If the element with class "uid" has a fragment identifier (that is, if it has an "id" attribute or is <a name>), then the value of the UID property {{must}} be set to the absolute URL of that fragment;<br />
# Otherwise the element with class "uid" is parsed using the procedure described in the previous section on links in general.<br />
# If there is no element with class "uid", then the element bearing the root class name (e.g. "vevent" or "vtodo") is checked. If that element has a fragment identifier (that is, if it has an "id" attribute or is <a name>), then the value of the UID property {{must}} be set to the absolute URL of that fragment.<br />
# If all else fails, an hCalendar parser {{may}} choose to generate its own UID for the item. Reasonable care {{must}} be taken to ensure the uniqueness of this UID. Authors {{should not}} rely on this behaviour.<br />
# Otherwise, the item has no UID value.<br />
<br />
==== Related-To Links ====<br />
<br />
The value of the related-to property {{must}} be a link, and {{should}} link to another hCalendar event or todo item. If the element with the "related-to" class is &lt;a> or &lt;area>, then it {{may}} take a rel attribute with any of the following values:<br />
<br />
* vcalendar-parent<br />
* vcalendar-child<br />
* vcalendar-sibling<br />
<br />
These correspond to the PARENT, CHILD and SIBLING values of the RELTYPE sub-property.<br />
<br />
=== Recurrence ===<br />
<br />
Recurrence rules and exclusion rules are complex. hCalendar parsers are not required to support them, and {{may}} choose to ignore the entire contents of "rrule" and "exrule" properties. But if "rrule" and "exrule" are supported, then they {{must}} be parsed according to the guidelines in this section of the specification.<br />
<br />
That is, parsers {{should}} aim to implement "rrule" and "exrule" entirely, or not at all.<br />
<br />
==== A Worked Example ====<br />
<br />
The following example iCalendar recurrence rule is given in RFC 2445:<br />
<br />
<pre><br />
DTSTART;TZID=US-Eastern:19970105T083000<br />
RRULE:FREQ=YEARLY;INTERVAL=2;BYMONTH=1;BYDAY=SU;BYHOUR=8,9;<br />
BYMINUTE=30<br />
</pre><br />
<br />
This represents an event which occurs every Sunday in January at 08:30 and 09:30, starting on 5 January 1997 and only occurring on odd-numbered years. Here is an example of how that might be translated into HTML:<br />
<br />
<pre><br />
<p>Our organisation has been offering a series of summer lectures since<br />
<abbr class="dtstart" title="19970105T083000">January 1997</abbr>. They<br />
are<br />
<span class="rrule"><br />
held <span class="freq">yearly</span>,<br />
every <span class="interval">2</span>nd year (1999, 2001, etc),<br />
every <span class="byday">Sunday</span><br />
in January <abbr class="bymonth" title="1" style="display:none"></abbr><br />
at <span class="byhour">8</span>:<span class="byminute">30</span> and<br />
repeated at <span class="byhour">9</span>:30.<br />
</span><br />
</p><br />
</pre><br />
<br />
This might be rendered as:<br />
<div style="margin:1em 4em 1.5em;padding:0.5em;border:1px solid silver;background:#f8f8f8;font-size:120%"><br />
<p>Our organisation has been offering a series of summer lectures since<br />
<abbr class="dtstart" title="19970105T083000">January 1997</abbr>. They<br />
are<br />
<span class="rrule"><br />
held <span class="freq">yearly</span>,<br />
every <span class="interval">2</span>nd year (1999, 2001, etc),<br />
every <span class="byday">Sunday</span><br />
in January <abbr class="bymonth" title="1" style="display:none"></abbr><br />
at <span class="byhour">8</span>:<span class="byminute">30</span> and<br />
repeated at <span class="byhour">9</span>:30.<br />
</span><br />
</p><br />
</div><br />
<br />
==== Notes ====<br />
<br />
# The examples above show only the DTSTART and RRULE properties and do not represent an entire VEVENT (which would require an element with class "vevent", and one with class "summary").<br />
# For further information and allowed values, see section 4.3.10 of RFC 2445.<br />
# Although iCalendar doesn't allow the "BY*" properties to be repeated (BYHOUR=8;BYHOUR=9) it does allow a single "BY*" property to contain a comma-separated list of numbers (BYHOUR=8,9). When an hCalendar recurrence rule specifies a repeated "BY*" property, parsers {{must}} interpret this as being equivalent to a comma-separated list in iCalendar.<br />
# RFC 2445 section 4.3.10 defines the tokens "SECONDLY" / "MINUTELY" / "HOURLY" / "DAILY" / "WEEKLY" / "MONTHLY" / "YEARLY" as possible values for FREQ. hCalendar allows these to be specified in a case-insensitive manner. Parsers {{should}} convert them to upper-case if exporting as an iCalendar file.<br />
# hCalendar recurrence rules {{may}} use tokens longer than two characters to identify the day. Parsers {{must}} trim the token down to its first two non-whitespace characters and upper-case them if wishing to convert them to iCalendar BYDAY tokens.<br />
# hCalendar recurrence rules {{should-not}} include multiple occurrences of "until" or "count" sub-properties, and {{should-not}} specify both an "until" and a "count" sub-property for the same rule. If a rule violates this requirement, parsers {{must}} use only the first "until" or "count" sub-property and {{must}} ignore subsequent uses of "until" or "count".<br />
<br />
==== Simplified Notation ====<br />
<br />
In the notation above, an element with class "freq" is a required child element of "rrule" and "exrule". When a parser encounters a recurrence rule with no "freq" specified, then the entire contents of the "rrule" or "exrule" element {{must}} be treated as a literal iCalendar RRULE or EXRULE. For example:<br />
<br />
<pre><p>Our organisation has been offering a series of summer lectures since<br />
<abbr class="dtstart" title="19970105T083000">January 1997</abbr>. They<br />
are held every second year (1999, 2001, etc), every Sunday in January at<br />
8:30 and repeated at 9:30.<br />
<abbr title="FREQ=YEARLY;INTERVAL=2;BYMONTH=1;BYDAY=SU;BYHOUR=8,9;BYMINUTE=30"<br />
class="rrule" style="display:none"></abbr><br />
</p></pre><br />
<br />
This allows authors to express complicated rules in more natural language without having to worry about how to map their language onto the various recurrance rule sub-properties.<br />
<br />
=== Nested Events and Todos ===<br />
<br />
As with [[hcard-parsing#nested_hCards|hCard]], events and todos {{may}} be nested:<br />
<br />
<pre><nowiki><br />
<div class="vevent"><br />
<h1 class="summary">Technology Conference</h1><br />
<p class="dtstart">2008-03-01</p><br />
<br />
<h2>Workshops</h2><br />
<ul><br />
<li class="vevent"><br />
<b class="summary">Microformats</b><br />
<abbr class="dtstart" title="2008-03-01T10:30:00Z">10:30am</abbr><br />
</li><br />
<li class="vevent"><br />
<b class="summary">RDFa</b><br />
<abbr class="dtstart" title="2008-03-01T11:30:00Z">11:30am</abbr><br />
</li><br />
<li class="vtodo"><br />
<b class="summary">Lunch</b><br />
<abbr class="dtstart" title="2008-03-01T12:45:00Z">12:45pm</abbr><br />
</li><br />
</ul><br />
</div><br />
</nowiki></pre><br />
<br />
The events and todos are to be parsed as independent items, with properties from the children not being applied to the parent, nor vice versa. The only thing a parser {{may}} infer from the nesting is the RELATED-TO property. However, if the items explicitly specify a "related-to" class, the explicit relation {{must}} override any implied relation.<br />
<br />
=== Nested hCards ===<br />
<br />
Certain properties, such as attendee {{may}} take an hCard as a value. In these cases, the "vcard" class {{must}} be on the same element as the hCalendar property.<br />
<br />
<pre><br />
YES: <div class="attendee vcard">...</div><br />
NO: <div class="attendee"><p class="vcard">...</p></div><br />
</pre><br />
<br />
[[hCard]] has an optional "role" property. If this role takes any of the following values (case-insensitive):<br />
<br />
* Chair<br />
* Req-Participant<br />
* Opt-Participant<br />
* Non-Participant<br />
<br />
then they are taken to correspond to the participation role parameter described in the iCalendar specification, section 4.2.16.<br />
<br />
=== Include Pattern ===<br />
<br />
The [[include-pattern|include pattern]] {{may}} be used within hCalendar mark-up to reference material elsewhere on the page.<br />
<br />
=== ABBR Pattern ===<br />
<br />
The [[abbr-design-pattern|ABBR design pattern]] {{may}} be used within hCalendar, but authors {{should}} take into account potential accessibility issues.<br />
<br />
== Examples ==<br />
<br />
=== Simple hCalendar Event ===<br />
<br />
Here is a sample event in an iCalendar:<br />
<pre><nowiki><br />
BEGIN:VCALENDAR<br />
PRODID:-//XYZproduct//EN<br />
VERSION:2.0<br />
BEGIN:VEVENT<br />
URL:http://www.web2con.com/<br />
DTSTART:20071005<br />
DTEND:20071020<br />
SUMMARY:Web 2.0 Conference<br />
LOCATION:Argent Hotel\, San Francisco\, CA<br />
END:VEVENT<br />
END:VCALENDAR<br />
</nowiki></pre><br />
<br />
and an equivalent event in hCalendar format with various elements optimized appropriately. See [[hcalendar-example1-steps]] for the derivation.<br />
<br />
<pre><nowiki><br />
<div class="vevent"><br />
<a class="url" href="http://www.web2con.com/">http://www.web2con.com/</a><br />
<span class="summary">Web 2.0 Conference</span>: <br />
<abbr class="dtstart" title="2007-10-05">October 5</abbr>-<br />
<abbr class="dtend" title="2007-10-20">19</abbr>,<br />
at the <span class="location">Argent Hotel, San Francisco, CA</span><br />
</div><br />
</nowiki></pre><br />
<br />
which could be displayed as:<br />
<br />
<div class="vevent" style="margin:1em 4em 1.5em;padding:0.5em;border:1px solid silver;background:#f8f8f8;font-size:120%"><br />
<span class="url">http://www.web2con.com/</span>&nbsp;<!-- note modified to account for idiosyncrasy of wiki software --><br />
<span class="summary">Web 2.0 Conference</span>: <br />
<abbr class="dtstart" title="2007-10-05">October 5</abbr>-<br />
<abbr class="dtend" title="2007-10-20">19</abbr>,<br />
at the <span class="location">Argent Hotel, San Francisco, CA</span><br />
</div><br />
<br />
Note that this is a '''live''' hCalendar microformat, which will be found on this page by parsers.<br />
<br />
=== Full hCalendar Example ===<br />
<br />
The following hCalendar example includes three events and a todo item. It makes use of nested hCalendar components, embedded hCards and recurrences.<br />
<br />
<pre><nowiki><br />
<div class="vcalendar"><br />
<br />
<div class="vevent"><br />
<h1 class="uid" id="xmas"><br />
<span class="summary">Christmas</span> Schedule<br />
</h1><br />
<abbr class="dtstart" title="0001-12-25" style="display:none"></abbr><br />
<p class="comment rrule"><span class="freq">Yearly</span><br />
period of festive merriment.</p><br />
<div class="attendee vcard"><br />
<b class="role"><br />
<abbr title="REQ-PARTICIPANT">Required for merriment:</abbr><br />
</b><br><br />
<span class="fn"><br />
<span class="honorific-prefix nickname">Santa</span><br />
<span class="given-name">Claus</span><br />
</span><br />
(<span class="adr><span class="region">North Pole</span></span>)<br />
</div><br />
<br />
<div class="vtodo"><br />
<h2 class="uid" id="shopping">Shopping</h2><br />
<abbr class="dtstart" title="2008-12-01">In December</abbr>, don't forget<br />
to <span class="summary">buy everyone their presents</span> before the<br />
shops shut on <abbr class="due" title="2008-12-24T16:00:00">Christmas<br />
Eve</abbr>!<br />
</div><br />
<br />
<div class="vevent"><br />
<h2 id="jones" class="uid summary">Jones' Christmas Lunch</h2><br />
<p class="comment">The Joneses have been having a wonderful lunch <br />
<abbr class="rrule" title="FREQ=YEARLY">every year</abbr> at<br />
<abbr class="dtstart" title="2003-12-25T13:00:00Z">1pm for the last<br />
few years</abbr>.</p><br />
<p><span class="attendee">Everyone</span>'s invited.</p><br />
</div><br />
</div><br />
<br />
<div class="vevent"><br />
<h2 class="summary">Boxing Day</h2><br />
<p class="comment"><br />
<abbr class="rrule" title="FREQ=YEARLY">Every year</abbr><br />
<abbr class="dtstart" title="0001-12-26">the day after</abbr><br />
<a class="related-to" href="#xmas" rel="vcalendar-sibling">Christmas</a><br />
is Boxing Day. Nobody knows quite why this day is called that.<br />
</p><br />
</div><br />
<br />
</div><br />
</nowiki></pre><br />
<br />
This might be transformed to iCalendar as:<br />
<br />
<pre><nowiki><br />
BEGIN:VCALENDAR<br />
BEGIN:VEVENT<br />
UID:<http://example.org/hcalendar#xmas><br />
SUMMARY:Christmas<br />
DTSTART:0001-12-25<br />
RRULE:FREQ=YEARLY<br />
COMMENT:Yearly period of festive merriment.<br />
ATTENDEE;ROLE=REQ-PARTICIPANT:Santa Claus<br />
RELATED-TO;REL-TYPE=CHILD:<http://example.org/hcalendar#shopping><br />
RELATED-TO;REL-TYPE=CHILD:<http://example.org/hcalendar#jones><br />
END:VEVENT<br />
BEGIN:VTODO<br />
UID:<http://example.org/hcalendar#shopping><br />
SUMMARY:buy everyone their presents<br />
DTSTART:2008-12-01<br />
DUE:2008-12-24T16:00:00<br />
RELATED-TO;REL-TYPE=PARENT:<http://example.org/hcalendar#xmas><br />
END:VTODO<br />
BEGIN:VEVENT<br />
UID:<http://example.org/hcalendar#jones><br />
SUMMARY:Jones' Christmas Lunch<br />
DTSTART:2003-12-25T13:00:00Z<br />
RRULE:FREQ=YEARLY<br />
COMMENT:The Joneses have been having a wonderful lunch every year at<br />
1pm for the last few years.<br />
ATTENDEE:Everyone<br />
RELATED-TO;REL-TYPE=PARENT:<http://example.org/hcalendar#xmas><br />
END:VEVENT<br />
BEGIN:VEVENT<br />
SUMMARY:Boxing Day<br />
DTSTART:0001-12-26<br />
RRULE:FREQ=YEARLY<br />
COMMENT:Every year the day after Christmas is Boxing Day. Nobody knows quite<br />
why this day is called that.<br />
RELATED-TO;REL-TYPE=SIBLING:<http://example.org/hcalendar#xmas><br />
END:VEVENT<br />
END:VCALENDAR<br />
</nowiki></pre><br />
<br />
The following vCard can also be extracted from it:<br />
<br />
<pre><nowiki><br />
BEGIN:VCARD<br />
FN:Santa Claus<br />
N:;Claus;;Santa;<br />
NICKNAME:Santa<br />
ROLE:REQ-PARTICIPANT<br />
ADR:;;;;North Pole;;<br />
END:VCARD<br />
</nowiki></pre><br />
<br />
== References ==<br />
=== Normative References ===<br />
* [http://www.w3.org/TR/2002/REC-xhtml1-20020801/ XHTML 1.0 SE]<br />
* [[hcard|hCard]]<br />
* [http://www.ietf.org/rfc/rfc2445.txt iCalendar RFC2445]<br />
* [[rfc-2119| RFC 2119]]<br />
* [[iso-8601|ISO8601]]<br />
<br />
=== Informative References ===<br />
* [http://w3.org/TR/REC-CSS1 CSS1]<br />
* [http://tantek.com/log/2004/09.html#hcalendar hCalendar term introduced and defined on the Web, 20040930]<br />
* [http://wiki.oreillynet.com/foocamp04/index.cgi?HTMLForCalendars FOO Camp 2004 HTML For Calendars presentation, 20040911]<br />
* [http://wiki.oreillynet.com/foocamp04/index.cgi?SimpleSemanticFormats FOO Camp 2004 Simple Semantic Formats presentation, 20040910]<br />
* [http://ietfreport.isoc.org/idref/draft-royer-ical-basic/ iCal-Basic (latest)] [http://www.faqs.org/ftp/pub/pub/internet-drafts/draft-royer-ical-basic-04.txt (draft 04)]<br />
* [http://www.w3.org/TR/NOTE-datetime W3C Note on Date and Time Formats]<br />
* [http://www.imc.org/pdi/ Internet Mail Consortium Personal Data Interchange vCard and vCalendar]<br />
* Contributed from http://developers.technorati.com/wiki/hCalendar<br />
<br />
==== Specifications That Use hCalendar ====<br />
* [[hreview|hReview]]<br />
<br />
==== Related Work ====<br />
* [http://lists.osafoundation.org/pipermail/ietf-calsify/ IETF-calsify archives]<br />
* [http://www.softwarestudio.org/iCal/2445Issues.html RFC2445 Issues List]<br />
* [http://ietf.webdav.org/calsify/ CALSIFY WG Links And Resources]<br />
<br />
=== Further Reading ===<br />
* [http://www.livejournal.com/users/jwz/444651.html jwz - Hula] (required reading)<br />
* [http://www.jwz.org/doc/groupware.html Groupware Bad by Jamie Zawinski] crystallizes the reason for hCalendar ('''emphasis''' added):<br />
<blockquote>Right now people can do that by publishing .ics files, but it's not trivial to do so, and it's work on the part of other people to look at them. '''If it's not HTML hanging off our friend's home page that can be viewed in any browser on a public terminal in a library, the bar to entry is too high and it's useless.'''</blockquote><br />
<br />
* [http://muddybranch.thejkgroup.com/ Jason Klemow's blog]<br />
* [http://weblog.infoworld.com/udell/2006/01/11.html#a1368 Moving forward with microformats] by [http://weblog.infoworld.com/udell Jon Udell] provides an hCalendar example and some discussion.<br />
* See also [http://www.technorati.com/cosmos/referer.html blogs discussing this page] and the [http://technorati.com/tags/hcalendar hCalendar tag]<br />
* [http://en.wikipedia.org/wiki/HCalendar Wikipedia article on hCalendar] (requires expansion)<br />
<br />
== Related Pages ==<br />
{{hcalendar-related-pages}}</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=User_talk:Deev&diff=34097User talk:Deev2008-03-03T18:09:53Z<p>AndyMabbett: Welcome!</p>
<hr />
<div>{{welcome}}<br />
<br />
: [[User:AndyMabbett|Andy Mabbett]] 10:09, 3 Mar 2008 (PST)</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=User_talk:STHayden&diff=34096User talk:STHayden2008-03-03T18:09:27Z<p>AndyMabbett: Welcome!</p>
<hr />
<div>{{welcome}}<br />
<br />
: [[User:AndyMabbett|Andy Mabbett]] 10:09, 3 Mar 2008 (PST)</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=figure&diff=26316figure2008-03-03T10:50:57Z<p>AndyMabbett: remove micro-font</p>
<hr />
<div><h1>figure <small style="font-size:90%">0.2</small></h1><br />
{{TOC-right}}<br />
<br />
== Specification ==<br />
<br />
'''This is a DRAFT specification.'''<br />
<br />
<div class="vcard"><br />
; <span class="role">Editor</span> <br />
: <span class="fn">[[User:TobyInk|Toby Inkster]]</span> (<span class="url">http://tobyinkster.co.uk/</span>)<br />
</div><br />
; Author: Toby Inkster (affiliations above)<br />
<br />
; Acknowledgements: See [[figure#Inspiration_and_Acknowledgements|acknowledgements]].<br />
<br />
[[figure#Copyright|Copyright]] and [[figure#Patents|patents]] statements apply.<br />
<br />
== Introduction ==<br />
<br />
Many HTML documents include supporting images, such as photographs, flow charts, graphs, blueprints or screen captures. These are usually incorporated using the HTML &lt;img> element, however this offers no way of differentiating between such supplementary content and mere decorative images.<br />
<br />
Authors often wish to annotate these images with captions or attributions. Currently there is no markup to explicitly associate such text with an image and readers must rely on the proximity of the image and text on the finished rendered page.<br />
<br />
This specification aims to allow authors to mark up captions and credits, explicitly associating them with an image.<br />
<br />
{{rfc-2119-intro}}<br />
<br />
== Format ==<br />
<br />
=== Properties ===<br />
<br />
* '''figure''' {1}<br />
** '''image''' {1}<br />
** legend ?<br />
** ''credit'' (text | [[hcard|hCard]])*<br />
** ''subject'' (text | [[hcard|hCard]] | [[geo]] | [[adr]] | [[hcalendar|hcalendar event]])*<br />
<br />
===Key===<br />
Based on Perl's [http://www.perl.com/doc/manual/html/pod/perlre.html standard quantifiers]:<br />
{| border="1" cellpadding="2"<br />
| '''bold''' {1} || {{must}} be present exactly once<br />
|- <br />
| ''italic''<nowiki>*</nowiki> || {{optional}}, and {{may}} occur more than once <br />
|- <br />
| + || {{must}} be present, and {{may}} occur more than once <br />
|- <br />
| ? || {{optional}}, but {{must-not}} occur more than once <br />
|- <br />
| [square brackets] || list of common values <br />
|- <br />
| (parentheses) || data format <br />
|- <br />
| # || comment <br />
|- <br />
| ! || awaiting documentation <br />
|}<br />
<br />
<br />
Additionally, an figure {{may}} contain zero or more links marked up with [[rel-tag]] and {{may}} contain zero or more links marked up with [[rel-license]].<br />
<br />
If an element with class "credit" also has class "vcard" then the element {{should}} be considered to be the [[hcard]] for a credited person or organisation. Otherwise it MUST be considered as a plain text credit.<br />
<br />
If an element with class "subject" also has a class "vcard" then the element {{should}} be considered to be the [[hcard]] for the subject of the image - for example a person in a photograph or sketch. If an element with class "subject" also has a class "adr" or "geo" then the element should be considered to be the [[adr|address]] or [[geo|geographic location]] of the subject of the picture - for example the location of a landscape in a photo or the address of a the building shown in blueprints. If an element with class "subject" also has a class "vevent" then the element should be considered to be the [[hcalendar|vevent]] for the subject of a figure - for example a photograph of a sporting event, or a diagram of a military operation.<br />
<br />
Please note that the "legend" element should contain what would normally be called a "[http://en.wiktionary.org/wiki/Caption caption]". The term "legend" is used in this specification instead of "caption" in order to maintain parity with the element names used in HTML5. The subject, credit, tags and licence may be children of the legend, in which case the text within them forms part of the legend as well as part of the child elements.<br />
<br />
=== Examples ===<br />
<br />
<pre><br />
<div class="figure"><br />
<img class="image" src="photo.jpeg" alt=""><br />
<p class="legend"><br />
<a rel="tag" href="http://en.wikipedia.org/wiki/Photography">Photo</a><br />
of <span class="subject">Albert Einstein</span> by<br />
<span class="vcard credit"><br />
<span class="fn">Paul Ehrenfest</span><br />
(<span class="role">photographer</span>)<br />
</span><br />
</p><br />
</div><br />
</pre><br />
<br />
Parsed as:<br />
<br />
* '''Image''': photo.jpeg<br />
* '''Legend''': Photo of Albert Einstein by Paul Ehrenfest<br />
* '''Credit''': Paul Ehrenfest (hCard)<br />
* '''Subject''': Albert Einstein<br />
* '''Categories''': Photography<br />
* '''License''': (unspecified)<br />
<br />
<pre><br />
<p class="figure"><br />
<label style="display:block" class="legend">January sales data</label><br />
<img class="image" src="salesdata.png"<br />
alt="Widget sales have fallen slightly, but widget repair kits have sold well."><br />
</p><br />
</pre><br />
<br />
Parsed as:<br />
<br />
* '''Image''': salesdata.png<br />
* '''Legend''': January sales data<br />
<br />
=== Include Pattern ===<br />
<br />
The [[include-pattern|include pattern]] {{may}} be used within figures.<br />
<br />
=== ABBR Pattern ===<br />
<br />
As the figure microformat does not specify any properties that are not human-readable, the [[abbr-design-pattern|abbr design pattern]] {{should-not}} be used directly within a figure, though it {{may}} be used within children formatted in accordance to another microformat - e.g. as [[hcalendar|vevents]] often use the abbr design pattern to specify their start time, a figure subject formatted as a vevent {{may}} use the abbr design pattern in accordance with the [[hcalendar]] specification.<br />
<br />
== Minimisation ==<br />
<br />
To simplify markup, a number of shortcuts are explicitly allowed by this specification.<br />
<br />
# When no "image" class is found within the figure, the first &lt;img> element {{must}} be taken to be the image.<br />
# If the "legend" class is found on the same element as the "image" class (or the image inferred by the previous rule), then the contents of the title attribute {{must}} be used as the legend.<br />
# The "image" and/or "legend" classes may be attached to the same element as the element with the "figure" class.<br />
<br />
=== Examples ===<br />
<br />
The following examples {{must}} all be considered equivalent:<br />
<br />
<pre><br />
<div class="figure"><br />
<img class="image" src="foo.jpeg" alt=""><br />
<span class="legend">Foo</span><br />
</div><br />
</pre><br />
<br />
<pre><br />
<div class="figure"><br />
<img src="foo.jpeg" alt=""><br />
<span class="legend">Foo</span><br />
</div><br />
</pre><br />
<br />
<pre><br />
<div class="figure"><br />
<img class="legend" src="foo.jpeg" alt="" title="Foo"><br />
</div><br />
</pre><br />
<br />
<pre><br />
<img class="figure legend" src="foo.jpeg" alt="" title="Foo"><br />
</pre><br />
<br />
== HTML 5 ==<br />
<br />
When used in [http://www.w3.org/html/wg/html5/ HTML 5], any &lt;figure> element has an implied class "figure"; any &lt;legend> element has an implied class "legend". For example, the following HTML 5:<br />
<br />
<pre><br />
<figure><br />
<img src="foo.jpeg" alt=""><br />
<legend>Foo</legend><br />
</figure><br />
</pre><br />
<br />
is interpreted as if it were:<br />
<br />
<pre><br />
<figure class="figure"><br />
<img src="foo.jpeg" alt=""><br />
<legend class="legend">Foo</legend><br />
</figure><br />
</pre><br />
<br />
== Inspiration and Acknowledgments ==<br />
<br />
* [http://www.w3.org/html/wg/html5/ HTML 5 Draft Specification]<br />
* [[figure-examples]] (various authors)<br />
<br />
== Copyright ==<br />
This specification is released into the public domain.<br />
<br />
{{MicroFormatPublicDomainContributionStatement}}<br />
<br />
== Patents ==<br />
{{MicroFormatPatentStatement}}<br />
<br />
==See also==<br />
*[[figure-examples]]<br />
*[[figure-formats]]<br />
*[[figure-brainstorming]]</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=User:TobyInk/hcalendar-1.1&diff=26027User:TobyInk/hcalendar-1.12008-03-01T17:29:02Z<p>AndyMabbett: rfc2119`</p>
<hr />
<div>(I am aware of the existence of [[hcalendar-brainstorming]] and [[htask]]. This is intended to be more of a formal-style document, representing a draft replacement for the current [[hcalendar]] spec, mostly aimed at filling in areas where the current spec is incomplete or ambiguous, rather than additing newly requested functionality.)<br />
<br />
:Rather than replacing the current spec, we can iterate on it. If there are areas that you feel are incomplete or ambiguous please post them to a wiki page and as a community we can sort them out and edit the spec together. Some of these idea might have been discussed and dropped previously for various reasons which might not be documented or are buried somewhere. Getting everyone's thoughts onto a page were we can discuss this and find the reference will save everyone time and make for a better result in the end. [[User:Brian|Brian]]<br />
<br />
<h1>hCalendar <small>1.1</small></h1><br />
http://www.boogdesign.com/images/buttons/microformat_hcalendar.png<br />
<br />
'''This is a DRAFT version of an update to the [[hCalendar]] spec.'''<br />
<br />
hCalendar is a simple, open, distributed calendaring and events format, based on the iCalendar standard ([http://www.ietf.org/rfc/rfc2445.txt RFC2445]), suitable for embedding in HTML or XHTML, Atom, RSS, and arbitrary XML. hCalendar is one of several open [[microformats|microformat]] standards.<br />
<br />
Want to get started with writing an [[hcalendar|hCalendar]] event? Use the [http://microformats.org/code/hcalendar/creator hCalendar creator] to write up an event and publish it, or follow the [[hcalendar-authoring|hCalendar authoring tips]] to add hCalendar markup to your page of upcoming events or events you mention in blog posts, wikis, etc.<br />
<br />
__TOC__<br />
<br />
== Specification ==<br />
<br />
; Editor : [http://tobyinkster.co.uk Toby Inkster]<br />
; Authors : [http://tantek.com/ Tantek Çelik] ([http://technorati.com Technorati, Inc])<br />
: [http://suda.co.uk/ Brian Suda]<br />
: [http://tobyinkster.co.uk Toby Inkster]<br />
<br />
=== Copyright ===<br />
Per the public domain release on the authors' user pages ([[User:Tantek|Tantek Çelik]], [[User:Brian|Brian Suda]]) this specification is released into the public domain.<br />
<br />
{{MicroFormatPublicDomainContributionStatement}}<br />
<br />
=== Patents ===<br />
{{MicroFormatPatentStatement}}<br />
<br />
=== Inspiration and Acknowledgments ===<br />
Thanks to:<br />
* Adam Bosworth for leading the [http://wiki.oreillynet.com/foocamp04/index.cgi?HTMLForCalendars FOO Camp 2004 HTML For Calendars presentation] which brought together a critical mass of interested parties.<br />
<br />
== Introduction ==<br />
The iCalendar standard ([http://www.ietf.org/rfc/rfc2445.txt RFC2445]), has been broadly interoperably implemented (e.g. Apple's "iCal" application built into MacOSX).<br />
<br />
In addition, bloggers often discuss events on their blogs -- upcoming events, write-ups of past events, etc. With just a tad bit of structure, bloggers can discuss events in their blog(s) in such a way that spiders and other aggregators can retrieve such events, automatically convert them to iCalendar, and use them in any iCalendar application or service.<br />
<br />
This specification introduces the '''hCalendar''' format, which is a representation of a subset of the aforementioned iCalendar standard, in semantic HTML. Bloggers can both embed hCalendar events and todo items directly in their web pages, and style them with CSS to make them appear as desired. In addition, hCalendar enables applications to retrieve information about such events directly from web pages without having to reference a separate file.<br />
<br />
{{rfc-2119-intro}}<br />
<br />
== Semantic XHTML Design Principles ==<br />
<br />
{{semantic-xhtml-design-principles}}<br />
<br />
For practical implementations, it should be noted that Internet Explorer's support for styling <code><nowiki><abbr></nowiki></code> elements is poor, and may require wrapper elements.<br />
<br />
== Format ==<br />
=== In General ===<br />
The iCalendar standard ([http://www.ietf.org/rfc/rfc2445.txt RFC2445]) forms the basis of hCalendar.<br />
<br />
The basic format of hCalendar is to use iCalendar object/property names in lower-case for class names, and to map the nesting of iCalendar objects directly into nested XHTML elements.<br />
<br />
The VJOURNAL and VTIMEZONE components of iCalendar are explicitly not supported as part of hCalendar. hCalendar authors {{should-not}} use classes "vjournal" or "vtimezone" within an hCalendar context; parsers {{must-not}} attempt to interpret them if conforming to this version of the specification. [[hAtom]] ''may'' be used as an alternative to VJOURNAL for those authors wishing to publish journal information. VTIMEZONE has no suggested direct replacement: authors {{should}} restrict themselves to publishing dates in [http://www.w3.org/TR/NOTE-datetime W3CDTF format] using only well-known timezones.<br />
<br />
=== Root Class Name ===<br />
The root class name for hCalendar is "vcalendar". An element with a class name of "vcalendar" is itself called an ''hCalendar''. <br />
<br />
The root class name for events is "vevent". An element with a class name of "vevent" is itself called an ''hCalendar event''. The root class name for todo items is "vtodo". An element with a class name of "vtodo" is itself called an ''hCalendar todo''. The root class name for todo items is "valarm". An element with a class name of "valarm" is itself called an ''hCalendar alarm''. The root class name for todo items is "vfreebusy". An element with a class name of "vfreebusy" is itself called an ''hCalendar freebusy''.<br />
<br />
For authoring convenience, both all of the above are treated as root class names for parsing purposes. If a document contains elements with class names "vevent", "vtodo", "valarm" or "vfreebusy", but not "vcalendar", the entire document has an implied "vcalendar" context.<br />
<br />
=== Properties and Sub-properties ===<br />
The properties of an hCalendar are represented by elements inside the hCalendar. Elements with class names of the listed properties represent the values of those properties. Some properties have sub-properties, and those are represented by elements inside the elements for properties.<br />
<br />
==== Property List for hCalendars ====<br />
<br />
* vcalendar ?<br />
** ''vevent'' (hCalendar event)*<br />
** ''vtodo'' (hCalendar todo)*<br />
** ''valarm'' (hCalendar alarm)*<br />
** ''vfreebusy'' (hCalendar freebusy)*<br />
<br />
Although each component of an hCalendar is optional and may occur more than once, an hCalendar {{should}} contain at least one item.<br />
<br />
===== Key =====<br />
Based on Perl's [http://www.perl.com/doc/manual/html/pod/perlre.html standard quantifiers]:<br />
{| border="1" cellpadding="2"<br />
| '''bold''' {1} || {{must}} be present exactly once<br />
|- <br />
| ''italic''<nowiki>*</nowiki> || {{optional}}, and {{may}} occur more than once <br />
|- <br />
| + || {{must}} be present, and {{may}} occur more than once <br />
|- <br />
| ? || {{optional}}, but {{must-not}} occur more than once <br />
|- <br />
| [square brackets] || list of common values <br />
|- <br />
| (parentheses) || data format <br />
|- <br />
| # || comment <br />
|- <br />
| ! || awaiting documentation <br />
|}<br />
<br />
==== Property List for hCalendar Events ====<br />
<br />
hCalendar event properties<br />
<br />
* '''vevent''' {1}<br />
** '''summary''' {1}<br />
** '''dtstart''' ([[iso-8601|ISO date]]) +<br />
** description ?<br />
** comment ?<br />
** dtend (ISO date) ?<br />
** duration (ISO date duration) ?<br />
** ''url'' (link) *<br />
** ''location'' (text | [[geo]] | [[adr]] | [[hCard]]) *<br />
** ''[[geo]]'' *<br />
** ''resources'' *<br />
** ''attendee'' (text | [[hCard]]) *<br />
** ''organizer'' (text | [[hCard]]) *<br />
** ''contact'' (text | [[hCard]]) *<br />
** ''valarm'' (hCalendar alarm) *<br />
** ''related-to'' (link) *<br />
** recurrance-id (link) ?<br />
** ''rdate'' (ISO date) *<br />
** ''rrule'' (see the section on Recurrance below) *<br />
*** '''freq''' {1} ["SECONDLY", "MINUTELY", "HOURLY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY"]<br />
*** until|count ? ("until" and "count" are mutually exclusive. "count" is an integer; "until" is an ISO date)<br />
*** interval ?<br />
*** ''bysecond'' *<br />
*** ''byminute'' *<br />
*** ''byhour'' *<br />
*** ''byday'' *<br />
*** ''bymonthday'' *<br />
*** ''byyearday'' *<br />
*** ''byweekno'' *<br />
*** ''bymonth'' *<br />
*** ''bysetpos'' *<br />
*** wkst ?<br />
** ''exdate'' (ISO date) *<br />
** ''exrule'' (see the section on Recurrance below) *<br />
*** (as per "rrule")<br />
** uid (link) ?<br />
** transp ? ["OPAQUE", "TRANSPARENT"]<br />
** class ? ["PUBLIC", "PRIVATE", "CONFIDENTIAL"]<br />
** priority ? ["LOW", "MEDIUM", "HIGH" or integer from 0 to 9]<br />
** status ? ["TENTATIVE", "CONFIRMED", "CANCELLED"]<br />
** created<br />
** last-modified<br />
** sequence (integer)<br />
<br />
Additionally an hCalendar event {{may}} contain zero or more links marked up as [[rel-tag]] corresponding to the CATEGORY property from iCalendar; and zero or more links marked up as [[rel-enclosure]] corresponding to the ATTACH property.<br />
<br />
==== Property List for hCalendar Todos ====<br />
<br />
hCalendar todo items have the same properties as hCalendar events, except that they {{should-not}} contain "transp" or "dtend" properties. The following additional properties are defined:<br />
<br />
* '''vtodo''' {1}<br />
** due (ISO date) ?<br />
** percent-complete ?<br />
** completed (ISO date) ?<br />
<br />
Allowed values for the "status" property are instead: "NEEDS-ACTION", "COMPLETED", "IN-PROCESS", "CANCELLED".<br />
<br />
As per hCalendar events, [[rel-tag]] and [[rel-enclosure]] links {{may}} be used.<br />
<br />
==== Property List for hCalendar Alarms ====<br />
<br />
* '''valarm''' {1}<br />
** '''summary''' {1}<br />
** '''trigger''' {1}<br />
** description ?<br />
** duration (ISO date duration) ?<br />
** ''attendee'' (text | [[hCard]]) *<br />
** action ? ["AUDIO", "DISPLAY", "EMAIL", "PROCEDURE"]<br />
** repeat ?<br />
<br />
[[rel-enclosure]] links {{may}} be used, but [[rel-tag]] {{should-not}}.<br />
<br />
==== Property List for hCalendar Freebusys ====<br />
<br />
* '''vfreebusy''' {1}<br />
** '''summary''' {1}<br />
** '''freebusy''' +<br />
** comment ?<br />
** dtstart ?<br />
** dtend ?<br />
** duration ?<br />
** ''attendee'' (text | [[hCard]]) *<br />
** ''organizer'' (text | [[hCard]]) *<br />
** ''contact'' (text | [[hCard]]) *<br />
** ''url'' (link) *<br />
** uid (link) ?<br />
** dtstamp ?<br />
<br />
[[rel-tag]] and [[rel-enclosure]] links {{should-not}} be included.<br />
<br />
=== Case-Sensitivity of Pre-Defined Values ===<br />
<br />
Certain properties have a list of possible values, defined in the iCalendar specification in ALL-CAPS. For example, the "transp" property has a value of either "OPAQUE" or "TRANSPARENT". hCalendar authors {{may}} use lower or mixed case for these values. hCalendar parsers {{must}} convert these to upper case if exporting as iCalendar.<br />
<br />
=== Links ===<br />
<br />
When a class is found indicating a property of type "link", then it {{should}} be parsed as follows:<br />
# In the special case that the property is "uid", if the element has a fragment identifier (that is, if it has an "id" attribute or is &lt;a name>), then the value of the UID property {{must}} be set to the absolute URL of that fragment;<br />
# Otherwise, if the element is an &lt;a> element, the "href" attribute is used as the value;<br />
# Otherwise, if the element is an &lt;img> element, the "src" attribute is used as the value;<br />
# Otherwise, if the element is an &lt;object> element, the "data" attribute is used as the value;<br />
# If all else fails, the element is interpreted as if it were a non-link element, with the textual content of the element being treated as the value.<br />
<br />
=== Recurrence ===<br />
<br />
Recurrence rules and exclusion rules are complex. hCalendar parsers are not required to support them, and {{may}} choose to ignore the entire contents of "rrule" and "exrule" properties. But if "rrule" and "exrule" are supported, then they {{must}} be parsed according to the guidelines in this section of the specification.<br />
<br />
That is, parsers {{should}} aim to implement "rrule" and "exrule" entirely, or not at all.<br />
<br />
==== A Worked Example ====<br />
<br />
The following example iCalendar recurrence rule is given in RFC 2445:<br />
<br />
<pre><br />
DTSTART;TZID=US-Eastern:19970105T083000<br />
RRULE:FREQ=YEARLY;INTERVAL=2;BYMONTH=1;BYDAY=SU;BYHOUR=8,9;<br />
BYMINUTE=30<br />
</pre><br />
<br />
This represents an event which occurs every Sunday in January at 08:30 and 09:30, starting on the 5th of January 1997 and only occurring on odd-numbered years. Here is an example of how that might be translated into HTML:<br />
<br />
<pre><br />
<p>Our organisation has been offering a series of summer lectures since<br />
<abbr class="dtstart" title="19970105T083000">January 1997</abbr>. They<br />
are<br />
<span class="rrule"><br />
held <span class="freq">yearly</span>,<br />
every <span class="interval">2</span>nd year (1999, 2001, etc),<br />
every <span class="byday">Sunday</span><br />
in January <abbr class="bymonth" title="1" style="display:none"></abbr><br />
at <span class="byhour">8</span>:<span class="byminute">30</span> and<br />
repeated at <span class="byhour">9</span>:30.<br />
</span><br />
</p><br />
</pre><br />
<br />
This might be rendered as:<br />
<div style="margin:1em 4em 1.5em;padding:0.5em;border:1px solid silver;background:#f8f8f8;font-size:120%"><br />
<p>Our organisation has been offering a series of summer lectures since<br />
<abbr class="dtstart" title="19970105T083000">January 1997</abbr>. They<br />
are<br />
<span class="rrule"><br />
held <span class="freq">yearly</span>,<br />
every <span class="interval">2</span>nd year (1999, 2001, etc),<br />
every <span class="byday">Sunday</span><br />
in January <abbr class="bymonth" title="1" style="display:none"></abbr><br />
at <span class="byhour">8</span>:<span class="byminute">30</span> and<br />
repeated at <span class="byhour">9</span>:30.<br />
</span><br />
</p><br />
</div><br />
<br />
==== Notes ====<br />
<br />
# The examples above show only the DTSTART and RRULE properties and do not represent an entire VEVENT (which would require an element with class "vevent", and one with class "summary").<br />
# For further information and allowed values, see section 4.3.10 of RFC 2445.<br />
# Although iCalendar doesn't allow the "BY*" properties to be repeated (BYHOUR=8;BYHOUR=9) it does allow a single "BY*" property to contain a comma-separated list of numbers (BYHOUR=8,9). When an hCalendar recurrance rule specifies a repeated "BY*" property, parsers {{must}} interpret this as being equivalent to a comma-separated list in iCalendar.<br />
# RFC 2445 section 4.3.10 defines the tokens "SECONDLY" / "MINUTELY" / "HOURLY" / "DAILY" / "WEEKLY" / "MONTHLY" / "YEARLY" as possible values for FREQ. hCalendar allows these to be specified in a case-insensitive manner. Parsers {{should}} convert them to upper-case if exporting as an iCalendar file.<br />
# hCalendar recurrence rules {{may}} use tokens longer than two characters to identify the day. Parsers {{must}} trim the token down to its first two non-whitespace characters and upper-case them if wishing to convert them to iCalendar BYDAY tokens.<br />
# hCalendar recurrence rules {{should-not}} include multiple occurrences of "until" or "count" sub-properties, and {{should-not}} specify both an "until" and a "count" sub-property for the same rule. If a rule violates this requirement, parsers {{must}} use only the first "until" or "count" sub-property and {{must}} ignore subsequent uses of "until" or "count".<br />
<br />
==== Simplified Notation ====<br />
<br />
In the notation above, an element with class "freq" is a required child element of "rrule" and "exrule". When a parser encounters a recurrence rule with no "freq" specified, then the entire contents of the "rrule" or "exrule" element {{must}} be treated as a literal iCalendar RRULE or EXRULE. For example:<br />
<br />
<pre><p>Our organisation has been offering a series of summer lectures since<br />
<abbr class="dtstart" title="19970105T083000">January 1997</abbr>. They<br />
are held every second year (1999, 2001, etc), every Sunday in January at<br />
8:30 and repeated at 9:30.<br />
<abbr title="FREQ=YEARLY;INTERVAL=2;BYMONTH=1;BYDAY=SU;BYHOUR=8,9;BYMINUTE=30"<br />
class="rrule" style="display:none"></abbr><br />
</p></pre><br />
<br />
This allows authors to express complicated rules in more natural language without having to worry about how to map their language onto the various recurrance rule sub-properties.<br />
<br />
<!--<br />
=== The "beforethis" Class ===<br />
<br />
Any element with class "dtend", "due" or "until" ''may'' take an additional class of "beforethis" indicating that parsers ''should'' subtract exactly one second from the datetime indicated. For example:<br />
<br />
<pre><abbr class="dtend beforethis" title="20080301">until March</abbr></pre><br />
<br />
is equivalent to the following in iCalendar:<br />
<br />
<pre>DTEND:20080229T235959</pre><br />
<br />
Authors ''should not'' use "beforethis" for other date-related properties. Parsers ''should'' ignore "beforethis" found on any other properties.<br />
<br />
--><br />
<br />
== Examples ==<br />
<br />
=== Simple hCalendar Event ===<br />
<br />
Here is a sample event in an iCalendar:<br />
<pre><br />
<nowiki><br />
BEGIN:VCALENDAR<br />
PRODID:-//XYZproduct//EN<br />
VERSION:2.0<br />
BEGIN:VEVENT<br />
URL:http://www.web2con.com/<br />
DTSTART:20071005<br />
DTEND:20071020<br />
SUMMARY:Web 2.0 Conference<br />
LOCATION:Argent Hotel\, San Francisco\, CA<br />
END:VEVENT<br />
END:VCALENDAR<br />
</nowiki><br />
</pre><br />
<br />
and an equivalent event in hCalendar format with various elements optimized appropriately. See [[hcalendar-example1-steps]] for the derivation.<br />
<br />
<pre><nowiki><br />
<div class="vevent"><br />
<a class="url" href="http://www.web2con.com/">http://www.web2con.com/</a><br />
<span class="summary">Web 2.0 Conference</span>: <br />
<abbr class="dtstart" title="2007-10-05">October 5</abbr>-<br />
<abbr class="dtend" title="2007-10-20">19</abbr>,<br />
at the <span class="location">Argent Hotel, San Francisco, CA</span><br />
</div><br />
</nowiki></pre><br />
<br />
which could be displayed as:<br />
<br />
<div class="vevent"><br />
<span class="url">http://www.web2con.com/</span>&nbsp;<!-- note modified to account for idiosyncrasy of wiki software --><br />
<span class="summary">Web 2.0 Conference</span>: <br />
<abbr class="dtstart" title="2007-10-05">October 5</abbr>-<br />
<abbr class="dtend" title="2007-10-20">19</abbr>,<br />
at the <span class="location">Argent Hotel, San Francisco, CA</span><br />
</div><br />
<br />
Note that this is a '''live''' hCalendar microformat, which will be found on this page by parsers.<br />
<br />
=== More Complex hCalendar Event ===<br />
<br />
The following example specifies a scheduled meeting that begins at 8:30 AM EST on March 12, 1998 and ends at 9:30 AM EST on March 12, 1998. <br />
<br />
<pre><nowiki><br />
BEGIN:VCALENDAR<br />
BEGIN:VEVENT<br />
UID:guid-1.host1.com<br />
DTSTAMP:19980309T231000Z<br />
DESCRIPTION:Project XYZ Review Meeting<br />
SUMMARY:XYZ Project Review<br />
DTSTART:19980312T133000Z<br />
DTEND:19980312T143000Z<br />
LOCATION:1CP Conference Room 4350<br />
CATEGORY:xyz<br />
END:VEVENT<br />
END:VCALENDAR<br />
</nowiki></pre><br />
<br />
The equivalent in hCalendar:<br />
<br />
<pre><nowiki><br />
<div class="vevent"><br />
<h3 class="summary">XYZ Project Review</h3><br />
<p class="description"><a href="http://acme.example.com/projects/xyz" rel="tag">Project XYZ</a> Review Meeting</p><br />
<p>To be held on <abbr class="dtstart" title="1998-03-12T08:30:00-05:00">12 March 1998 from 8:30am EST</abbr> <br />
until <abbr class="dtend" title="1998-03-12T09:30:00-05:00">9:30am EST</abbr></p><br />
<p>Location: <span class="location">1CP Conference Room 4350</span></p><br />
<small>Booked by: <span class="uid">guid-1.host1.com</span> on <br />
<abbr class="dtstamp" title="19980309T231000Z">9 Mar 1998 6:00pm</abbr></small><br />
</div><br />
</nowiki></pre><br />
<br />
This could be displayed as:<br />
<br />
<div class="vevent" style="margin:1em 4em 1.5em;padding:0.5em;border:1px solid silver;background:#f8f8f8;font-size:120%"><h3 class="summary">XYZ Project Review</h3><br />
<p class="description">[http://acme.example.com/projects/xyz Project XYZ] Review Meeting</p><br />
<p>To be held on <abbr class="dtstart" title="1998-03-12T08:30:00-05:00">12 March 1998 from 8:30am EST</abbr> until <abbr class="dtend" title="1998-03-12T09:30:00-05:00">9:30am EST</abbr></p><br />
<p>Location: <span class="location">1CP Conference Room 4350</span></p><br />
<small>Booked by: <span class="uid">guid-1.host1.com</span> on <abbr class="dtstamp" title="19980309T231000Z">9 Mar 1998 6:00pm</abbr></small></div><br />
<br />
Note 1: The product information is not necessary since hCalendar is an interchange format. When transforming hCalendar back into iCalendar, the transforming engine should add its own product ID.<br />
<br />
Note 2: A surrounding <code><nowiki><span class="vcalendar"></nowiki></code> element is optional, and is left out as such. It is optional since the context of a vcalendar is implied when a vevent is encountered. The implied context/scope is that of the document. Authors may explicitly use elements with class="vcalendar" to wrap sets of vevents that all belong to the same calendar, e.g. when publishing multiple calendars on the same page.<br />
<br />
Note 3: The version information is unnecessary in hCalendar mark-up directly since the version will be defined by the profile of hCalendar that is used/referred to in the 'profile' attribute of the <head> element.<br />
<br />
Note 4: [[iso-8601|ISO8601]] dates (required by iCalendar) are not very human friendly. In addition, the year is often understood implicitly by humans from the context. Thus <code><nowiki><abbr></nowiki></code> elements are used to simultaneously provide a human friendly date and/or time in the visible contents of the element, while placing the respective machine parsable comprehensive ISO8601 datetime in the 'title' attribute.<br />
The notation <code>YYYY-MM-DDThh:mm:ss</code> should be used for better readability, following the format of RFC 3339.<br />
<br />
Note 5: The difference between the DTEND ISO8601 date (2005-10-08) and the human readable date (7) is NOT a mistake. [http://lists.osafoundation.org/pipermail/ietf-calsify/2005-September/000769.html DTEND is exclusive], meaning, that the event ends just before the DTEND. Thus for events which start on one day and end on another day, the DTEND date must be specified as the day after the day that a human would say is the last day of the event.<br />
<br />
Note 6: The location in this example contains implicit structure (venue name, city, state) which could be marked up explicitly as an [[hcard|hCard]]. See [http://microformats.org/wiki/hcalendar-brainstorming#hCard_locations hCalendar brainstorming: hCard locations] for a informative explanation of how to do this.<br />
<br />
== References ==<br />
=== Normative References ===<br />
* [http://www.w3.org/TR/2002/REC-xhtml1-20020801/ XHTML 1.0 SE]<br />
* [[hcard|hCard]]<br />
* [http://www.ietf.org/rfc/rfc2445.txt iCalendar RFC2445]<br />
* [[rfc-2119| RFC 2119]]<br />
* [[iso-8601|ISO8601]]<br />
<br />
=== Informative References ===<br />
* [http://w3.org/TR/REC-CSS1 CSS1]<br />
* [http://tantek.com/log/2004/09.html#hcalendar hCalendar term introduced and defined on the Web, 20040930]<br />
* [http://wiki.oreillynet.com/foocamp04/index.cgi?HTMLForCalendars FOO Camp 2004 HTML For Calendars presentation, 20040911]<br />
* [http://wiki.oreillynet.com/foocamp04/index.cgi?SimpleSemanticFormats FOO Camp 2004 Simple Semantic Formats presentation, 20040910]<br />
* [http://ietfreport.isoc.org/idref/draft-royer-ical-basic/ iCal-Basic (latest)] [http://www.faqs.org/ftp/pub/pub/internet-drafts/draft-royer-ical-basic-04.txt (draft 04)]<br />
* [http://www.w3.org/TR/NOTE-datetime W3C Note on Date and Time Formats]<br />
* [http://www.imc.org/pdi/ Internet Mail Consortium Personal Data Interchange vCard and vCalendar]<br />
* Contributed from http://developers.technorati.com/wiki/hCalendar<br />
<br />
==== Specifications That Use hCalendar ====<br />
* [[hreview|hReview]]<br />
<br />
==== Related Work ====<br />
* [http://lists.osafoundation.org/pipermail/ietf-calsify/ IETF-calsify archives]<br />
* [http://www.softwarestudio.org/iCal/2445Issues.html RFC2445 Issues List]<br />
* [http://ietf.webdav.org/calsify/ CALSIFY WG Links And Resources]<br />
<br />
== Further Reading ==<br />
* [http://www.livejournal.com/users/jwz/444651.html jwz - Hula] (required reading)<br />
* [http://www.jwz.org/doc/groupware.html Groupware Bad by Jamie Zawinski] crystallizes the reason for hCalendar ('''emphasis''' added):<br />
<blockquote>Right now people can do that by publishing .ics files, but it's not trivial to do so, and it's work on the part of other people to look at them. '''If it's not HTML hanging off our friend's home page that can be viewed in any browser on a public terminal in a library, the bar to entry is too high and it's useless.'''</blockquote><br />
<br />
* [http://muddybranch.thejkgroup.com/ Jason Klemow's blog]<br />
* [http://weblog.infoworld.com/udell/2006/01/11.html#a1368 Moving forward with microformats] by [http://weblog.infoworld.com/udell Jon Udell] provides an hCalendar example and some discussion.<br />
* See also [http://www.technorati.com/cosmos/referer.html blogs discussing this page] and the [http://technorati.com/tags/hcalendar hCalendar tag]<br />
* [http://en.wikipedia.org/wiki/HCalendar Wikipedia article on hCalendar] (requires expansion)<br />
<br />
== Related Pages ==<br />
{{hcalendar-related-pages}}</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=User:TobyInk/hcalendar-1.1&diff=25969User:TobyInk/hcalendar-1.12008-03-01T17:28:21Z<p>AndyMabbett: more rfc2119 templates</p>
<hr />
<div>(I am aware of the existence of [[hcalendar-brainstorming]] and [[htask]]. This is intended to be more of a formal-style document, representing a draft replacement for the current [[hcalendar]] spec, mostly aimed at filling in areas where the current spec is incomplete or ambiguous, rather than additing newly requested functionality.)<br />
<br />
:Rather than replacing the current spec, we can iterate on it. If there are areas that you feel are incomplete or ambiguous please post them to a wiki page and as a community we can sort them out and edit the spec together. Some of these idea might have been discussed and dropped previously for various reasons which might not be documented or are buried somewhere. Getting everyone's thoughts onto a page were we can discuss this and find the reference will save everyone time and make for a better result in the end. [[User:Brian|Brian]]<br />
<br />
<h1>hCalendar <small>1.1</small></h1><br />
http://www.boogdesign.com/images/buttons/microformat_hcalendar.png<br />
<br />
'''This is a DRAFT version of an update to the [[hCalendar]] spec.'''<br />
<br />
hCalendar is a simple, open, distributed calendaring and events format, based on the iCalendar standard ([http://www.ietf.org/rfc/rfc2445.txt RFC2445]), suitable for embedding in HTML or XHTML, Atom, RSS, and arbitrary XML. hCalendar is one of several open [[microformats|microformat]] standards.<br />
<br />
Want to get started with writing an [[hcalendar|hCalendar]] event? Use the [http://microformats.org/code/hcalendar/creator hCalendar creator] to write up an event and publish it, or follow the [[hcalendar-authoring|hCalendar authoring tips]] to add hCalendar markup to your page of upcoming events or events you mention in blog posts, wikis, etc.<br />
<br />
__TOC__<br />
<br />
== Specification ==<br />
<br />
; Editor : [http://tobyinkster.co.uk Toby Inkster]<br />
; Authors : [http://tantek.com/ Tantek Çelik] ([http://technorati.com Technorati, Inc])<br />
: [http://suda.co.uk/ Brian Suda]<br />
: [http://tobyinkster.co.uk Toby Inkster]<br />
<br />
=== Copyright ===<br />
Per the public domain release on the authors' user pages ([[User:Tantek|Tantek Çelik]], [[User:Brian|Brian Suda]]) this specification is released into the public domain.<br />
<br />
{{MicroFormatPublicDomainContributionStatement}}<br />
<br />
=== Patents ===<br />
{{MicroFormatPatentStatement}}<br />
<br />
=== Inspiration and Acknowledgments ===<br />
Thanks to:<br />
* Adam Bosworth for leading the [http://wiki.oreillynet.com/foocamp04/index.cgi?HTMLForCalendars FOO Camp 2004 HTML For Calendars presentation] which brought together a critical mass of interested parties.<br />
<br />
== Introduction ==<br />
The iCalendar standard ([http://www.ietf.org/rfc/rfc2445.txt RFC2445]), has been broadly interoperably implemented (e.g. Apple's "iCal" application built into MacOSX).<br />
<br />
In addition, bloggers often discuss events on their blogs -- upcoming events, write-ups of past events, etc. With just a tad bit of structure, bloggers can discuss events in their blog(s) in such a way that spiders and other aggregators can retrieve such events, automatically convert them to iCalendar, and use them in any iCalendar application or service.<br />
<br />
This specification introduces the '''hCalendar''' format, which is a representation of a subset of the aforementioned iCalendar standard, in semantic HTML. Bloggers can both embed hCalendar events and todo items directly in their web pages, and style them with CSS to make them appear as desired. In addition, hCalendar enables applications to retrieve information about such events directly from web pages without having to reference a separate file.<br />
<br />
{{rfc-2119-intro}}<br />
<br />
== Semantic XHTML Design Principles ==<br />
<br />
{{semantic-xhtml-design-principles}}<br />
<br />
For practical implementations, it should be noted that Internet Explorer's support for styling <code><nowiki><abbr></nowiki></code> elements is poor, and may require wrapper elements.<br />
<br />
== Format ==<br />
=== In General ===<br />
The iCalendar standard ([http://www.ietf.org/rfc/rfc2445.txt RFC2445]) forms the basis of hCalendar.<br />
<br />
The basic format of hCalendar is to use iCalendar object/property names in lower-case for class names, and to map the nesting of iCalendar objects directly into nested XHTML elements.<br />
<br />
The VJOURNAL and VTIMEZONE components of iCalendar are explicitly not supported as part of hCalendar. hCalendar authors {{should-not}} use classes "vjournal" or "vtimezone" within an hCalendar context; parsers {{must-not}} attempt to interpret them if conforming to this version of the specification. [[hAtom]] ''may'' be used as an alternative to VJOURNAL for those authors wishing to publish journal information. VTIMEZONE has no suggested direct replacement: authors {{should}} restrict themselves to publishing dates in [http://www.w3.org/TR/NOTE-datetime W3CDTF format] using only well-known timezones.<br />
<br />
=== Root Class Name ===<br />
The root class name for hCalendar is "vcalendar". An element with a class name of "vcalendar" is itself called an ''hCalendar''. <br />
<br />
The root class name for events is "vevent". An element with a class name of "vevent" is itself called an ''hCalendar event''. The root class name for todo items is "vtodo". An element with a class name of "vtodo" is itself called an ''hCalendar todo''. The root class name for todo items is "valarm". An element with a class name of "valarm" is itself called an ''hCalendar alarm''. The root class name for todo items is "vfreebusy". An element with a class name of "vfreebusy" is itself called an ''hCalendar freebusy''.<br />
<br />
For authoring convenience, both all of the above are treated as root class names for parsing purposes. If a document contains elements with class names "vevent", "vtodo", "valarm" or "vfreebusy", but not "vcalendar", the entire document has an implied "vcalendar" context.<br />
<br />
=== Properties and Sub-properties ===<br />
The properties of an hCalendar are represented by elements inside the hCalendar. Elements with class names of the listed properties represent the values of those properties. Some properties have sub-properties, and those are represented by elements inside the elements for properties.<br />
<br />
==== Property List for hCalendars ====<br />
<br />
* vcalendar ?<br />
** ''vevent'' (hCalendar event)*<br />
** ''vtodo'' (hCalendar todo)*<br />
** ''valarm'' (hCalendar alarm)*<br />
** ''vfreebusy'' (hCalendar freebusy)*<br />
<br />
Although each component of an hCalendar is optional and may occur more than once, an hCalendar {{should}} contain at least one item.<br />
<br />
===== Key =====<br />
Based on Perl's [http://www.perl.com/doc/manual/html/pod/perlre.html standard quantifiers]:<br />
{| border="1" cellpadding="2"<br />
| '''bold''' {1} || {{must}} be present exactly once<br />
|- <br />
| ''italic''<nowiki>*</nowiki> || {{optional}}, and {{may}} occur more than once <br />
|- <br />
| + || {{must}} be present, and {{may}} occur more than once <br />
|- <br />
| ? || {{optional}}, but {{must-not}} occur more than once <br />
|- <br />
| [square brackets] || list of common values <br />
|- <br />
| (parentheses) || data format <br />
|- <br />
| # || comment <br />
|- <br />
| ! || awaiting documentation <br />
|}<br />
<br />
==== Property List for hCalendar Events ====<br />
<br />
hCalendar event properties<br />
<br />
* '''vevent''' {1}<br />
** '''summary''' {1}<br />
** '''dtstart''' ([[iso-8601|ISO date]]) +<br />
** description ?<br />
** comment ?<br />
** dtend (ISO date) ?<br />
** duration (ISO date duration) ?<br />
** ''url'' (link) *<br />
** ''location'' (text | [[geo]] | [[adr]] | [[hCard]]) *<br />
** ''[[geo]]'' *<br />
** ''resources'' *<br />
** ''attendee'' (text | [[hCard]]) *<br />
** ''organizer'' (text | [[hCard]]) *<br />
** ''contact'' (text | [[hCard]]) *<br />
** ''valarm'' (hCalendar alarm) *<br />
** ''related-to'' (link) *<br />
** recurrance-id (link) ?<br />
** ''rdate'' (ISO date) *<br />
** ''rrule'' (see the section on Recurrance below) *<br />
*** '''freq''' {1} ["SECONDLY", "MINUTELY", "HOURLY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY"]<br />
*** until|count ? ("until" and "count" are mutually exclusive. "count" is an integer; "until" is an ISO date)<br />
*** interval ?<br />
*** ''bysecond'' *<br />
*** ''byminute'' *<br />
*** ''byhour'' *<br />
*** ''byday'' *<br />
*** ''bymonthday'' *<br />
*** ''byyearday'' *<br />
*** ''byweekno'' *<br />
*** ''bymonth'' *<br />
*** ''bysetpos'' *<br />
*** wkst ?<br />
** ''exdate'' (ISO date) *<br />
** ''exrule'' (see the section on Recurrance below) *<br />
*** (as per "rrule")<br />
** uid (link) ?<br />
** transp ? ["OPAQUE", "TRANSPARENT"]<br />
** class ? ["PUBLIC", "PRIVATE", "CONFIDENTIAL"]<br />
** priority ? ["LOW", "MEDIUM", "HIGH" or integer from 0 to 9]<br />
** status ? ["TENTATIVE", "CONFIRMED", "CANCELLED"]<br />
** created<br />
** last-modified<br />
** sequence (integer)<br />
<br />
Additionally an hCalendar event {{may}} contain zero or more links marked up as [[rel-tag]] corresponding to the CATEGORY property from iCalendar; and zero or more links marked up as [[rel-enclosure]] corresponding to the ATTACH property.<br />
<br />
==== Property List for hCalendar Todos ====<br />
<br />
hCalendar todo items have the same properties as hCalendar events, except that they {{should-not}} contain "transp" or "dtend" properties. The following additional properties are defined:<br />
<br />
* '''vtodo''' {1}<br />
** due (ISO date) ?<br />
** percent-complete ?<br />
** completed (ISO date) ?<br />
<br />
Allowed values for the "status" property are instead: "NEEDS-ACTION", "COMPLETED", "IN-PROCESS", "CANCELLED".<br />
<br />
As per hCalendar events, [[rel-tag]] and [[rel-enclosure]] links {{may}} be used.<br />
<br />
==== Property List for hCalendar Alarms ====<br />
<br />
* '''valarm''' {1}<br />
** '''summary''' {1}<br />
** '''trigger''' {1}<br />
** description ?<br />
** duration (ISO date duration) ?<br />
** ''attendee'' (text | [[hCard]]) *<br />
** action ? ["AUDIO", "DISPLAY", "EMAIL", "PROCEDURE"]<br />
** repeat ?<br />
<br />
[[rel-enclosure]] links {{may}} be used, but [[rel-tag]] {{should-not}}.<br />
<br />
==== Property List for hCalendar Freebusys ====<br />
<br />
* '''vfreebusy''' {1}<br />
** '''summary''' {1}<br />
** '''freebusy''' +<br />
** comment ?<br />
** dtstart ?<br />
** dtend ?<br />
** duration ?<br />
** ''attendee'' (text | [[hCard]]) *<br />
** ''organizer'' (text | [[hCard]]) *<br />
** ''contact'' (text | [[hCard]]) *<br />
** ''url'' (link) *<br />
** uid (link) ?<br />
** dtstamp ?<br />
<br />
[[rel-tag]] and [[rel-enclosure]] links {{should-not}} be included.<br />
<br />
=== Case-Sensitivity of Pre-Defined Values ===<br />
<br />
Certain properties have a list of possible values, defined in the iCalendar specification in ALL-CAPS. For example, the "transp" property has a value of either "OPAQUE" or "TRANSPARENT". hCalendar authors {{may}} use lower or mixed case for these values. hCalendar parsers {{must}} convert these to upper case if exporting as iCalendar.<br />
<br />
=== Links ===<br />
<br />
When a class is found indicating a property of type "link", then it {{should}} be parsed as follows:<br />
# In the special case that the property is "uid", if the element has a fragment identifier (that is, if it has an "id" attribute or is &lt;a name>), then the value of the UID property {{must}} be set to the absolute URL of that fragment;<br />
# Otherwise, if the element is an &lt;a> element, the "href" attribute is used as the value;<br />
# Otherwise, if the element is an &lt;img> element, the "src" attribute is used as the value;<br />
# Otherwise, if the element is an &lt;object> element, the "data" attribute is used as the value;<br />
# If all else fails, the element is interpreted as if it were a non-link element, with the textual content of the element being treated as the value.<br />
<br />
=== Recurrence ===<br />
<br />
Recurrence rules and exclusion rules are complex. hCalendar parsers are not required to support them, and {{may}} choose to ignore the entire contents of "rrule" and "exrule" properties. But if "rrule" and "exrule" are supported, then they {{must}} be parsed according to the guidelines in this section of the specification.<br />
<br />
That is, parsers {{should}} aim to implement "rrule" and "exrule" entirely, or not at all.<br />
<br />
==== A Worked Example ====<br />
<br />
The following example iCalendar recurrence rule is given in RFC 2445:<br />
<br />
<pre><br />
DTSTART;TZID=US-Eastern:19970105T083000<br />
RRULE:FREQ=YEARLY;INTERVAL=2;BYMONTH=1;BYDAY=SU;BYHOUR=8,9;<br />
BYMINUTE=30<br />
</pre><br />
<br />
This represents an event which occurs every Sunday in January at 08:30 and 09:30, starting on the 5th of January 1997 and only occurring on odd-numbered years. Here is an example of how that might be translated into HTML:<br />
<br />
<pre><br />
<p>Our organisation has been offering a series of summer lectures since<br />
<abbr class="dtstart" title="19970105T083000">January 1997</abbr>. They<br />
are<br />
<span class="rrule"><br />
held <span class="freq">yearly</span>,<br />
every <span class="interval">2</span>nd year (1999, 2001, etc),<br />
every <span class="byday">Sunday</span><br />
in January <abbr class="bymonth" title="1" style="display:none"></abbr><br />
at <span class="byhour">8</span>:<span class="byminute">30</span> and<br />
repeated at <span class="byhour">9</span>:30.<br />
</span><br />
</p><br />
</pre><br />
<br />
This might be rendered as:<br />
<div style="margin:1em 4em 1.5em;padding:0.5em;border:1px solid silver;background:#f8f8f8;font-size:120%"><br />
<p>Our organisation has been offering a series of summer lectures since<br />
<abbr class="dtstart" title="19970105T083000">January 1997</abbr>. They<br />
are<br />
<span class="rrule"><br />
held <span class="freq">yearly</span>,<br />
every <span class="interval">2</span>nd year (1999, 2001, etc),<br />
every <span class="byday">Sunday</span><br />
in January <abbr class="bymonth" title="1" style="display:none"></abbr><br />
at <span class="byhour">8</span>:<span class="byminute">30</span> and<br />
repeated at <span class="byhour">9</span>:30.<br />
</span><br />
</p><br />
</div><br />
<br />
==== Notes ====<br />
<br />
# The examples above show only the DTSTART and RRULE properties and do not represent an entire VEVENT (which would require an element with class "vevent", and one with class "summary").<br />
# For further information and allowed values, see section 4.3.10 of RFC 2445.<br />
# Although iCalendar doesn't allow the "BY*" properties to be repeated (BYHOUR=8;BYHOUR=9) it does allow a single "BY*" property to contain a comma-separated list of numbers (BYHOUR=8,9). When an hCalendar recurrance rule specifies a repeated "BY*" property, parsers {{must}} interpret this as being equivalent to a comma-separated list in iCalendar.<br />
# RFC 2445 section 4.3.10 defines the tokens "SECONDLY" / "MINUTELY" / "HOURLY" / "DAILY" / "WEEKLY" / "MONTHLY" / "YEARLY" as possible values for FREQ. hCalendar allows these to be specified in a case-insensitive manner. Parsers {{should}} convert them to upper-case if exporting as an iCalendar file.<br />
# hCalendar recurrence rules {{may}} use tokens longer than two characters to identify the day. Parsers {{must}} trim the token down to its first two non-whitespace characters and upper-case them if wishing to convert them to iCalendar BYDAY tokens.<br />
# hCalendar recurrence rules {{should-not}} include multiple occurrences of "until" or "count" sub-properties, and {{should-not}} specify both an "until" and a "count" sub-property for the same rule. If a rule violates this requirement, parsers {{must}} use only the first "until" or "count" sub-property and *must* ignore subsequent uses of "until" or "count".<br />
<br />
==== Simplified Notation ====<br />
<br />
In the notation above, an element with class "freq" is a required child element of "rrule" and "exrule". When a parser encounters a recurrence rule with no "freq" specified, then the entire contents of the "rrule" or "exrule" element {{must}} be treated as a literal iCalendar RRULE or EXRULE. For example:<br />
<br />
<pre><p>Our organisation has been offering a series of summer lectures since<br />
<abbr class="dtstart" title="19970105T083000">January 1997</abbr>. They<br />
are held every second year (1999, 2001, etc), every Sunday in January at<br />
8:30 and repeated at 9:30.<br />
<abbr title="FREQ=YEARLY;INTERVAL=2;BYMONTH=1;BYDAY=SU;BYHOUR=8,9;BYMINUTE=30"<br />
class="rrule" style="display:none"></abbr><br />
</p></pre><br />
<br />
This allows authors to express complicated rules in more natural language without having to worry about how to map their language onto the various recurrance rule sub-properties.<br />
<br />
<!--<br />
=== The "beforethis" Class ===<br />
<br />
Any element with class "dtend", "due" or "until" ''may'' take an additional class of "beforethis" indicating that parsers ''should'' subtract exactly one second from the datetime indicated. For example:<br />
<br />
<pre><abbr class="dtend beforethis" title="20080301">until March</abbr></pre><br />
<br />
is equivalent to the following in iCalendar:<br />
<br />
<pre>DTEND:20080229T235959</pre><br />
<br />
Authors ''should not'' use "beforethis" for other date-related properties. Parsers ''should'' ignore "beforethis" found on any other properties.<br />
<br />
--><br />
<br />
== Examples ==<br />
<br />
=== Simple hCalendar Event ===<br />
<br />
Here is a sample event in an iCalendar:<br />
<pre><br />
<nowiki><br />
BEGIN:VCALENDAR<br />
PRODID:-//XYZproduct//EN<br />
VERSION:2.0<br />
BEGIN:VEVENT<br />
URL:http://www.web2con.com/<br />
DTSTART:20071005<br />
DTEND:20071020<br />
SUMMARY:Web 2.0 Conference<br />
LOCATION:Argent Hotel\, San Francisco\, CA<br />
END:VEVENT<br />
END:VCALENDAR<br />
</nowiki><br />
</pre><br />
<br />
and an equivalent event in hCalendar format with various elements optimized appropriately. See [[hcalendar-example1-steps]] for the derivation.<br />
<br />
<pre><nowiki><br />
<div class="vevent"><br />
<a class="url" href="http://www.web2con.com/">http://www.web2con.com/</a><br />
<span class="summary">Web 2.0 Conference</span>: <br />
<abbr class="dtstart" title="2007-10-05">October 5</abbr>-<br />
<abbr class="dtend" title="2007-10-20">19</abbr>,<br />
at the <span class="location">Argent Hotel, San Francisco, CA</span><br />
</div><br />
</nowiki></pre><br />
<br />
which could be displayed as:<br />
<br />
<div class="vevent"><br />
<span class="url">http://www.web2con.com/</span>&nbsp;<!-- note modified to account for idiosyncrasy of wiki software --><br />
<span class="summary">Web 2.0 Conference</span>: <br />
<abbr class="dtstart" title="2007-10-05">October 5</abbr>-<br />
<abbr class="dtend" title="2007-10-20">19</abbr>,<br />
at the <span class="location">Argent Hotel, San Francisco, CA</span><br />
</div><br />
<br />
Note that this is a '''live''' hCalendar microformat, which will be found on this page by parsers.<br />
<br />
=== More Complex hCalendar Event ===<br />
<br />
The following example specifies a scheduled meeting that begins at 8:30 AM EST on March 12, 1998 and ends at 9:30 AM EST on March 12, 1998. <br />
<br />
<pre><nowiki><br />
BEGIN:VCALENDAR<br />
BEGIN:VEVENT<br />
UID:guid-1.host1.com<br />
DTSTAMP:19980309T231000Z<br />
DESCRIPTION:Project XYZ Review Meeting<br />
SUMMARY:XYZ Project Review<br />
DTSTART:19980312T133000Z<br />
DTEND:19980312T143000Z<br />
LOCATION:1CP Conference Room 4350<br />
CATEGORY:xyz<br />
END:VEVENT<br />
END:VCALENDAR<br />
</nowiki></pre><br />
<br />
The equivalent in hCalendar:<br />
<br />
<pre><nowiki><br />
<div class="vevent"><br />
<h3 class="summary">XYZ Project Review</h3><br />
<p class="description"><a href="http://acme.example.com/projects/xyz" rel="tag">Project XYZ</a> Review Meeting</p><br />
<p>To be held on <abbr class="dtstart" title="1998-03-12T08:30:00-05:00">12 March 1998 from 8:30am EST</abbr> <br />
until <abbr class="dtend" title="1998-03-12T09:30:00-05:00">9:30am EST</abbr></p><br />
<p>Location: <span class="location">1CP Conference Room 4350</span></p><br />
<small>Booked by: <span class="uid">guid-1.host1.com</span> on <br />
<abbr class="dtstamp" title="19980309T231000Z">9 Mar 1998 6:00pm</abbr></small><br />
</div><br />
</nowiki></pre><br />
<br />
This could be displayed as:<br />
<br />
<div class="vevent" style="margin:1em 4em 1.5em;padding:0.5em;border:1px solid silver;background:#f8f8f8;font-size:120%"><h3 class="summary">XYZ Project Review</h3><br />
<p class="description">[http://acme.example.com/projects/xyz Project XYZ] Review Meeting</p><br />
<p>To be held on <abbr class="dtstart" title="1998-03-12T08:30:00-05:00">12 March 1998 from 8:30am EST</abbr> until <abbr class="dtend" title="1998-03-12T09:30:00-05:00">9:30am EST</abbr></p><br />
<p>Location: <span class="location">1CP Conference Room 4350</span></p><br />
<small>Booked by: <span class="uid">guid-1.host1.com</span> on <abbr class="dtstamp" title="19980309T231000Z">9 Mar 1998 6:00pm</abbr></small></div><br />
<br />
Note 1: The product information is not necessary since hCalendar is an interchange format. When transforming hCalendar back into iCalendar, the transforming engine should add its own product ID.<br />
<br />
Note 2: A surrounding <code><nowiki><span class="vcalendar"></nowiki></code> element is optional, and is left out as such. It is optional since the context of a vcalendar is implied when a vevent is encountered. The implied context/scope is that of the document. Authors may explicitly use elements with class="vcalendar" to wrap sets of vevents that all belong to the same calendar, e.g. when publishing multiple calendars on the same page.<br />
<br />
Note 3: The version information is unnecessary in hCalendar mark-up directly since the version will be defined by the profile of hCalendar that is used/referred to in the 'profile' attribute of the <head> element.<br />
<br />
Note 4: [[iso-8601|ISO8601]] dates (required by iCalendar) are not very human friendly. In addition, the year is often understood implicitly by humans from the context. Thus <code><nowiki><abbr></nowiki></code> elements are used to simultaneously provide a human friendly date and/or time in the visible contents of the element, while placing the respective machine parsable comprehensive ISO8601 datetime in the 'title' attribute.<br />
The notation <code>YYYY-MM-DDThh:mm:ss</code> should be used for better readability, following the format of RFC 3339.<br />
<br />
Note 5: The difference between the DTEND ISO8601 date (2005-10-08) and the human readable date (7) is NOT a mistake. [http://lists.osafoundation.org/pipermail/ietf-calsify/2005-September/000769.html DTEND is exclusive], meaning, that the event ends just before the DTEND. Thus for events which start on one day and end on another day, the DTEND date must be specified as the day after the day that a human would say is the last day of the event.<br />
<br />
Note 6: The location in this example contains implicit structure (venue name, city, state) which could be marked up explicitly as an [[hcard|hCard]]. See [http://microformats.org/wiki/hcalendar-brainstorming#hCard_locations hCalendar brainstorming: hCard locations] for a informative explanation of how to do this.<br />
<br />
== References ==<br />
=== Normative References ===<br />
* [http://www.w3.org/TR/2002/REC-xhtml1-20020801/ XHTML 1.0 SE]<br />
* [[hcard|hCard]]<br />
* [http://www.ietf.org/rfc/rfc2445.txt iCalendar RFC2445]<br />
* [[rfc-2119| RFC 2119]]<br />
* [[iso-8601|ISO8601]]<br />
<br />
=== Informative References ===<br />
* [http://w3.org/TR/REC-CSS1 CSS1]<br />
* [http://tantek.com/log/2004/09.html#hcalendar hCalendar term introduced and defined on the Web, 20040930]<br />
* [http://wiki.oreillynet.com/foocamp04/index.cgi?HTMLForCalendars FOO Camp 2004 HTML For Calendars presentation, 20040911]<br />
* [http://wiki.oreillynet.com/foocamp04/index.cgi?SimpleSemanticFormats FOO Camp 2004 Simple Semantic Formats presentation, 20040910]<br />
* [http://ietfreport.isoc.org/idref/draft-royer-ical-basic/ iCal-Basic (latest)] [http://www.faqs.org/ftp/pub/pub/internet-drafts/draft-royer-ical-basic-04.txt (draft 04)]<br />
* [http://www.w3.org/TR/NOTE-datetime W3C Note on Date and Time Formats]<br />
* [http://www.imc.org/pdi/ Internet Mail Consortium Personal Data Interchange vCard and vCalendar]<br />
* Contributed from http://developers.technorati.com/wiki/hCalendar<br />
<br />
==== Specifications That Use hCalendar ====<br />
* [[hreview|hReview]]<br />
<br />
==== Related Work ====<br />
* [http://lists.osafoundation.org/pipermail/ietf-calsify/ IETF-calsify archives]<br />
* [http://www.softwarestudio.org/iCal/2445Issues.html RFC2445 Issues List]<br />
* [http://ietf.webdav.org/calsify/ CALSIFY WG Links And Resources]<br />
<br />
== Further Reading ==<br />
* [http://www.livejournal.com/users/jwz/444651.html jwz - Hula] (required reading)<br />
* [http://www.jwz.org/doc/groupware.html Groupware Bad by Jamie Zawinski] crystallizes the reason for hCalendar ('''emphasis''' added):<br />
<blockquote>Right now people can do that by publishing .ics files, but it's not trivial to do so, and it's work on the part of other people to look at them. '''If it's not HTML hanging off our friend's home page that can be viewed in any browser on a public terminal in a library, the bar to entry is too high and it's useless.'''</blockquote><br />
<br />
* [http://muddybranch.thejkgroup.com/ Jason Klemow's blog]<br />
* [http://weblog.infoworld.com/udell/2006/01/11.html#a1368 Moving forward with microformats] by [http://weblog.infoworld.com/udell Jon Udell] provides an hCalendar example and some discussion.<br />
* See also [http://www.technorati.com/cosmos/referer.html blogs discussing this page] and the [http://technorati.com/tags/hcalendar hCalendar tag]<br />
* [http://en.wikipedia.org/wiki/HCalendar Wikipedia article on hCalendar] (requires expansion)<br />
<br />
== Related Pages ==<br />
{{hcalendar-related-pages}}</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=User:TobyInk/hcalendar-1.1&diff=25968User:TobyInk/hcalendar-1.12008-03-01T17:24:27Z<p>AndyMabbett: templates for RFC 2119 terms; typos</p>
<hr />
<div>(I am aware of the existence of [[hcalendar-brainstorming]] and [[htask]]. This is intended to be more of a formal-style document, representing a draft replacement for the current [[hcalendar]] spec, mostly aimed at filling in areas where the current spec is incomplete or ambiguous, rather than additing newly requested functionality.)<br />
<br />
Rather than replacing the current spec, we can iterate on it. If there are areas that you feel are incomplete or ambiguous please post them to a wiki page and as a community we can sort them out and edit the spec together. Some of these idea might have been discussed and dropped previously for various reasons which might not be documented or are buried somewhere. Getting everyone's thoughts onto a page were we can discuss this and find the reference will save everyone time and make for a better result in the end. [[User:Brian|Brian]]<br />
<br />
<h1>hCalendar <small>1.1</small></h1><br />
http://www.boogdesign.com/images/buttons/microformat_hcalendar.png<br />
<br />
'''This is a DRAFT version of an update to the [[hCalendar]] spec.'''<br />
<br />
hCalendar is a simple, open, distributed calendaring and events format, based on the iCalendar standard ([http://www.ietf.org/rfc/rfc2445.txt RFC2445]), suitable for embedding in HTML or XHTML, Atom, RSS, and arbitrary XML. hCalendar is one of several open [[microformats|microformat]] standards.<br />
<br />
Want to get started with writing an [[hcalendar|hCalendar]] event? Use the [http://microformats.org/code/hcalendar/creator hCalendar creator] to write up an event and publish it, or follow the [[hcalendar-authoring|hCalendar authoring tips]] to add hCalendar markup to your page of upcoming events or events you mention in blog posts, wikis, etc.<br />
<br />
__TOC__<br />
<br />
== Specification ==<br />
<br />
; Editor : [http://tobyinkster.co.uk Toby Inkster]<br />
; Authors : [http://tantek.com/ Tantek Çelik] ([http://technorati.com Technorati, Inc])<br />
: [http://suda.co.uk/ Brian Suda]<br />
: [http://tobyinkster.co.uk Toby Inkster]<br />
<br />
=== Copyright ===<br />
Per the public domain release on the authors' user pages ([[User:Tantek|Tantek Çelik]], [[User:Brian|Brian Suda]]) this specification is released into the public domain.<br />
<br />
{{MicroFormatPublicDomainContributionStatement}}<br />
<br />
=== Patents ===<br />
{{MicroFormatPatentStatement}}<br />
<br />
=== Inspiration and Acknowledgments ===<br />
Thanks to:<br />
* Adam Bosworth for leading the [http://wiki.oreillynet.com/foocamp04/index.cgi?HTMLForCalendars FOO Camp 2004 HTML For Calendars presentation] which brought together a critical mass of interested parties.<br />
<br />
== Introduction ==<br />
The iCalendar standard ([http://www.ietf.org/rfc/rfc2445.txt RFC2445]), has been broadly interoperably implemented (e.g. Apple's "iCal" application built into MacOSX).<br />
<br />
In addition, bloggers often discuss events on their blogs -- upcoming events, write-ups of past events, etc. With just a tad bit of structure, bloggers can discuss events in their blog(s) in such a way that spiders and other aggregators can retrieve such events, automatically convert them to iCalendar, and use them in any iCalendar application or service.<br />
<br />
This specification introduces the '''hCalendar''' format, which is a representation of a subset of the aforementioned iCalendar standard, in semantic HTML. Bloggers can both embed hCalendar events and todo items directly in their web pages, and style them with CSS to make them appear as desired. In addition, hCalendar enables applications to retrieve information about such events directly from web pages without having to reference a separate file.<br />
<br />
{{rfc-2119-intro}}<br />
<br />
== Semantic XHTML Design Principles ==<br />
<br />
{{semantic-xhtml-design-principles}}<br />
<br />
For practical implementations, it should be noted that Internet Explorer's support for styling <code><nowiki><abbr></nowiki></code> elements is poor, and may require wrapper elements.<br />
<br />
== Format ==<br />
=== In General ===<br />
The iCalendar standard ([http://www.ietf.org/rfc/rfc2445.txt RFC2445]) forms the basis of hCalendar.<br />
<br />
The basic format of hCalendar is to use iCalendar object/property names in lower-case for class names, and to map the nesting of iCalendar objects directly into nested XHTML elements.<br />
<br />
The VJOURNAL and VTIMEZONE components of iCalendar are explicitly not supported as part of hCalendar. hCalendar authors {{should-not}} use classes "vjournal" or "vtimezone" within an hCalendar context; parsers {{must-not}} attempt to interpret them if conforming to this version of the specification. [[hAtom]] ''may'' be used as an alternative to VJOURNAL for those authors wishing to publish journal information. VTIMEZONE has no suggested direct replacement: authors {{should}} restrict themselves to publishing dates in [http://www.w3.org/TR/NOTE-datetime W3CDTF format] using only well-known timezones.<br />
<br />
=== Root Class Name ===<br />
The root class name for hCalendar is "vcalendar". An element with a class name of "vcalendar" is itself called an ''hCalendar''. <br />
<br />
The root class name for events is "vevent". An element with a class name of "vevent" is itself called an ''hCalendar event''. The root class name for todo items is "vtodo". An element with a class name of "vtodo" is itself called an ''hCalendar todo''. The root class name for todo items is "valarm". An element with a class name of "valarm" is itself called an ''hCalendar alarm''. The root class name for todo items is "vfreebusy". An element with a class name of "vfreebusy" is itself called an ''hCalendar freebusy''.<br />
<br />
For authoring convenience, both all of the above are treated as root class names for parsing purposes. If a document contains elements with class names "vevent", "vtodo", "valarm" or "vfreebusy", but not "vcalendar", the entire document has an implied "vcalendar" context.<br />
<br />
=== Properties and Sub-properties ===<br />
The properties of an hCalendar are represented by elements inside the hCalendar. Elements with class names of the listed properties represent the values of those properties. Some properties have sub-properties, and those are represented by elements inside the elements for properties.<br />
<br />
==== Property List for hCalendars ====<br />
<br />
* vcalendar ?<br />
** ''vevent'' (hCalendar event)*<br />
** ''vtodo'' (hCalendar todo)*<br />
** ''valarm'' (hCalendar alarm)*<br />
** ''vfreebusy'' (hCalendar freebusy)*<br />
<br />
Although each component of an hCalendar is optional and may occur more than once, an hCalendar {{should}} contain at least one item.<br />
<br />
===== Key =====<br />
Based on Perl's [http://www.perl.com/doc/manual/html/pod/perlre.html standard quantifiers]:<br />
{| border="1" cellpadding="2"<br />
| '''bold''' {1} || {{must}} be present exactly once<br />
|- <br />
| ''italic''<nowiki>*</nowiki> || {{optional}}, and {{may}} occur more than once <br />
|- <br />
| + || {{must}} be present, and {{may}} occur more than once <br />
|- <br />
| ? || {{optional}}, but {{must-not}} occur more than once <br />
|- <br />
| [square brackets] || list of common values <br />
|- <br />
| (parentheses) || data format <br />
|- <br />
| # || comment <br />
|- <br />
| ! || awaiting documentation <br />
|}<br />
<br />
==== Property List for hCalendar Events ====<br />
<br />
hCalendar event properties<br />
<br />
* '''vevent''' {1}<br />
** '''summary''' {1}<br />
** '''dtstart''' ([[iso-8601|ISO date]]) +<br />
** description ?<br />
** comment ?<br />
** dtend (ISO date) ?<br />
** duration (ISO date duration) ?<br />
** ''url'' (link) *<br />
** ''location'' (text | [[geo]] | [[adr]] | [[hCard]]) *<br />
** ''[[geo]]'' *<br />
** ''resources'' *<br />
** ''attendee'' (text | [[hCard]]) *<br />
** ''organizer'' (text | [[hCard]]) *<br />
** ''contact'' (text | [[hCard]]) *<br />
** ''valarm'' (hCalendar alarm) *<br />
** ''related-to'' (link) *<br />
** recurrance-id (link) ?<br />
** ''rdate'' (ISO date) *<br />
** ''rrule'' (see the section on Recurrance below) *<br />
*** '''freq''' {1} ["SECONDLY", "MINUTELY", "HOURLY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY"]<br />
*** until|count ? ("until" and "count" are mutually exclusive. "count" is an integer; "until" is an ISO date)<br />
*** interval ?<br />
*** ''bysecond'' *<br />
*** ''byminute'' *<br />
*** ''byhour'' *<br />
*** ''byday'' *<br />
*** ''bymonthday'' *<br />
*** ''byyearday'' *<br />
*** ''byweekno'' *<br />
*** ''bymonth'' *<br />
*** ''bysetpos'' *<br />
*** wkst ?<br />
** ''exdate'' (ISO date) *<br />
** ''exrule'' (see the section on Recurrance below) *<br />
*** (as per "rrule")<br />
** uid (link) ?<br />
** transp ? ["OPAQUE", "TRANSPARENT"]<br />
** class ? ["PUBLIC", "PRIVATE", "CONFIDENTIAL"]<br />
** priority ? ["LOW", "MEDIUM", "HIGH" or integer from 0 to 9]<br />
** status ? ["TENTATIVE", "CONFIRMED", "CANCELLED"]<br />
** created<br />
** last-modified<br />
** sequence (integer)<br />
<br />
Additionally an hCalendar event {{may}} contain zero or more links marked up as [[rel-tag]] corresponding to the CATEGORY property from iCalendar; and zero or more links marked up as [[rel-enclosure]] corresponding to the ATTACH property.<br />
<br />
==== Property List for hCalendar Todos ====<br />
<br />
hCalendar todo items have the same properties as hCalendar events, except that they {{should-not}} contain "transp" or "dtend" properties. The following additional properties are defined:<br />
<br />
* '''vtodo''' {1}<br />
** due (ISO date) ?<br />
** percent-complete ?<br />
** completed (ISO date) ?<br />
<br />
Allowed values for the "status" property are instead: "NEEDS-ACTION", "COMPLETED", "IN-PROCESS", "CANCELLED".<br />
<br />
As per hCalendar events, [[rel-tag]] and [[rel-enclosure]] links {{may}} be used.<br />
<br />
==== Property List for hCalendar Alarms ====<br />
<br />
* '''valarm''' {1}<br />
** '''summary''' {1}<br />
** '''trigger''' {1}<br />
** description ?<br />
** duration (ISO date duration) ?<br />
** ''attendee'' (text | [[hCard]]) *<br />
** action ? ["AUDIO", "DISPLAY", "EMAIL", "PROCEDURE"]<br />
** repeat ?<br />
<br />
[[rel-enclosure]] links {{may}} be used, but [[rel-tag]] {{should-not}}.<br />
<br />
==== Property List for hCalendar Freebusys ====<br />
<br />
* '''vfreebusy''' {1}<br />
** '''summary''' {1}<br />
** '''freebusy''' +<br />
** comment ?<br />
** dtstart ?<br />
** dtend ?<br />
** duration ?<br />
** ''attendee'' (text | [[hCard]]) *<br />
** ''organizer'' (text | [[hCard]]) *<br />
** ''contact'' (text | [[hCard]]) *<br />
** ''url'' (link) *<br />
** uid (link) ?<br />
** dtstamp ?<br />
<br />
[[rel-tag]] and [[rel-enclosure]] links {{should-not}} be included.<br />
<br />
=== Case-Sensitivity of Pre-Defined Values ===<br />
<br />
Certain properties have a list of possible values, defined in the iCalendar specification in ALL-CAPS. For example, the "transp" property has a value of either "OPAQUE" or "TRANSPARENT". hCalendar authors {{may}} use lower or mixed case for these values. hCalendar parsers {{must}} convert these to upper case if exporting as iCalendar.<br />
<br />
=== Links ===<br />
<br />
When a class is found indicating a property of type "link", then it {{should}} be parsed as follows:<br />
# In the special case that the property is "uid", if the element has a fragment identifier (that is, if it has an "id" attribute or is &lt;a name>), then the value of the UID property {{must}} be set to the absolute URL of that fragment;<br />
# Otherwise, if the element is an &lt;a> element, the "href" attribute is used as the value;<br />
# Otherwise, if the element is an &lt;img> element, the "src" attribute is used as the value;<br />
# Otherwise, if the element is an &lt;object> element, the "data" attribute is used as the value;<br />
# If all else fails, the element is interpreted as if it were a non-link element, with the textual content of the element being treated as the value.<br />
<br />
=== Recurrence ===<br />
<br />
Recurrence rules and exclusion rules are complex. hCalendar parsers are not required to support them, and {{may}} choose to ignore the entire contents of "rrule" and "exrule" properties. But if "rrule" and "exrule" are supported, then they {{must}} be parsed according to the guidelines in this section of the specification.<br />
<br />
That is, parsers {{should}} aim to implement "rrule" and "exrule" entirely, or not at all.<br />
<br />
==== A Worked Example ====<br />
<br />
The following example iCalendar recurrence rule is given in RFC 2445:<br />
<br />
<pre><br />
DTSTART;TZID=US-Eastern:19970105T083000<br />
RRULE:FREQ=YEARLY;INTERVAL=2;BYMONTH=1;BYDAY=SU;BYHOUR=8,9;<br />
BYMINUTE=30<br />
</pre><br />
<br />
This represents an event which occurs every Sunday in January at 08:30 and 09:30, starting on the 5th of January 1997 and only occurring on odd-numbered years. Here is an example of how that might be translated into HTML:<br />
<br />
<pre><br />
<p>Our organisation has been offering a series of summer lectures since<br />
<abbr class="dtstart" title="19970105T083000">January 1997</abbr>. They<br />
are<br />
<span class="rrule"><br />
held <span class="freq">yearly</span>,<br />
every <span class="interval">2</span>nd year (1999, 2001, etc),<br />
every <span class="byday">Sunday</span><br />
in January <abbr class="bymonth" title="1" style="display:none"></abbr><br />
at <span class="byhour">8</span>:<span class="byminute">30</span> and<br />
repeated at <span class="byhour">9</span>:30.<br />
</span><br />
</p><br />
</pre><br />
<br />
This might be rendered as:<br />
<div style="margin:1em 4em 1.5em;padding:0.5em;border:1px solid silver;background:#f8f8f8;font-size:120%"><br />
<p>Our organisation has been offering a series of summer lectures since<br />
<abbr class="dtstart" title="19970105T083000">January 1997</abbr>. They<br />
are<br />
<span class="rrule"><br />
held <span class="freq">yearly</span>,<br />
every <span class="interval">2</span>nd year (1999, 2001, etc),<br />
every <span class="byday">Sunday</span><br />
in January <abbr class="bymonth" title="1" style="display:none"></abbr><br />
at <span class="byhour">8</span>:<span class="byminute">30</span> and<br />
repeated at <span class="byhour">9</span>:30.<br />
</span><br />
</p><br />
</div><br />
<br />
==== Notes ====<br />
<br />
# The examples above show only the DTSTART and RRULE properties and do not represent an entire VEVENT (which would require an element with class "vevent", and one with class "summary").<br />
# For further information and allowed values, see section 4.3.10 of RFC 2445.<br />
# Although iCalendar doesn't allow the "BY*" properties to be repeated (BYHOUR=8;BYHOUR=9) it does allow a single "BY*" property to contain a comma-separated list of numbers (BYHOUR=8,9). When an hCalendar recurrance rule specifies a repeated "BY*" property, parsers *must* interpret this as being equivalent to a comma-separated list in iCalendar.<br />
# RFC 2445 section 4.3.10 defines the tokens "SECONDLY" / "MINUTELY" / "HOURLY" / "DAILY" / "WEEKLY" / "MONTHLY" / "YEARLY" as possible values for FREQ. hCalendar allows these to be specified in a case-insensitive manner. Parsers *should* convert them to upper-case if exporting as an iCalendar file.<br />
# hCalendar recurrence rules {{may}} use tokens longer than two characters to identify the day. Parsers *must* trim the token down to its first two non-whitespace characters and upper-case them if wishing to convert them to iCalendar BYDAY tokens.<br />
# hCalendar recurrence rules *should not* include multiple occurrences of "until" or "count" sub-properties, and *should not* specify both an "until" and a "count" sub-property for the same rule. If a rule violates this requirement, parsers *must* use only the first "until" or "count" sub-property and *must* ignore subsequent uses of "until" or "count".<br />
<br />
==== Simplified Notation ====<br />
<br />
In the notation above, an element with class "freq" is a required child element of "rrule" and "exrule". When a parser encounters a recurrence rule with no "freq" specified, then the entire contents of the "rrule" or "exrule" element *must* bre treated as a literal iCalendar RRULE or EXRULE. For example:<br />
<br />
<pre><p>Our organisation has been offering a series of summer lectures since<br />
<abbr class="dtstart" title="19970105T083000">January 1997</abbr>. They<br />
are held every second year (1999, 2001, etc), every Sunday in January at<br />
8:30 and repeated at 9:30.<br />
<abbr title="FREQ=YEARLY;INTERVAL=2;BYMONTH=1;BYDAY=SU;BYHOUR=8,9;BYMINUTE=30"<br />
class="rrule" style="display:none"></abbr><br />
</p></pre><br />
<br />
This allows authors to express complicated rules in more natural language without having to worry about how to map their language onto the various recurrance rule sub-properties.<br />
<br />
<!--<br />
=== The "beforethis" Class ===<br />
<br />
Any element with class "dtend", "due" or "until" ''may'' take an additional class of "beforethis" indicating that parsers ''should'' subtract exactly one second from the datetime indicated. For example:<br />
<br />
<pre><abbr class="dtend beforethis" title="20080301">until March</abbr></pre><br />
<br />
is equivalent to the following in iCalendar:<br />
<br />
<pre>DTEND:20080229T235959</pre><br />
<br />
Authors ''should not'' use "beforethis" for other date-related properties. Parsers ''should'' ignore "beforethis" found on any other properties.<br />
<br />
--><br />
<br />
== Examples ==<br />
<br />
=== Simple hCalendar Event ===<br />
<br />
Here is a sample event in an iCalendar:<br />
<pre><br />
<nowiki><br />
BEGIN:VCALENDAR<br />
PRODID:-//XYZproduct//EN<br />
VERSION:2.0<br />
BEGIN:VEVENT<br />
URL:http://www.web2con.com/<br />
DTSTART:20071005<br />
DTEND:20071020<br />
SUMMARY:Web 2.0 Conference<br />
LOCATION:Argent Hotel\, San Francisco\, CA<br />
END:VEVENT<br />
END:VCALENDAR<br />
</nowiki><br />
</pre><br />
<br />
and an equivalent event in hCalendar format with various elements optimized appropriately. See [[hcalendar-example1-steps]] for the derivation.<br />
<br />
<pre><nowiki><br />
<div class="vevent"><br />
<a class="url" href="http://www.web2con.com/">http://www.web2con.com/</a><br />
<span class="summary">Web 2.0 Conference</span>: <br />
<abbr class="dtstart" title="2007-10-05">October 5</abbr>-<br />
<abbr class="dtend" title="2007-10-20">19</abbr>,<br />
at the <span class="location">Argent Hotel, San Francisco, CA</span><br />
</div><br />
</nowiki></pre><br />
<br />
which could be displayed as:<br />
<br />
<div class="vevent"><br />
<span class="url">http://www.web2con.com/</span>&nbsp;<!-- note modified to account for idiosyncrasy of wiki software --><br />
<span class="summary">Web 2.0 Conference</span>: <br />
<abbr class="dtstart" title="2007-10-05">October 5</abbr>-<br />
<abbr class="dtend" title="2007-10-20">19</abbr>,<br />
at the <span class="location">Argent Hotel, San Francisco, CA</span><br />
</div><br />
<br />
Note that this is a '''live''' hCalendar microformat, which will be found on this page by parsers.<br />
<br />
=== More Complex hCalendar Event ===<br />
<br />
The following example specifies a scheduled meeting that begins at 8:30 AM EST on March 12, 1998 and ends at 9:30 AM EST on March 12, 1998. <br />
<br />
<pre><nowiki><br />
BEGIN:VCALENDAR<br />
BEGIN:VEVENT<br />
UID:guid-1.host1.com<br />
DTSTAMP:19980309T231000Z<br />
DESCRIPTION:Project XYZ Review Meeting<br />
SUMMARY:XYZ Project Review<br />
DTSTART:19980312T133000Z<br />
DTEND:19980312T143000Z<br />
LOCATION:1CP Conference Room 4350<br />
CATEGORY:xyz<br />
END:VEVENT<br />
END:VCALENDAR<br />
</nowiki></pre><br />
<br />
The equivalent in hCalendar:<br />
<br />
<pre><nowiki><br />
<div class="vevent"><br />
<h3 class="summary">XYZ Project Review</h3><br />
<p class="description"><a href="http://acme.example.com/projects/xyz" rel="tag">Project XYZ</a> Review Meeting</p><br />
<p>To be held on <abbr class="dtstart" title="1998-03-12T08:30:00-05:00">12 March 1998 from 8:30am EST</abbr> <br />
until <abbr class="dtend" title="1998-03-12T09:30:00-05:00">9:30am EST</abbr></p><br />
<p>Location: <span class="location">1CP Conference Room 4350</span></p><br />
<small>Booked by: <span class="uid">guid-1.host1.com</span> on <br />
<abbr class="dtstamp" title="19980309T231000Z">9 Mar 1998 6:00pm</abbr></small><br />
</div><br />
</nowiki></pre><br />
<br />
This could be displayed as:<br />
<br />
<div class="vevent" style="margin:1em 4em 1.5em;padding:0.5em;border:1px solid silver;background:#f8f8f8;font-size:120%"><h3 class="summary">XYZ Project Review</h3><br />
<p class="description">[http://acme.example.com/projects/xyz Project XYZ] Review Meeting</p><br />
<p>To be held on <abbr class="dtstart" title="1998-03-12T08:30:00-05:00">12 March 1998 from 8:30am EST</abbr> until <abbr class="dtend" title="1998-03-12T09:30:00-05:00">9:30am EST</abbr></p><br />
<p>Location: <span class="location">1CP Conference Room 4350</span></p><br />
<small>Booked by: <span class="uid">guid-1.host1.com</span> on <abbr class="dtstamp" title="19980309T231000Z">9 Mar 1998 6:00pm</abbr></small></div><br />
<br />
Note 1: The product information is not necessary since hCalendar is an interchange format. When transforming hCalendar back into iCalendar, the transforming engine should add its own product ID.<br />
<br />
Note 2: A surrounding <code><nowiki><span class="vcalendar"></nowiki></code> element is optional, and is left out as such. It is optional since the context of a vcalendar is implied when a vevent is encountered. The implied context/scope is that of the document. Authors may explicitly use elements with class="vcalendar" to wrap sets of vevents that all belong to the same calendar, e.g. when publishing multiple calendars on the same page.<br />
<br />
Note 3: The version information is unnecessary in hCalendar mark-up directly since the version will be defined by the profile of hCalendar that is used/referred to in the 'profile' attribute of the <head> element.<br />
<br />
Note 4: [[iso-8601|ISO8601]] dates (required by iCalendar) are not very human friendly. In addition, the year is often understood implicitly by humans from the context. Thus <code><nowiki><abbr></nowiki></code> elements are used to simultaneously provide a human friendly date and/or time in the visible contents of the element, while placing the respective machine parsable comprehensive ISO8601 datetime in the 'title' attribute.<br />
The notation <code>YYYY-MM-DDThh:mm:ss</code> should be used for better readability, following the format of RFC 3339.<br />
<br />
Note 5: The difference between the DTEND ISO8601 date (2005-10-08) and the human readable date (7) is NOT a mistake. [http://lists.osafoundation.org/pipermail/ietf-calsify/2005-September/000769.html DTEND is exclusive], meaning, that the event ends just before the DTEND. Thus for events which start on one day and end on another day, the DTEND date must be specified as the day after the day that a human would say is the last day of the event.<br />
<br />
Note 6: The location in this example contains implicit structure (venue name, city, state) which could be marked up explicitly as an [[hcard|hCard]]. See [http://microformats.org/wiki/hcalendar-brainstorming#hCard_locations hCalendar brainstorming: hCard locations] for a informative explanation of how to do this.<br />
<br />
== References ==<br />
=== Normative References ===<br />
* [http://www.w3.org/TR/2002/REC-xhtml1-20020801/ XHTML 1.0 SE]<br />
* [[hcard|hCard]]<br />
* [http://www.ietf.org/rfc/rfc2445.txt iCalendar RFC2445]<br />
* [[rfc-2119| RFC 2119]]<br />
* [[iso-8601|ISO8601]]<br />
<br />
=== Informative References ===<br />
* [http://w3.org/TR/REC-CSS1 CSS1]<br />
* [http://tantek.com/log/2004/09.html#hcalendar hCalendar term introduced and defined on the Web, 20040930]<br />
* [http://wiki.oreillynet.com/foocamp04/index.cgi?HTMLForCalendars FOO Camp 2004 HTML For Calendars presentation, 20040911]<br />
* [http://wiki.oreillynet.com/foocamp04/index.cgi?SimpleSemanticFormats FOO Camp 2004 Simple Semantic Formats presentation, 20040910]<br />
* [http://ietfreport.isoc.org/idref/draft-royer-ical-basic/ iCal-Basic (latest)] [http://www.faqs.org/ftp/pub/pub/internet-drafts/draft-royer-ical-basic-04.txt (draft 04)]<br />
* [http://www.w3.org/TR/NOTE-datetime W3C Note on Date and Time Formats]<br />
* [http://www.imc.org/pdi/ Internet Mail Consortium Personal Data Interchange vCard and vCalendar]<br />
* Contributed from http://developers.technorati.com/wiki/hCalendar<br />
<br />
==== Specifications That Use hCalendar ====<br />
* [[hreview|hReview]]<br />
<br />
==== Related Work ====<br />
* [http://lists.osafoundation.org/pipermail/ietf-calsify/ IETF-calsify archives]<br />
* [http://www.softwarestudio.org/iCal/2445Issues.html RFC2445 Issues List]<br />
* [http://ietf.webdav.org/calsify/ CALSIFY WG Links And Resources]<br />
<br />
== Further Reading ==<br />
* [http://www.livejournal.com/users/jwz/444651.html jwz - Hula] (required reading)<br />
* [http://www.jwz.org/doc/groupware.html Groupware Bad by Jamie Zawinski] crystallizes the reason for hCalendar ('''emphasis''' added):<br />
<blockquote>Right now people can do that by publishing .ics files, but it's not trivial to do so, and it's work on the part of other people to look at them. '''If it's not HTML hanging off our friend's home page that can be viewed in any browser on a public terminal in a library, the bar to entry is too high and it's useless.'''</blockquote><br />
<br />
* [http://muddybranch.thejkgroup.com/ Jason Klemow's blog]<br />
* [http://weblog.infoworld.com/udell/2006/01/11.html#a1368 Moving forward with microformats] by [http://weblog.infoworld.com/udell Jon Udell] provides an hCalendar example and some discussion.<br />
* See also [http://www.technorati.com/cosmos/referer.html blogs discussing this page] and the [http://technorati.com/tags/hcalendar hCalendar tag]<br />
* [http://en.wikipedia.org/wiki/HCalendar Wikipedia article on hCalendar] (requires expansion)<br />
<br />
== Related Pages ==<br />
{{hcalendar-related-pages}}</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=hreview-implementations&diff=32514hreview-implementations2008-02-28T20:02:12Z<p>AndyMabbett: /* search and discovery */ Microformat Base MIA</p>
<hr />
<div><h1>hReview implementations</h1><br />
{{TOC-right}}<br />
This page is an '''informative''' section of the [[hreview|hReview specification]].<br />
<br />
The following implementations have been developed which either generate or parse hReviews. If you have an hReview implementation, feel free to add it to the top of the New Implementations list.<br />
<br />
== new implementations ==<br />
Please help evaluate New Implementations, note any problems ''inline'' as nested list items, and sort them alphabetically into the proper category below. Thanks!.<br />
* ...<br />
<br />
== authoring ==<br />
=== web-based creators ===<br />
==== creator ====<br />
* [http://microformats.org/code/hreview/creator hReview creator] ([[hreview-creator-feedback|feedback]]) on microformats.org<br />
** originally published: [http://theryanking.com/ Ryan King] has an [http://theryanking.com/microformats/hreview-creator.html hReview Creator]<br />
==== Goodpic ====<br />
* [http://www.goodpic.com/mt/aws/index_us.html Goodpic] has written:<br />
** [http://www.goodpic.com/mt/aws/index_us.html hReview creator for Amazon.com products]<br />
** [http://www.goodpic.com/mt/aws/index_uk.html hReview creator for Amazon.co.uk products]<br />
** [http://www.goodpic.com/mt/aws/index_uk.html hReview creator for Amazon.co.jp products]<br />
** be sure to choose the "hRview" tab from among the choices on the page that says "You can choose from more than 30 designs, please click the tab to select categories."<br />
<br />
=== blogging and CMS tools ===<br />
==== Textpattern ====<br />
* Textpattern plug-in : [http://placenamehere.com/TXP/pnh_mf/ pnh_mf] is a plugin for [http://textpattern.com/ Textpattern] that supports embedding hReview and other microformats in templates and blog posts. Written by [http://placenamehere.com/ Chris Casciano].<br />
==== Windows Live Writer ====<br />
* [http://tech.niques.info/projects/wlw-template-hreview/ hReview Dynamic Template] is a template for use with the [http://www.joecheng.com/code/DynamicTemplate/ Dynamic Template] plugin for Windows Live Writer. Implements a dialog for entering hReviews in posts to any Windows Live Writer supported blogging platform.<br />
==== WordPress ====<br />
* [http://sungnyemun.org/wordpress/?p=22 hReview plugin for WordPress]<br />
* Another [http://www.aes.id.au/?page_id=28 hReview plugin for WordPress]. Works with the standard page/post editor so you can have multiple reviews in a single page/post.<br />
* [http://paulgoscicki.com/projects/wp-movie-ratings/ WP Movie Ratings] is a [http://wordpress.org WordPress] plugin made by [http://paulgoscicki.com Paul Goscicki] which lets you rate (and review) movies and publish those ratings as hReviews.<br />
<br />
=== hosted reviews ===<br />
* [http://www.eigaseikatu.com/ Eigaseikatu], one of the largest movie community sites in Japan, provides [http://www.eigaseikatu.com/hreview/ hReview creator] for movie review.<br />
* [http://www.judysbook.com Judysbook] is a local reviews and deals site that has been using the [[hreview|hReview]] format since early 2005.<br />
* [http://rvu.ning.com/ Rvu] is a [http://ning.com Ning] app that lets you write reviews of reviews and publishes them in hReview<br />
<br />
== search and discovery ==<br />
* [http://www.loudervoice.com/ LouderVoice] publishes and aggregates hReviews to/from blogs. All [http://www.loudervoice.com/search?q=hotel+cork Search/Tag Results] are also marked up with hReview.<br />
* Microformat Base was an open-source PHP microformat aggregation crawler, recognizing hreview, hcalendar, and hcard.<br />
** Was at <nowiki>http://randomchaos.com/microformats/base/ </nowiki>; whcih, as at 2008-02-28, reads "Sorry, Microformat Base is currently shut down. I hope to some day complete a new and improved version."<br />
* [http://www.reevoo.com/blogs/bengriffiths/ Revieworld CTO Ben Griffiths] has announced that they have built support into [http://www.reevoo.com/ Reevoo] to [http://www.reevoo.com/blogs/bengriffiths/2006/02/01/join-the-reevolution/ aggregate reviews of products that are published on blogs using hReview] ([http://opensource.reevoo.com/2006/03/08/release-uformats-12/ open source parser for Ruby])<br />
* [http://www.scrugy.com Scrugy] is a wine information search engine and aggregator and is parsing hReviews found on wine-related web pages and RSS feeds. hCard and rel-tag microformats used within hReviews are also parsed.<br />
* [http://kitchen.technorati.com/search Technorati Microformats Search] indexes [[hcard|hCard]], [[hcalendar|hCalendar]], and [[hreview|hReview]] as [http://tantek.com/log/2006/05.html#d31t1802 announced by Tantek].<br />
<br />
== conversion and import ==<br />
=== web services ===<br />
* [http://blog.codeeg.com/ Calvin Yu] has written a [http://blog.codeeg.com/2006/01/28/using-microformats-to-plot-my-favorite-places/ web service that will allow you plot and describe places on a Yahoo Map easily] using [[hreview|hReview]] and [[geo]].<br />
<br />
== browsing ==<br />
=== Firefox extension ===<br />
* [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.<br />
<br />
=== Flock extension ===<br />
* [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<br />
<br />
== libraries ==<br />
The following open source libraries and scripts have been developed and make it easier to support hReview.<br />
=== Javascript ===<br />
* [http://microformats.org/code/hreview/creator hReview creator] ([[hreview-creator-feedback|feedback]]) open source on microformats.org<br />
** originally published: [http://theryanking.com/ Ryan King] has an [http://theryanking.com/microformats/hreview-creator.html hReview Creator]<br />
<br />
=== PHP ===<br />
* [http://gr0w.com/articles/code/php_5_star_rating_system_using_hreview/index.php PHP, 5 Star Rating System (using hReview)] (license: [http://creativecommons.org/licenses/by-sa/2.5/ Creative Commons attribution share-alike 2.5], according to [http://gr0w.com/legal/#use gr0w Web Site Use Terms and Conditions]).<br />
* [http://randomchaos.com/microformats/base/ Microformat Base] is an open-source PHP microformat aggregation crawler, currently recognizing hreview, hcalendar, and hcard.<br />
<br />
== previously ==<br />
* <nowiki>Kritx.com</nowiki> used to index hReviews and other reviews on the Web. <br />
** 2007-11-09 (as of). domain appears to have expired, then purchased by a spamdirectory<br />
* <nowiki>http://brain.lionsden.com/ Leo Cerebellum Annotare</nowiki> notes that <nowiki>http://brain.lionsden.com/?p=229 ReviewZilla Alpha 2 includes MicroFormat hReview markup</nowiki><br />
** [http://rbach.priv.at/Microformats/IRC/2006-01-31#T003007 found 2006-01-31]<br />
** 2007-11-09 (as of). brain.lionsden.com not found.<br />
** See Google Cache of <nowiki>http://brain.lionsden.com/2006/01/30/reviewzilla-alpha-2/</nowiki> : [http://72.14.253.104/search?q=cache:8EkB1alp4goJ:brain.lionsden.com/2006/01/30/reviewzilla-alpha-2/+reviewzilla&hl=en&ct=clnk&cd=8&gl=us&client=safari ReviewZilla Alpha 2 includes MicroFormat hReview markup]<br />
<br />
==Related pages==<br />
{{hreview-related-pages}}</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=User_talk:EricMasiello&diff=34085User talk:EricMasiello2008-02-28T19:26:06Z<p>AndyMabbett: Welcome!</p>
<hr />
<div>{{welcome}}<br />
: [[User:AndyMabbett|Andy Mabbett]] 11:26, 28 Feb 2008 (PST)</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=events/2008-02-28-fowa-miami-workshop&diff=26059events/2008-02-28-fowa-miami-workshop2008-02-28T19:25:35Z<p>AndyMabbett: add country</p>
<hr />
<div><div class="vevent"><br />
<h1 class="summary">FOWA Miami: Introduction to Microformats workshop</h1><br />
{{TOC-right}}<br />
== Details ==<br />
* <span class="dtstart">2008-02-28</span> 9am-12:30pm <br />
* <span class="location">Knight Concert Hall, Carnival Centre, Miami, Florida USA</span>. <br />
* <span class="description">Introduction to Microformats workshop</span><br />
* <span class="url">http://www.futureofwebapps.com/2008/miami/workshops.php#jumper01</span><br />
* Speaker: Tantek Çelik<br />
== Attending ==<br />
* Eric Masiello<br />
<br />
</div><br />
<br />
== Q&A ==<br />
<br />
* How do I deal with quotes? (Example[http://www.sigmaperformancegroup.com/contact-us_old_example.php]). There seems to be a character encoding issue when exporting my contact to a vCard.</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=hcard-implementations&diff=26408hcard-implementations2008-02-27T21:32:39Z<p>AndyMabbett: /* Forms */</p>
<hr />
<div><h1>hCard Implementations</h1><br />
{{TOC-right}}<br />
<br />
This page is an '''informative''' section of the [[hcard|hCard specification]].<br />
<br />
The following implementations have been developed which either generate or parse [[hcard|hCards]]. If you have such an hCard implementation, feel free to add it to '''the top''' of the New Implementations section. If you have a page or site which just ''publishes'' hCards, please use [[hcard-examples-in-wild]] instead.<br />
<br />
== New Implementations ==<br />
Add new implementations here for evaluation and classification into the below taxonomy of implementations.<br />
<br />
* [http://www.tripit.com/ TripIt] - The TripIt contact list of your connections is marked up with hCard<br />
* [[hAvatar]] - Wordpress plugin displaying avatars for commenters based on their hCard<br />
* [[org.microformats.hCard]] - java hCard parser and creator.<br />
* [http://mobileonlinebusiness.com.au/uf/vCard_to_hCard_converter.html Mobile Online Business' vCard to hCard converter]<br />
*[http://www.jamplanet.com Jam] is an active address book extension for Firefox/Flock. Jam imports Vcard and various CSV formats, and can output contacts in Vcard and hCard format.<br />
*The "[http://typo3.org/extensions/repository/view/tt_address/2.0.1/ tt_address]" extension for [http://www.typo3.com TYPO3] supports hCard since the latest release, v2.0.0 <br />
*[https://addons.mozilla.org/firefox/4106/ Operator] lets you combine pieces of information on Web sites with applications in ways that are useful. (Firefox-plugin)<br />
*[http://rafaeloliveira.net/labs/hcard_creator.zip Wordpress hCard Creator] - I've made this simple plugin for wordpress. It adds the hCard Options submenu at Options menu, where you can create a simple hCard and put it on your blog using < ?php hcard_creator() ?> to show it. Also, it is possible to show an "export to vCard" link, which uses Brian Suda X2V. (Got send an e-mail to him regarding this)<br />
*[http://www.alexa.com/site/devcorner/hcard Alexa hcard search]<br />
*[http://leftlogic.com/lounge/articles/microformats_bookmarklet/ Microformats Bookmarklet] is a bookmarklet designed for IE6 and IE7, Firefox, Safari, Opera and Camino, that overlays on the current page to allow users to import individual hCards or hCalendars. Written by Remy Sharp.<br />
*[http://domanske.de/2006/09/vcardexplorer-04/ vCardExplorer] is a Mac OS X Application, that displays VCF-Files and extracts hCards from Websites written by [http://vcardexplorer.corefault.de Daniel Kagemann].<br />
* [http://placenamehere.com/mf/nnwextract/ Extract Microformats] is a script for NetNewsWire that supports extracting hCard and hCalendar data in blog posts (via technorati service). Written by [[User:ChrisCasciano|Chris Casciano]]<br />
* [http://allinthehead.com/hkit/ hKit] is an open source PHP 5 parsing library with support for hCard.<br />
* [http://kitchen.technorati.com/search Technorati Microformats Search] indexes [[hcard|hCard]], [[hcalendar|hCalendar]], and [[hreview|hReview]] as [http://tantek.com/log/2006/05.html#d31t1802 announced by Tantek].<br />
** list of pages with indexing Issues so they can be looked into as to why data is not being extracted<br />
** suda.co.uk/contact<br />
** multipack.co.uk<br />
* [http://www.webstandards.org/action/dwtf/microformats/ Dreamweaver Extension suite] from the [http://webstandards.org/ Web Standards Project] enables the authoring of hCards from within Dreamweaver 8.<br />
* [http://scooch.gr0w.com/ Scooch] is a slide show and presentation creator that generates a [[hCard]] for individual slide show authors and comment authors with a CSS button to parse and download via [http://suda.co.uk/projects/X2V/ X2V]. Also uses [[hReview]] for slide ratings and [[rel-tag]] for categories.<br />
* [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<br />
*[http://opensource.reevoo.com/2006/03/08/release-uformats-12/ uformats] is a ruby library that can parse [[hCalendar]], [[hCard]], [[hReview]] and [[rel-tag]]<br />
* [http://blog.codeeg.com/tails-firefox-extension-03/ Tails] is a Firefox Extension that will display the presence and details of microformats ([[hcard|hCard]], [[hcalendar|hCalendar]], [[hreview|hReview]], [[xfolk|xFolk]]) on a webpage. [https://addons.mozilla.org/firefox/2240/ Tails Export] is an extended version.<br />
* [http://www.stripytshirt.co.uk/features/firefox/smartzilla Smartzilla is a Firefox Extension] that finds hCards on web pages and lets you add them to your addressbook.<br />
* [http://placenamehere.com/TXP/pnh_mf/ pnh_mf] is a plugin for [http://textpattern.com/ Textpattern] that supports embedding hCard and other microformats in templates and blog posts. Written by [http://placenamehere.com/ Chris Casciano].<br />
* There is [http://flickr.com/photos/factoryjoe/68755089/ evidence of built-in hCard support in the Konqueror browser]. Specifically, Konqueror 3.5, in KDE 3.5 (kubuntu Breezy w/ update).<br />
* There is [http://tagcamp.org/index.cgi?ContactList evidence of a kwiki plugin for hCards]. Update: the [http://svn.kwiki.org/cwest/Kwiki-hCard/ hCard kwiki plugin svn repository]. See the [http://microwiki.caseywest.com/index.cgi?hCard documentation of the hCard kwiki plugin].<br />
* [http://suda.co.uk/projects/X2V/ X2V] is a bookmarklet that parses hCard and produces a .vcf (vCard) stream. Note: needs to be updated as the spec is refined.<br />
* [http://www.stripytshirt.co.uk Duncan Walker] has built [http://www.stripytshirt.co.uk/features/firefox/smartzilla a Firefox extension] that gets hCard data from a webpage, uses Brian Suda's XSL (locally) to transform it to vcard format and opens the resulting .vcf file.<br />
* [http://george.hotelling.net/90percent/ George] has written a [http://george.hotelling.net/90percent/geekery/greasemonkey_and_microformats.php Greasemonkey user script] that detects hCards and allows users to easily add them to their address book application. Relies on the X2V web service to do the conversion.<br />
* [http://inside.glnetworks.de/ Martin Rehfeld] has updated the work of [http://blogmatrix.blogmatrix.com/ David Janes] and produced a [[Greasemonkey]] [http://inside.glnetworks.de/2006/06/05/microformats-have-arrived-in-firefox-15-greasemonkey-06/ script] that finds many microformat elements, including hCards, and [http://blog.davidjanes.com/mtarchives/2005_08.html#003379 provides a popup menu of actions]. The hCard to vCard conversion is done internally within the script. ''This will work with FireFox 1.5+/GreaseMonkey 0.6.4+ now.''<br />
* [http://diveintomark.org/ Mark Pilgrim] has also written an [http://diveintomark.org/projects/greasemonkey/hcard/ hCard parser Greasemonkey user script]. It is self-contained and does not rely on the X2V web service.<br />
* [http://www.oliverbrown.me.uk/2005/09/03/a-working-microformats-extension-to-simplexml/ Oliver Brown] has written an "extension" to [http://www.php.net/simplexml SimpleXML] that gives simple access to hCard information in PHP 5.<br />
* [http://thedredge.org/ Andrew D. Hume] has built a system (Wordpress plugin?) for [http://thedredge.org/2005/06/using-hcards-in-your-blog/ using hCards in your blog] to represent people leaving comments on blog posts.<br />
* [http://greenbytes.de/tech/webdav/rfc2629.xslt rfc2629.xslt] now attempts to generate hCard information ([http://ietf.org/rfc/rfc2629 RFC2629] is an XML format for authoring RFCs and Internet Drafts, see [http://greenbytes.de/tech/webdav/rfc2629xslt/rfc2629xslt.html example document])<br />
* [http://tantek.com/microformats/buddylist2hcards.html iChat buddy list to hCards] - Open source AppleScript to automatically convert one's buddy list in the MacOSX iChat AIM client into a valid XHTML 1.0 Strict list of hCards. <br />
* [http://dev.w3.org/cvsweb/2001/palmagent/ palmagent] is a collection of palmpilot and sidekick tools. It includes X2V derivatives xhtml2hcard.xsl and toICal.xsl plus some [http://dev.w3.org/cvsweb/2001/palmagent/hcardTest.html hcardTest] materials<br />
* [http://www.openpsa.org/ OpenPsa 2.x] CRM application uses hCard for all person listings. The widget is [http://www.midgard-project.org/midcom-permalink-922834501b71daad856f35ec593c7a6d reusable across Midgard CMS]<br />
* [http://www.metonymie.com Emiliano Martínez Luque] has written an experimental [http://www.metonymie.com/hCard_extract/app.html hCard finder and structured search application] that finds hCards within a given set of URLs and returns the ones that match the specified search criteria.<br />
<!-- * [http://randomchaos.com/microformats/base/ Microformat Base] is an open-source PHP microformat aggregation crawler, currently recognizing hReview, hCalendar, and hCard. down! --><br />
<br />
==Authoring==<br />
Implementations you can use to author, create, and publish hCards.<br />
<br />
===Web-based Creators===<br />
;[http://microformats.org/code/hcard/creator hCard creator]:Create your own hCards; also has a [http://www.wnas.nl/microformats/hcard/hcardCreator.html Dutch interface]. [[hcard-creator-feedback|hCard Give feedback.]]<br />
<br />
===Blogging and CMS tools===<br />
;[http://euphemize.net/blog/plugins/textpattern/jmc_event_manager/ Textpattern plug-in]:jmc_event_manager is a plugin for [http://textpattern.com/ Textpattern] that outputs locations and events in hCard (and hCalendar) formats. Written by [http://euphemize.net/ Joel Courtney].<br />
;[http://wordpress.org/extend/plugins/addressbook/ Wordpress Addressbook plugin]:Display list of addresses from the blog owner's address book, each marked up as an hCard. Maintained by [http://samwilson.id.au Sam Wilson].<br />
<br />
===Browser scripts and plug-ins===<br />
Browser plugins that work with existing authoring tools:<br />
; Any browser with javascript and a little bit of CSS : [http://microformats.org/code/hcard/creator microformats.org hCard creator] (see also [http://tantek.com/ Tantek]'s original [http://tantek.com/microformats/hcard-creator.html hCard creator on tantek.com].<br />
<br />
===Desktop Authoring Tools===<br />
* ...<br />
<br />
==Search and Discovery==<br />
* [http://kitchen.technorati.com/search Technorati Microformats Search] indexes [[hcard|hCard]], [[hcalendar|hCalendar]], and [[hreview|hReview]] as [http://tantek.com/log/2006/05.html#d31t1802 announced by Tantek]. <br />
* [http://leftlogic.com/info/articles/microformats_bookmarklet Microformats Bookmarklet] is a bookmarklet designed for Safari (works in Firefox and Camino) that overlays on the current page to allow users to import individual [[hcard|hCards]] or [[hcalendar|hCalendars]]. Written by [http://leftlogic.com Remy Sharp].<br />
<br />
<!-- need to continue copy/rename some parallel implementations from [[hcalendar-implementations]] from here down --><br />
<br />
==Conversion and Import==<br />
Implementations you can use to importing into an address book application, typically by converting hCard to vCard.<br />
<br />
===Web Services===<br />
These return vCard (.vcf) and other contact formats for easy importing into typical address book programs or other processing.<br />
* [http://www.tomota.de www.tomota.de] Online address book that allows to import, export and convert hCard into vCard, ldif, csv and plain text. <br />
<br />
* ...<br />
<br />
===Firefox Greasemonkey Plugins===<br />
* ...<br />
<br />
===Aggregators===<br />
* ...<br />
<br />
===Forms===<br />
* [http://lib.omnia-computing.de/hcardmapper hCard Mapper] maps hCards onto form fields (Javascript based)<br />
<br />
==Browsing==<br />
Implementations that detect, display and otherwise highlight hCards in pages.<br />
* ...<br />
<br />
===Firefox extension===<br />
<br />
[http://www.kaply.com/weblog/operator Operator] - This extension is casual-user, advanced-user and developer friendly. Very customizable and unobstrusive.<br />
<br />
===Flock extension===<br />
* ...<br />
<br />
==Open Source==<br />
Open source libraries of hCard parsers and other related code for building hCard implementations. Note: it is very likely that above implementations may be duplicated in this section. That's ok.<br />
* ...<br />
;Javascript <br />
: The [http://microformats.org/code/hcard/creator hCard creator] ([[hcard-creator-feedback|hCard creator feedback]]) is a very simple, yet illustrative, open source user interface / form / script which creates an hCard in real-time as you type in a set of contact information.<br />
<br />
; PHP : <br />
* [[hKit]]<br />
; Python : <br />
* [http://tommorris.org/files/gmail2hcard-py.txt gmail2hcard-py.txt] - for converting Gmail CSV address book export to hCards<br />
; Java :<br />
* [[org.microformats.hCard]]<br />
; Ruby :<br />
: ...<br />
; XSLT :<br />
* ...<br />
<br />
== Additional Applications ==<br />
This section should probably be incorporated into [[hcard-brainstorming]].<br />
<br />
There are numerous potential additional uses and applications for hCards on the Web. The following are merely a few thoughts and possibilities that folks have come up with:<br />
<br />
* As an open standard/format for [http://www.gravatar.com/ Gravatars].<br />
** Like [http://alper.nl/cgi-bin/OpenAvatar.py?url=http://tantek.com this].<br />
** Wordpress plugin with hCard based replacement for gravatar is in the make. [[User:Alper|Alper]] 12:59, 8 Aug 2007 (PDT)<br />
* Marking up individual authors of blog posts on a group blog<br />
* Marking up people's names and URLs in a blogroll<br />
* Any reference to people in blog posts (e.g. when citing them, or referencing them, or describing them, by name).<br />
* ...<br />
<br />
== Related Pages ==<br />
{{hcard-related-pages}}</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=hcard-implementations&diff=25939hcard-implementations2008-02-27T21:32:16Z<p>AndyMabbett: hcardmapper</p>
<hr />
<div><h1>hCard Implementations</h1><br />
{{TOC-right}}<br />
<br />
This page is an '''informative''' section of the [[hcard|hCard specification]].<br />
<br />
The following implementations have been developed which either generate or parse [[hcard|hCards]]. If you have such an hCard implementation, feel free to add it to '''the top''' of the New Implementations section. If you have a page or site which just ''publishes'' hCards, please use [[hcard-examples-in-wild]] instead.<br />
<br />
== New Implementations ==<br />
Add new implementations here for evaluation and classification into the below taxonomy of implementations.<br />
<br />
* [http://www.tripit.com/ TripIt] - The TripIt contact list of your connections is marked up with hCard<br />
* [[hAvatar]] - Wordpress plugin displaying avatars for commenters based on their hCard<br />
* [[org.microformats.hCard]] - java hCard parser and creator.<br />
* [http://mobileonlinebusiness.com.au/uf/vCard_to_hCard_converter.html Mobile Online Business' vCard to hCard converter]<br />
*[http://www.jamplanet.com Jam] is an active address book extension for Firefox/Flock. Jam imports Vcard and various CSV formats, and can output contacts in Vcard and hCard format.<br />
*The "[http://typo3.org/extensions/repository/view/tt_address/2.0.1/ tt_address]" extension for [http://www.typo3.com TYPO3] supports hCard since the latest release, v2.0.0 <br />
*[https://addons.mozilla.org/firefox/4106/ Operator] lets you combine pieces of information on Web sites with applications in ways that are useful. (Firefox-plugin)<br />
*[http://rafaeloliveira.net/labs/hcard_creator.zip Wordpress hCard Creator] - I've made this simple plugin for wordpress. It adds the hCard Options submenu at Options menu, where you can create a simple hCard and put it on your blog using < ?php hcard_creator() ?> to show it. Also, it is possible to show an "export to vCard" link, which uses Brian Suda X2V. (Got send an e-mail to him regarding this)<br />
*[http://www.alexa.com/site/devcorner/hcard Alexa hcard search]<br />
*[http://leftlogic.com/lounge/articles/microformats_bookmarklet/ Microformats Bookmarklet] is a bookmarklet designed for IE6 and IE7, Firefox, Safari, Opera and Camino, that overlays on the current page to allow users to import individual hCards or hCalendars. Written by Remy Sharp.<br />
*[http://domanske.de/2006/09/vcardexplorer-04/ vCardExplorer] is a Mac OS X Application, that displays VCF-Files and extracts hCards from Websites written by [http://vcardexplorer.corefault.de Daniel Kagemann].<br />
* [http://placenamehere.com/mf/nnwextract/ Extract Microformats] is a script for NetNewsWire that supports extracting hCard and hCalendar data in blog posts (via technorati service). Written by [[User:ChrisCasciano|Chris Casciano]]<br />
* [http://allinthehead.com/hkit/ hKit] is an open source PHP 5 parsing library with support for hCard.<br />
* [http://kitchen.technorati.com/search Technorati Microformats Search] indexes [[hcard|hCard]], [[hcalendar|hCalendar]], and [[hreview|hReview]] as [http://tantek.com/log/2006/05.html#d31t1802 announced by Tantek].<br />
** list of pages with indexing Issues so they can be looked into as to why data is not being extracted<br />
** suda.co.uk/contact<br />
** multipack.co.uk<br />
* [http://www.webstandards.org/action/dwtf/microformats/ Dreamweaver Extension suite] from the [http://webstandards.org/ Web Standards Project] enables the authoring of hCards from within Dreamweaver 8.<br />
* [http://scooch.gr0w.com/ Scooch] is a slide show and presentation creator that generates a [[hCard]] for individual slide show authors and comment authors with a CSS button to parse and download via [http://suda.co.uk/projects/X2V/ X2V]. Also uses [[hReview]] for slide ratings and [[rel-tag]] for categories.<br />
* [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<br />
*[http://opensource.reevoo.com/2006/03/08/release-uformats-12/ uformats] is a ruby library that can parse [[hCalendar]], [[hCard]], [[hReview]] and [[rel-tag]]<br />
* [http://blog.codeeg.com/tails-firefox-extension-03/ Tails] is a Firefox Extension that will display the presence and details of microformats ([[hcard|hCard]], [[hcalendar|hCalendar]], [[hreview|hReview]], [[xfolk|xFolk]]) on a webpage. [https://addons.mozilla.org/firefox/2240/ Tails Export] is an extended version.<br />
* [http://www.stripytshirt.co.uk/features/firefox/smartzilla Smartzilla is a Firefox Extension] that finds hCards on web pages and lets you add them to your addressbook.<br />
* [http://placenamehere.com/TXP/pnh_mf/ pnh_mf] is a plugin for [http://textpattern.com/ Textpattern] that supports embedding hCard and other microformats in templates and blog posts. Written by [http://placenamehere.com/ Chris Casciano].<br />
* There is [http://flickr.com/photos/factoryjoe/68755089/ evidence of built-in hCard support in the Konqueror browser]. Specifically, Konqueror 3.5, in KDE 3.5 (kubuntu Breezy w/ update).<br />
* There is [http://tagcamp.org/index.cgi?ContactList evidence of a kwiki plugin for hCards]. Update: the [http://svn.kwiki.org/cwest/Kwiki-hCard/ hCard kwiki plugin svn repository]. See the [http://microwiki.caseywest.com/index.cgi?hCard documentation of the hCard kwiki plugin].<br />
* [http://suda.co.uk/projects/X2V/ X2V] is a bookmarklet that parses hCard and produces a .vcf (vCard) stream. Note: needs to be updated as the spec is refined.<br />
* [http://www.stripytshirt.co.uk Duncan Walker] has built [http://www.stripytshirt.co.uk/features/firefox/smartzilla a Firefox extension] that gets hCard data from a webpage, uses Brian Suda's XSL (locally) to transform it to vcard format and opens the resulting .vcf file.<br />
* [http://george.hotelling.net/90percent/ George] has written a [http://george.hotelling.net/90percent/geekery/greasemonkey_and_microformats.php Greasemonkey user script] that detects hCards and allows users to easily add them to their address book application. Relies on the X2V web service to do the conversion.<br />
* [http://inside.glnetworks.de/ Martin Rehfeld] has updated the work of [http://blogmatrix.blogmatrix.com/ David Janes] and produced a [[Greasemonkey]] [http://inside.glnetworks.de/2006/06/05/microformats-have-arrived-in-firefox-15-greasemonkey-06/ script] that finds many microformat elements, including hCards, and [http://blog.davidjanes.com/mtarchives/2005_08.html#003379 provides a popup menu of actions]. The hCard to vCard conversion is done internally within the script. ''This will work with FireFox 1.5+/GreaseMonkey 0.6.4+ now.''<br />
* [http://diveintomark.org/ Mark Pilgrim] has also written an [http://diveintomark.org/projects/greasemonkey/hcard/ hCard parser Greasemonkey user script]. It is self-contained and does not rely on the X2V web service.<br />
* [http://www.oliverbrown.me.uk/2005/09/03/a-working-microformats-extension-to-simplexml/ Oliver Brown] has written an "extension" to [http://www.php.net/simplexml SimpleXML] that gives simple access to hCard information in PHP 5.<br />
* [http://thedredge.org/ Andrew D. Hume] has built a system (Wordpress plugin?) for [http://thedredge.org/2005/06/using-hcards-in-your-blog/ using hCards in your blog] to represent people leaving comments on blog posts.<br />
* [http://greenbytes.de/tech/webdav/rfc2629.xslt rfc2629.xslt] now attempts to generate hCard information ([http://ietf.org/rfc/rfc2629 RFC2629] is an XML format for authoring RFCs and Internet Drafts, see [http://greenbytes.de/tech/webdav/rfc2629xslt/rfc2629xslt.html example document])<br />
* [http://tantek.com/microformats/buddylist2hcards.html iChat buddy list to hCards] - Open source AppleScript to automatically convert one's buddy list in the MacOSX iChat AIM client into a valid XHTML 1.0 Strict list of hCards. <br />
* [http://dev.w3.org/cvsweb/2001/palmagent/ palmagent] is a collection of palmpilot and sidekick tools. It includes X2V derivatives xhtml2hcard.xsl and toICal.xsl plus some [http://dev.w3.org/cvsweb/2001/palmagent/hcardTest.html hcardTest] materials<br />
* [http://www.openpsa.org/ OpenPsa 2.x] CRM application uses hCard for all person listings. The widget is [http://www.midgard-project.org/midcom-permalink-922834501b71daad856f35ec593c7a6d reusable across Midgard CMS]<br />
* [http://www.metonymie.com Emiliano Martínez Luque] has written an experimental [http://www.metonymie.com/hCard_extract/app.html hCard finder and structured search application] that finds hCards within a given set of URLs and returns the ones that match the specified search criteria.<br />
<!-- * [http://randomchaos.com/microformats/base/ Microformat Base] is an open-source PHP microformat aggregation crawler, currently recognizing hReview, hCalendar, and hCard. down! --><br />
<br />
==Authoring==<br />
Implementations you can use to author, create, and publish hCards.<br />
<br />
===Web-based Creators===<br />
;[http://microformats.org/code/hcard/creator hCard creator]:Create your own hCards; also has a [http://www.wnas.nl/microformats/hcard/hcardCreator.html Dutch interface]. [[hcard-creator-feedback|hCard Give feedback.]]<br />
<br />
===Blogging and CMS tools===<br />
;[http://euphemize.net/blog/plugins/textpattern/jmc_event_manager/ Textpattern plug-in]:jmc_event_manager is a plugin for [http://textpattern.com/ Textpattern] that outputs locations and events in hCard (and hCalendar) formats. Written by [http://euphemize.net/ Joel Courtney].<br />
;[http://wordpress.org/extend/plugins/addressbook/ Wordpress Addressbook plugin]:Display list of addresses from the blog owner's address book, each marked up as an hCard. Maintained by [http://samwilson.id.au Sam Wilson].<br />
<br />
===Browser scripts and plug-ins===<br />
Browser plugins that work with existing authoring tools:<br />
; Any browser with javascript and a little bit of CSS : [http://microformats.org/code/hcard/creator microformats.org hCard creator] (see also [http://tantek.com/ Tantek]'s original [http://tantek.com/microformats/hcard-creator.html hCard creator on tantek.com].<br />
<br />
===Desktop Authoring Tools===<br />
* ...<br />
<br />
==Search and Discovery==<br />
* [http://kitchen.technorati.com/search Technorati Microformats Search] indexes [[hcard|hCard]], [[hcalendar|hCalendar]], and [[hreview|hReview]] as [http://tantek.com/log/2006/05.html#d31t1802 announced by Tantek]. <br />
* [http://leftlogic.com/info/articles/microformats_bookmarklet Microformats Bookmarklet] is a bookmarklet designed for Safari (works in Firefox and Camino) that overlays on the current page to allow users to import individual [[hcard|hCards]] or [[hcalendar|hCalendars]]. Written by [http://leftlogic.com Remy Sharp].<br />
<br />
<!-- need to continue copy/rename some parallel implementations from [[hcalendar-implementations]] from here down --><br />
<br />
==Conversion and Import==<br />
Implementations you can use to importing into an address book application, typically by converting hCard to vCard.<br />
<br />
===Web Services===<br />
These return vCard (.vcf) and other contact formats for easy importing into typical address book programs or other processing.<br />
* [http://www.tomota.de www.tomota.de] Online address book that allows to import, export and convert hCard into vCard, ldif, csv and plain text. <br />
<br />
* ...<br />
<br />
===Firefox Greasemonkey Plugins===<br />
* ...<br />
<br />
===Aggregators===<br />
* ...<br />
<br />
===Forms===<br />
* [http://lib.omnia-computing.de/hcardmapper hCard Mapper] maps hCards onto form fields<br />
(Javascript based)<br />
<br />
==Browsing==<br />
Implementations that detect, display and otherwise highlight hCards in pages.<br />
* ...<br />
<br />
===Firefox extension===<br />
<br />
[http://www.kaply.com/weblog/operator Operator] - This extension is casual-user, advanced-user and developer friendly. Very customizable and unobstrusive.<br />
<br />
===Flock extension===<br />
* ...<br />
<br />
==Open Source==<br />
Open source libraries of hCard parsers and other related code for building hCard implementations. Note: it is very likely that above implementations may be duplicated in this section. That's ok.<br />
* ...<br />
;Javascript <br />
: The [http://microformats.org/code/hcard/creator hCard creator] ([[hcard-creator-feedback|hCard creator feedback]]) is a very simple, yet illustrative, open source user interface / form / script which creates an hCard in real-time as you type in a set of contact information.<br />
<br />
; PHP : <br />
* [[hKit]]<br />
; Python : <br />
* [http://tommorris.org/files/gmail2hcard-py.txt gmail2hcard-py.txt] - for converting Gmail CSV address book export to hCards<br />
; Java :<br />
* [[org.microformats.hCard]]<br />
; Ruby :<br />
: ...<br />
; XSLT :<br />
* ...<br />
<br />
== Additional Applications ==<br />
This section should probably be incorporated into [[hcard-brainstorming]].<br />
<br />
There are numerous potential additional uses and applications for hCards on the Web. The following are merely a few thoughts and possibilities that folks have come up with:<br />
<br />
* As an open standard/format for [http://www.gravatar.com/ Gravatars].<br />
** Like [http://alper.nl/cgi-bin/OpenAvatar.py?url=http://tantek.com this].<br />
** Wordpress plugin with hCard based replacement for gravatar is in the make. [[User:Alper|Alper]] 12:59, 8 Aug 2007 (PDT)<br />
* Marking up individual authors of blog posts on a group blog<br />
* Marking up people's names and URLs in a blogroll<br />
* Any reference to people in blog posts (e.g. when citing them, or referencing them, or describing them, by name).<br />
* ...<br />
<br />
== Related Pages ==<br />
{{hcard-related-pages}}</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=User_talk:JDAmer&diff=34092User talk:JDAmer2008-02-26T23:51:18Z<p>AndyMabbett: Welcome!</p>
<hr />
<div>{{welcome}}<br />
<br />
:[[User:AndyMabbett|Andy Mabbett]] 15:51, 26 Feb 2008 (PST)</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=User_talk:MichaelJLambie&diff=34091User talk:MichaelJLambie2008-02-26T23:49:54Z<p>AndyMabbett: Welcome!</p>
<hr />
<div>{{welcome}}<br />
<br />
: [[User:AndyMabbett|Andy Mabbett]] 15:49, 26 Feb 2008 (PST)</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=hcard-examples-in-wild-pending&diff=25936hcard-examples-in-wild-pending2008-02-26T17:58:10Z<p>AndyMabbett: Big City Plan</p>
<hr />
<div><h1>hCard Examples in the wild, pending review</h1><br />
{{TOC-right}}<br />
<br />
This page is an '''informative''' section of the [[hcard|hCard specification]].<br />
<br />
The following sites have published [[hcard|hCards]], but those hCards have not yet been reviewed. Once checked, they may be moved to [[hcard-examples-in-wild-reviewed]]; a great place to start for anyone looking for examples "in the wild" to try parsing, indexing, organizing etc. <br />
<br />
If people or organizations on your site are marked up with hCard (even just your own contact information), feel free to add it to the '''top''' of this list. Please be sure to include at least one URL to a page on your site that includes actual [[hcard|hCard]] mark-up. Examples added without a URL to a page with hCard mark-up may be removed.<br />
<br />
Want to get started with writing an [[hcard|hCard]]? Use the [http://microformats.org/code/hcard/creator hCard creator] to write up some contact information and publish it, or follow the [[hcard-authoring|hCard authoring tips]] to add hCard mark-up to your current contact page.<br />
<br />
==New Examples==<br />
Please add new examples to the '''top''' of this section so they can be reviewed! Please check back after a few days, to see if anyone has found any problems with the examples supplied.<!--<br />
<br />
Please add new examples to the *top* of this section.<br />
<br />
Please cite the specific page(s) which use(s) microformats, not a non- microformatted home page.<br />
<br />
--><br />
<br />
===Added in 2008===<br />
* Birmingham's [http://bigcityplan.org.uk/ Big City Plan] (England)<br />
* Producer [http://www.sun-treader.com/contact.html Christopher Davis] uses hCard markup on his contact page.<br />
* [http://www.tpexpress.co.uk/Liverpool08-Capital-of-Culture/ First TransPennine Express - Liverpool 08, Capital of Culture] - uses hCard to markup suggested venues.<br />
* [http://anand.ws/ Anand's Musings] uses hCard to mark up authors for comments and posts.<br />
* [http://www.onyomo.com/ OnYoMo] uses hCard markup for all addresses listed in their local search results.<br />
* [http://www.dctalks.org/design/ DC Design Talks] used hCard to mark up the speakers for this one-day event.<br />
* [http://www.entidi.it eNTiDi software] provides a basic hCard sample.<br />
* [http://www.pixsense.com/contact_us.html PixSense.com] uses hCard markup for addresses across the PixSense website.<br />
* [http://www.areaguides.net areaguides.net] uses hCard markup for all addresses across the site.<br />
** Examples: http://chicagoil.areaguides.net/ypcyellowpg/restaurants.html, http://newyorkny.areaguides.net/hotels.html<br />
* [http://www.ll.georgetown.edu/ Georgetown University Law Library] in Washington, D.C. now uses hCard for our address on all pages. Also, library staff biography pages use hCard such as [http://www.ll.georgetown.edu/staff/bio.cfm?id_no=105 here] and [http://www.ll.georgetown.edu/staff/bio.cfm?id_no=32 here].<!--<br />
<br />
Please add new examples to the *top* of this section.<br />
<br />
--><br />
===Added in 2007===<br />
* [http://www.mtgd.gov.md/ Ministry of Transport and Road Industry] of Republic of Moldova. First Moldavian governmental site using hCards on [http://www.mtgd.gov.md/ministrul/ staff pages], [http://www.mtgd.gov.md/subdiviziunile-ministerului/ subdivisions page] and in the footer of each page (contact information) <br />
**Only [http://www.mtgd.gov.md/ Romanian] and [http://www.mtgd.gov.md/ru/ Russian] versions available yet <br />
* [http://www.auctionlink.com.au/ AuctionLink] uses hCard for Auctioneer records like [http://www.auctionlink.com.au/Auctioneers/Auctioneer/Cam_Brown_Auctions/ Cam Brown Auctions] (also uses hCalendar)<br />
* [[User:WebOrganics|User WebOrganics]] The Microformats wiki has hcards on its user pages.<br />
* [http://www.ontwerpkliniek.nl Ontwerpkliniek - Bureau voor Visuele Identiteit] uses the hCard contact information at the frontpage and the contact page.<br />
* [http://www.instantdes.com L'instant des...] uses the hCard format for all photographers published on this collective photoblog.<br />
* the mediadesigner groupblog [http://www.pixeltapete.de Pixeltapete] uses the hCard for the contactinformation of the authorpages of [http://www.pixeltapete.de/alex Alex] and [http://www.pixeltapete.de/carsten Carsten] and also for the [http://www.pixeltapete.de/kontakt imprint]. [http://www.pixeltapete.de Pixeltapete] uses its own [http://www.pixeltapete.de/2007/11/hcard-sidebarwidget-fuer-wordpress/ hcard widget] for wordpress sidebars. <br />
* [http://www.thorsten-ott.de Thorsten Ott] uses hCard format for the contact section of his online resume.<br />
* [http://rosebleed.net/ Rosebleed] supports [[hCard user profiles]] - your profile URL is <nowiki>http://rosebleed.net/users/profile.php/</nowiki> followed by your username, e.g. [http://rosebleed.net/users/profile.php/silvermoon82 silvermoon82].<br />
**'''Fixed''' profiles now explicitly mark up 'n' where possible, otherwise omits it<br />
* [http://www.whitepages.com WhitePages.com] Now WhitePages.com main implemented hCard on all its listings. Over 120 million hCards! Includes work information.<br />
* [http://www.warmoth.com Warmoth Guitar Products] features hCard contact information in two places, [http://www.warmoth.com/customerservice/customer.cfm?fuseaction=order How To Order] and all of the [http://www.warmoth.com/catalog Warmoth E-Store]<br />
* [http://www.bbc.co.uk/worldservice/bangladeshboat BBC World Service Bangladesh River Journey] a social network mashup, with hCard & other microformats. See [http://dharmafly.com/blog/bangladeshboat Dharmafly blog discussion].<br />
* [http://www.amants-du-chocolat.net/ ACCP:Les Amants du Chocolat de la Couronne Parisienne] uses hCard on their contact page and in the chocolate maker they've reviewed.<br />
* [http://www.accountviewsoftware.nl/ AccountviewSoftware.nl] makes use of hCards for the dealer directory [http://www.accountviewsoftware.nl/dir/ (directory)]<br />
* [http://www.crystalvision.co.il/ CrystalVision] uses hCard on their contact page and in the footer throughout the site.<br />
* [http://www.indigoclothing.com/ Indigo Clothing] a London based t-shirt company uses hCard with Technorati's Add to Address Book throughout the site in the footer<br />
* [http://www.joshuamcginnis.com Joshua McGinnis] uses hCard to display his contact information to potential clients.<br />
* [http://www.myaffordablemarketing.com/contact.php Affordable Marketing Solutions' contact page] uses hCard with Technorati "Add to Address Book".<br />
* [http://www.bo.ingv.it/contents/INGV-Bologna/Staff.html INGV Bologna] implemented hCards for staff-members, marked-up as HTML table-rows ([[include-pattern]] also used to add organization-name and fax-number to each hCard).<br />
* [http://www.lefora.com Lefora] is a free forum hosting site (using custom forum software). Every user's profile contains an hCard. (Example forum for testing: [http://funstuff.lefora.com funstuff.lefora.com])<br />
* [http://www.handlairsystems.com H&L Air Systems] uses hCard with Technorati link Add to Address Book on all contact pages.<br />
* [http://theultimates.whitepages.com WhitePages.com] A special version of whitepages.com has all its listings marked up in hCard.<br />
* [http://piermontweb.com/contact/ Piermont Web Design] uses hCard on its contact page.<br />
* [http://www.ie.asm.md/en/ The Institute of Power Engineering] of the Academy of Science of Moldova. First Moldavian site using hCards on staff pages, e.g [http://www.ie.asm.md/employees/oleschuk-valentin/]<br />
**Also in Russian: [http://www.ie.asm.md/employees-ru/sit-michail-lvovich/] and Romanian: [http://www.ie.asm.md/angajati/chiorsac-mihail/]<br />
* The good ship [http://styrheim.com/test/leonid.html Leonid Miloslavskiy] spotted in the North Atlantic<br />
* [http://richi.co.uk/blog/2005/12/structured-blogging.html Richi Jennings] has put up his attempt<br />
*[http://oberrycavanaugh.com O'Berry|Cavanaugh] has an organization hCard in the footer on every page as while as individual hCards on the [http://oberrycavanaugh.com/team.php Team] page.<br />
* [http://fortisgc.com Fortis General Counsel], e. g. [http://fortisgc.com/joyce_lan_kim.html Joyce Kim's profile], uses hCard for profile and contact information.<br />
* [http://peryplo.com Peryplo.com], e. g. [http://peryplo.com/personal/7e6786e711c6d051a39a1b7085f34955 Sample Page], uses hCard for Hotels, Gastronomy Places and services for tourists.<br />
* [http://www.navitraveler.com/places/629/ NaviTraveler], e. g. [http://www.navitraveler.com/places/629/Lincoln_Memorial.html Lincoln Memorial], including [[geo|Geo]].<br />
** Response in under 12 hours, to advocacy request - [[User:AndyMabbett|Andy Mabbett]]<br />
* [http://corewar.atspace.com/about.html sfghoul] has marked her contact info with [[hcard|hCard]]<br />
* [http://www.zaadz.com Zaadz] uses [[hcard|hCard]] and [http://gmpg.org/xfn XFN] for friends on a user's profile page.<br />
*[http://www.xoxiety.com/about.html Xoxiety] uses hCards on its about page, linking data from a within a block of text.<br />
*[http://yedda.com Yedda] - Yedda provides hcard based identities on all of the people's profiles<br />
*[http://openid.ne.jp OpenID.ne.jp] First OpenID provider service in Japan(日本語). Each personal OpenID page (ex:[http://eouia.openid.ne.jp http://eouia.openid.ne.jp]) is marked up as his hCard. And there is a company hCard on every page, too.<br />
* [http://www.goldenglovepromotions.com/ Golden Glove Promotions] used hcards on the footer of every page to store contact information.<br />
* Australian national news sites The Australian and Australian IT use hCard on their contact pages: [http://www.theaustralian.com.au/contactus The Australian (contact us)] and [http://www.australianit.news.com.au/contactus Australian IT (contact us)]<br />
* [http://www.thekiwiholiday.com/ The Kiwi Holiday] uses hCards for [http://www.thekiwiholiday.com/view-hostels New Zealand Hostels], [http://www.thekiwiholiday.com/view-restaurants New Zealand Restaurants], and [http://www.thekiwiholiday.com/view-activities New Zealand Activities]. Also provides hCard "download to address book" functionality on listing detail pages, e.g. [http://www.thekiwiholiday.com/restaurant/tonys-steak Tonys Steak Restaurant]<br />
* [http://www.serviceworksglobal.com/pages/contact-us.php Service Works Global] uses hcards on the contact us page and in the site footer<br />
* [http://www.qcindustries.com/ QC Industries Conveyors] uses hcards to store contact information in the site footer and in their [http://www.qcindustries.com/news/press-releases/ press releases].<br />
* [http://www.confuciusinstitute.ac.uk/ The Confucius Institute for Scotland at the University of Edinburgh] has their used a hcard to store contact information in the footer of the page.<br />
* [http://admnj.com/ Affiliated Direct Mail] is a New Jersey based direct mail company that has their contact information and footer in hCard format.<br />
* [http://www.golfdigest.com/ Golf Digest] now supports hCard in its [http://www.golfdigest.com/courses/places Course Finder] detail pages. [http://www.golfdigest.com/courses/places/2483 example]<br />
* [http://dev.opera.com/authors/ Dev Opera] Opera's developer site uses hCards on the author details pages.<br />
* [http://chrischerry.name/ Chris Cherry's contact page with his hCard]<br />
* [http://www.kiteboarder.com.au/php/search.php www.kiteboarder.com.au] A new Australian kiteboarding portal. Microformats have been used so that users can export the shops <s>directly to outlook</s>. I was able to learn microformats through the Media 2007 conference in London. Author: Damien King<br />
* [http://krevi.dk/ KREVI] A Danish research institute. Using hCard in the footer of each page and on staff list. This is the first known danish website from the public sector of Denmark using microformats.[http://krevi.dk/om-krevi/organisation/medarbejdere example staff list]<br />
* [http://www.hss.ed.ac.uk/web-team/ College of Humanities and Social Science Web Team's site], University of Edinburgh uses a hCard in the footer of each page.<br />
* [http://www.theglobeandmail.com/ globeandmail.com] Canada's National Newspaper uses an hCard for their contact information.<br />
* [http://www.logisteam.pl/ Krzysztof Rucinski] uses an hCard for his contact details on [http://www.logisteam.pl/keylogger.kontakt.html Logisteam keylogger contact] page.<br />
* Creation design & marketing has hCards throughout the site, including the [http://www.creation.uk.com/contact/ contact page], the [http://www.creation.uk.com/company/leigh-scott/ company profile pages] and on the [http://www.creation.uk.com/news/2007/06/06/easy-money/#comments-view comments on articles]<br />
*<s> Wikipedia now has a template, [http://en.wikipedia.org/wiki/Template:Hcard-geo hcard-geo], for in-line hCards with coordinates, such as that on [http://en.wikipedia.org/wiki/Engine_Arm Engine Arm]</s><br />
* [http://www.thomsonlocal.com/ ThomsonLocal.com], major UK business directory publisher, use hcard on the search results and company information pages.<br />
* [http://www.corissia.com Corissia Group Hotels in Crete Greece] have included contact information as a hCard on the footer of every page of the website. There is a multilingual implementation as well.<br />
* [http://zucchetti.co.uk/2007/03/06/simple-address-formatting-solution/ Laura Zucchetti] illustrates a simple address formatting solution as a hCard and marked up in a definition list. <br />
* [http://www.feike.de/Kontakt.html Feike Contact] has a hCard on to top of the page.<br />
* [http://www.londondrum.com/ London Drum] uses a whole host of microformats - there are hcards and geo's on the hotel pages, events are written up in hcalendar format on the cityguide page, and you can also find some hreviews as well (like on the [http://www.londondrum.com/hotels/athenaeum.php Athenaeum Hotel page]) <br />
* [http://www.regels-stadskanaal.nl/ Regelingenbank Stadskanaal] has a hCard on each page, containing Geo-information too. <br />
* [http://www.tomstone.se Tom Stone - Trollkarl] has a hCard in the footer of each page of the site.<br />
* [http://www.rolandinsh.lv/ Rolands Umbrovskis]'s home page has hCard in [http://www.rolandinsh.lv/?ro=contacts contact page] and all other pages with contact information.<br />
* [http://www.epiphanysolutions.co.uk/ Epiphany Solutions Ltd] use a hCard on their contact us page. We intend to use the hCard on everypage if successfully implemented, along with a link to the Technorati vCard generator.<br />
* [http://twitter.com Twitter] uses hCard for user information (along with [http://ihack.us/2007/05/14/twitter-gets-microformatted/ several other microformats])<br />
*[http://www.pats.ua.ac.be/group PATS Group Members] uses hCard to mark up member contact information.<br />
*[http://couchsurfing.com CouchSurfing] has limited information in hCard available on members' profiles (such as [http://www.couchsurfing.com/people/guaka Guaka's]).<br />
*Wikipedia-UK (Ukranian)<br />
**Starting to roll out on biographies e.g. [http://uk.wikipedia.org/wiki/%D0%93%D0%B5%D1%82%D1%8C%D0%BC%D0%B0%D0%BD_%D0%92%D0%B0%D0%B4%D0%B8%D0%BC_%D0%9F%D0%B5%D1%82%D1%80%D0%BE%D0%B2%D0%B8%D1%87 Vadym Hetman]<br />
* [http://christophertcressman.com Christopher T. Cressman] uses an hCard on the home page of his blog, [http://christophertcressman.com christopher t cressman].<br />
* [http://kpumuk.info Dmytro Shteflyuk] uses an hCard on his [http://kpumuk.info/contact/ contact] and [http://kpumuk.info/curriculum-vitae/ curriculum vitae] pages.<br />
*Wikipedia-EN<br />
**starting to roll-out on articles about people, for example [http://en.wikipedia.org/wiki/Albert_einstein Albert Einstein]. The nature of Wikipedia means that there are a large number of templates to update (Albert's is "infobox scientist; there's also "infobox military people", "infobox musician" and so on, almost ad infinitum). DoB is only included if it's entered using a birth-date template, not as raw text. <br />
**starting to roll-out on articles about places, for example on UK Railway station template, e.g. [http://en.wikipedia.org/wiki/Birmingham_New_Street Birmingham New Street station] (includes Geo); and cities, for example [http://en.wikipedia.org/wiki/New_York_City New York]. See above for note on Wikipedia templates.<br />
**Any Wikipedia editors willing to assist with updating templates should see [http://en.wikipedia.org/wiki/Wikipedia:WikiProject_Microformats Wikipedia's microformat project]; [http://en.wikipedia.org/wiki/Category:Templates_generating_hCards Wikipedia templates generating hCards]<br />
**Unfortunately, [http://en.wikipedia.org/w/index.php?title=Template:Infobox_Protected_area&diff=prev&oldid=152308153 other editors are already breaking some of the implementations on Wikipedia]; e.g. [http://en.wikipedia.org/wiki/Grand_Canyon_National_Park Grand Canyon National Park]; [http://en.wikipedia.org/w/index.php?title=List_of_islands_of_Argentina&diff=prev&oldid=155590535 removal of "region" attributes]<br />
* The [http://www.bayofislands.net/ Bay of Islands] site has implemented hCard on all listing pages, eg: [http://www.bayofislands.net/accommodation/backpackers/saltwater-lodge/ Saltwater Lodge]<br />
* [http://people.cs.uchicago.edu/~mpschaef/index.html Merrick Schaefer] is psyched to use hCard on his homepage for his contact info.<br />
* Christian Hess (from San José, Costa Rica) has an hCard in his [http://www.hess-cr.com home page], [http://www.hess-cr.com/utilidades/correo.shtml#postal contact] and [http://www.hess-cr.com/secciones/curriculum/datos.shtml personal résumé] pages (all in Spanish). He also recommends using the [https://addons.mozilla.org/es-ES/firefox/addon/4106 Operator] extension in Firefox to check them out.<br />
* [http://www.JamPlanet.com Jam Planet] uses hCard in Contact Us page; application can generate hCard for a contact.<br />
* [http://www.anisfield-wolf.org/ The Anisfield-Wolf Book Awards], designated specifically to recognize works addressing issues of racism and diversity, uses hCard for the author bios of [http://www.anisfield-wolf.org/Winners/PastWinners/ past winners].<br />
* [http://www.buy-our-honeymoon.com/ Buy Our Honeymoon], a [http://www.buy-our-honeymoon.com/usa honeymoon registry] service, uses hCard in their [http://www.buy-our-honeymoon.com/contact Contact Us] page.<br />
* '''W3C webmaster''' [http://www.w3.org/People/Jean-Gui/ Jean-Guilhem Rouel] now has an hCard.<br />
* [http://source.ibegin.com/ iBegin Source] - All 10.8+ million business listings have their information marked up in hCard. Example: [http://source.ibegin.com/california/adelanto/aeronautical-supplies/general-atomics-9779-yucca-rd-1.html General Atomics]<br />
* [http://david.weekly.org/ David Weekly] has added an hCard to his home page for himself.<br />
* [http://ficlets.com/stories/12 Ficlets] story page uses hCard for author bio.<br />
* [http://redmonk.com/contact/ RedMonk Contact page] uses hCard for RedMonk firm as well as each analysts.<br />
* [http://source.ibegin.com/ iBegin Source] uses hCard to identify business information for all 10.5+ million businesses listed.<br />
* [http://www.lounews.com/ The Louisville News Company] uses hCard for site-wide contact information for the company and for the site developer.<br />
* [http://cloudislands.com/contact.php Cloud Islands] uses hCard for our Contact Info.<br />
* [http://www.international.unt.edu UNT International] uses hCard to mark up contact information sitewide (see esp. [http://www.international.unt.edu/offices/ieli/people/instructors/profiles the IELI instructor profile listing])<br />
* [http://www.giraffo.de giraffo.de] has different hCards on every page (+ geo in "kontakt")<br />
* [http://www.enap.com ENAP, Inc.] lists the HR Contact in hCard format on the [http://www.enap.com/career.aspx Career Opportunities] page.<br />
* [http://sxsw07.conferenceer.com/people Conferenceer] lists panelists and participants to the 2007 South by Southwest interactive conference in hCard format<br />
* [http://news.stanford.edu Stanford News] (Redesign) hCard in the footer on every page as well as markup for every staff member on the Staff page.<br />
* [http://www.wikiservice.at/fractal/wikidev.cgi?FR/EveMoreau Valérie-Eve Moreau] has an hCard on her wiki-homepage.<br />
* [http://en.wikipedia.org/wiki/St_George%27s_Minster%2C_Doncaster St George's Minster, Doncaster, on Wikipedia]<br />
* AOL Journals publishes hCards for authors. [http://journals.aol.com/carowill/whats-happening Example]<br />
* Ian McKellar's [http://ian.mckellar.org/ home page] is an hCard that's styled to look like a business card.<br />
* [[Christophe Ducamp]]'s hCard based on [http://www.wikiservice.at/fractal/wikidev.cgi?FR/MicroFormats/ChristopheDucamp wiki personal page] of a wiki-branch which could be dedicated to seed a french group to support microformats. Thanks to Laurent Lunati for the CSS. You can [http://www.wikiservice.at/fractal/wikidev.cgi?action=edit&id=FR/MicroFormats/ChristopheDucamp edit it]. Any suggestions welcome.<br />
* [http://www.matthewwest.co.uk Matthew West] has an hCard on his [http://www.matthewwest.co.uk/email contact] page.<br />
*[http://www.webmaster.waw.pl Paweł Wrzosek] Freelance webdeveloper`s portfolio<br />
*[http://www.stanford.edu/ Stanford.edu] hCard markup is included in the footer of the homepage and all subsequent pages within the /home directory.<br />
*[http://openid.ne.jp OpenID.ne.jp] First OpenID provider service in Japan(日本語). Each personal OpenID page (ex:[http://eouia.openid.ne.jp http://eouia.openid.ne.jp]) is marked up as his hCard. And there is a company hCard on every page, too.<br />
* [http://www.qwertycars.co.uk/garages/mechanics-near-tadworth-kt20.aspx UK Car Garages] Address of car mechanics in the UK, in hCard format.<br />
* [http://www.columbiaautomation.com/sub/contact.php Columbia Automation]'s About Us page every employee marked up as an hCard, as well as having a company hCard with geo information.<br />
* [http://www.pointermix.com Pointermix Design] uses the hCard format.<br />
* [http://eight6.com/contact/ eight6]'s contact page uses the hCard format.<br />
* [http://www.raveaboutit.com.au Rave About It]'s business listings use the hCard format.<br />
* [http://optics.org/cws/Contact/OurTeam.do optics.org]'s team page.<br />
* [http://www.robcottingham.ca/contact Rob Cottingham]'s first foray into microformats is an hCard on the contact page of his personal blog. (He was inspired by Tantek Çelik's presentation at Web Directions North 2007.)<br />
* [http://redmonk.net/about-this-site Steve Ivy] - hcard about page, includes the usual suspects + XFN on 'url's, photo, amd geo.<br />
* [http://seattleu.edu Seattle University] uses hCard on it's front page and most pages that share an official template. <br />
* [http://www.josemarti.waw.pl Jose Marti XXII Secondary School in Warsaw] includes hCard on Contact and About Author sections<br />
* [http://www.jaama.co.uk Jaama] have their company details as a vCard download on their [http://www.jaama.co.uk/Contact.aspx contact] page.<br />
* [http://3amproductions.net 3AM Productions] has company details marked up as hCard all across the site and particularly for [http://3amproductions.net/jason.php Jason] and [http://3amproductions.net/gilbert.php Gilbert]<br />
* [http://jc-development.co.uk/ JC's Development] has company contact details as hCard.<br />
* [http://berlin.barwick.de/index.html Berlin Guide] is converting their address markup to hcard, e.g. [http://berlin.barwick.de/shopping/kadewe-kaufhaus-des-westens.html KaDeWe] <br />
* [http://www.xlntads.com XLNTads] has their contact information marked up in hCard, as well as their development schedule/timeline in hCalendar<br />
* [http://derrick.pallas.us Derrick Pallas] tells people to look for him here.<br />
* [http://bluemonkcreative.com/contact/ Bill Turner] adds an hCard to the contact page of his freelance business' website.<br />
* [http://www.oppenheim.com.au/ James Oppenheim's blog] includes an inline author hCard in the footer of each page and also on the contact page.<br />
* [http://steinhardt.nyu.edu/ NYU Steinhardt] has [http://steinhardt.nyu.edu/faculty_bios/list/Faculty 240+ faculty bios marked up], e.g. [http://steinhardt.nyu.edu/faculty_bios/view/Susan_Murray].<br />
* [http://www.boogdesign.com/aboutus.html boogdesign.com] has added hCard markup on the contact page.<br />
* [http://www.gptg.org/ Great Places To Golf], hCards for golf clubs around the world, e.g. [http://www.gptg.org/club/12/]<br />
*[http://www.travellerspoint.com/ The Travellerspoint Travel Community] has added hCards to all of their member profiles (e.g. [http://www.travellerspoint.com/member_profile.cfm?user=jax_07]). Details include name, photo, location, notes and url. <br />
* The [http://www.westmidlandbirdclub.com/ West Midland Bird Club] in the English Midlands uses hCard on its [http://www.westmidlandbirdclub.com/ home page], [http://www.westmidlandbirdclub.com/diary/ events diary], [http://www.westmidlandbirdclub.com/club/contact.htm contact pages], [http://www.westmidlandbirdclub.com/site/links.htm links page], [http://www.westmidlandbirdclub.com/club/older.htm list of the world's oldest bird clubs] and in a page footer which is gradually being rolled out across the whole site. {{UpdateMarker}} Page-footer's hCard now has logo, using [[include-pattern]].<br />
*[http://wizardishungry.com/blog/ wizardishungry/blog] has the author's hCard in the footer of every page with a link to X2V.<br />
* [http://www.walkerfineart.com Walker Fine Art Gallery] Most pages contain an hCard in the footer.<br />
* [http://www.brdatasystems.com.au/contact-us.html B&R Data Systems] is an organisation hCard. We have also used the technorati tool to download as a vCard, which I think is useful for a business.<br />
* [http://chewbittel.com/contact.php Chew Bittel Assoc., Inc.] is an organization hCard. It's got abbr's in there, and a duplicate telephone field, and some hidden things. I'm really pushing things to the limit here. This should be a great test for your parser.<br />
* [[User:Steve Ivy|Steve Ivy]]'s [http://redmonk.net/about-this-site/ about page] has his hcard, including a link to Technorati's contacts feed to let visitors download his contact information.<br />
* Scott Allan Wallick's hCard is [[User:ScottWallick|his user page]] and on his blog, [http://www.plaintxt.org/about/2/ plaintxt.org]<br />
* [[User:Bob_Jonkman|Bob Jonkman's hCard]] '''on this 'wiki''''<br />
<br />
===Added pre 2007===<br />
* [http://thetenwordreview.com The Ten Word Review] simply contains ten word long reviews. All reviews are marked up as [[hreview|hReviews]], and user information is marked up as hCards.<br />
*OffshoreAgile.com, a subsite of Starsoft Development Labs, uses hCard in the [http://www.offshoreagile.com/company/contact/ Starsoft Contacts] and Media Inquiries sections<br />
*T-Mobile uses hCard for the [http://t-mobilepressoffice.co.uk/press/contact-details/ T-Mobile UK Press Contact Details page], as well as for some of the latest press releases<br />
* Psychology Press and Routledge's Behavioral Sciences' publishing division have implemented hCard on their contact pages on 17 of their websites (example on the contact page on their [http://www.clinicalpsychologyarena.com/contact/ Clinical Psychology Arena])<br />
*[http://72ppi.us 72ppi], uses hCard in the footer.<br />
*[http://www.csarven.ca Sarven Capadisli] uses hCard throughout the site (including user comments in articles).<br />
* [https://www.urbanbody.com/information/contact-us Urban Body Men's Clothing] uses hCard for business locations and hCalendar for business hours.<br />
* [http://www.iqair.us/ IQAir North America], uses hCard for contact information.<br />
* [http://www.infoiasi.ro/ The website of the Faculty of Computer Science], "A. I. Cuza" University Ia&#351;i, Romania uses hCard for each staff member.<br />
* [http://www.finds.org.uk/ The Portable Antiquities Scheme at the British Museum] hCards added to footer of every page and to contacts section. Working on adding more and getting it right.<br />
* In [http://www.ideasfornet.com/ IdeasForNet.com - the ideas repository] hCards were implemented partially in the footer of each page, and more comprehensively in the contact and about pages.<br />
* The [http://www.cst.ed.ac.uk/ Centre of Canadian Studies] at the University of Edinburgh use hCards for contact information in the footer of their site.<br />
* [http://www.theatrestudies.llc.ed.ac.uk/ Theatre Studies: European Theatre] at the University of Edinburgh use hCards for contact information on their home page<br />
* [http://www.carolinemockett.com/design/about.aspx Caroline Mockett] has an hCard on her About Me page<br />
* [http://wait-till-i.com Christian Heilmann] has a footer address using hCard<br />
*[http://www.audience-response-rentals.com/ Audience Response System Rentals] uses hcard as a popup in the site accessibility area (lower right) for easy copy and paste of address by customers.<br />
* [http://www.fischsolutions.com/ Fisch Internet Solutions] uses an embedded hCard and a vCard download to provide customers an easy way to contact them on their [http://fischsolutions.com/contactus.html Contact Us] section of the website.<br />
* [http://www.micatholicconference.org/ Michigan Catholic Conference] uses hCard for contact information in the sidebar.<br />
* [http://www.adambunn.co.uk/ Adam Bunn] provides contact details in the sidebar using hCard.<br />
* [http://www.belkin.com/pressroom/releases/uploads/10_10_06NotebookExpansionDock.html Belkin Press Releases] are using hCards for PR contacts and corporate offices.<br />
* [http://mybank.com myBank.com] uses hCard for its listings of every branch of every FDIC-insured bank in the United States.<br />
* [http://leftlogic.com Left Logic] uses hCard for embedded contact information.<br />
* [http://inga-art.co.uk/artist Inga Scholes] uses hCard for contact information in the sidebar.<br />
* [http://www.lussumo.com/ Lussumo] uses hCards on user profile pages in its open-source [http://www.getvanilla.com/ Vanilla] Discussions Forum software.<br />
* [http://www.creative-ways.nl/ Ron Kok] uses hCards to mark-up the names and URLs of commentors on his blog. He also uses hCards in combination with XFN in his blogposts to refer to friends, and has an hCard for himself on every page on his blog.<br />
* [http://tagg.no Tagg Media] uses hCard for [http://heine.tagg.no/contact.php contact information] and provide link to vCard download in the contact section.<br />
* The article about the fictitious Matrix character [http://en.wikipedia.org/wiki/Neo_%28The_Matrix%29 Thomas A Anderson in Wikipedia] is now marked up with hCard.<br />
* [http://dconstruct06.madgex.com/ d.Construct 2006 Backnetwork] uses hCards for conference delegates (and provides the markup so that delegates can copy and paste cards into their own sites).<br />
* [http://www.brown.edu Brown University] now uses hCard on the front page<br />
* [http://www.wideblueyonderweb.co.uk Dunks at Wide Blue Yonder Web Design] has added hCard markup on his [http://www.wideblueyonderweb.co.uk/wbyw/pages/contact.htm contact page] and is looking to implement it on all past & future contact pages for clients.<br />
* [http://southamptonrubberstamp.com Southampton Rubber Stamp Company] now has hCard markup with a vCard download link on every page.<br />
* [http://barefoot-ceramics.com Barefoot Ceramics paint your own pottery studio] (in Newport, South Wales) has added hCard markup to its [http://barefoot-ceramics.com/find#address "Find"] page and other address instances. They hopes to implement hCalendar event lists as soon as an ics to hCalendar PHP class can be found or written.<br />
* [http://dsingleton.co.uk/ David Singleton] has added a hCard to his blog.<br />
* [http://www.thestreet.org.au The Street Theatre (Canberra, Australia)] has added hCard markup to its [http://www.thestreet.org.au/contact.htm Contact Us] page. hCalendar markup will soon be added for all of our performances.<br />
* [http://www.informatik.uni-hamburg.de/SVS/personnel/henrich/index.php Henrich C. P&ouml;hls] has marked up his about page using hcard, including his PGP-Key that is stored in an abbr title, using class=key.<br />
* [http://www.yalf.de Yalf Webentwicklung] has [http://www.yalf.de/kontakt contact information] available as hCard (and vCard).<br />
* [http://www.zeldman.com/about/ Jeffrey Zeldman]. Jeffrey Zeldman has marked up his about page using hcard.<br />
* [http://WhereAreYouCamping.com Where Are You Camping]. hCards for all members and camps, employing the include pattern as well. AFAIK this is the first Burning Man related microformats implementation, not to mention addresses in Black Rock City.<br />
* [http://www.clacksweb.org.uk Clackmannanshire Council ]. hCard is implemented for all contact details across the site, and for specific individuals such as elected members (Councillors).<br />
* [http://www.webdirections.org Web Directions]. hCard is used as contact information for the conference, while speakers are marked up with hCard.<br />
* [http://www.markthisdate.com/contactform.html MarkThisDate.com]. An hCard is implemented on our contact form. For our calendars hCalendars will follow as soon as possible.<br />
* [http://www.msiinet.com/contact/ MSI Systems Integrators] has its &quot;Contact MSI&quot; page encoded with hCards.<br />
* [http://www.coolblue.nl/ Corporate website of Coolblue BV]. hCards were implemented in both the footer of each page, and in the "News" section for press contact information.<br />
* [http://www.besancon.fr/index.php?p=32 Official site of Besançon (France)] uses hCard for each page concerning the small towns surrounding Besançon.<br />
* [http://2006.dconstruct.org/speakers/ d.Construct 2006 conference speakers list] is implemented using hCards.<br />
* [http://local.yahoo.com Yahoo Local] now supports hCards for business and places in the search results<br />
* [http://learningtheworld.eu/imprint/ Learning the World] has hcard information on the imprint, alas we didn't succeed to mark-up the work phone and fax numbers properly.<br />
* The [http://www.fuckparade.org F’parade] website uses hCard, though I didn't find a type to distinguish mobile and landline phone numbers.<br />
**Use <code>cell</code> for mobiles.<br />
* [http://www.miranet.nl/contact.htm Miranet Webdesign] have added a hcard to their [http://www.miranet.nl/contact.htm 'contact' page]<br />
* [http://weblog.200ok.com.au/ Ben Buchanan] has added a vCard to the [http://weblog.200ok.com.au/about/ 'About' page on The 200ok Weblog]<br />
* [http://www.radiantcore.com Radiant Core] has their contact information [http://www.radiantcore.com/contact/ available in hCard].<br />
* [http://www.mikerumble.co.uk/ Mike Rumble] has [http://www.mikerumble.co.uk/contact.html uploaded his hCard].<br />
* [http://www.saumag.edu/ Southern Arkansas University] has its contact footer encoded as hCard<br />
* [http://main.uab.edu/ University of Alabama at Birmingham] has its contact footer encoded as hCard<br />
* [http://www.capital.edu Capital University] has contact footer and bloggers' names encoded as hCard. Also, all page-specific contact information is encoded as hCards (see [http://www.capital.edu/Internet/Default.aspx?pid=67 Admissions] page for an example)<br />
* [http://main.uab.edu/shrp/ UAB School of Health Professions] uses hCard in its contact footer<br />
* [http://green.carisenda.com/ Stephen Stewart] has his hCard on the front page of his weblog ('You are here' section)<br />
* [http://www.direction.es/ Direction] uses hCard for contact information.<br />
* [http://audiobank.tryphon.org AudioBank] uses hCard to display member informations.<br />
* [http://www.vivabit.com/atmedia2006/speakers/ @media speakers] are marked up with hCard (photos depend on BASE tag support which makes this a good test case)<br />
* [http://www.dougransom.com Doug Ransom] uses hCard for his financial advisory practice. <br />
* [http://rubyandrails.org/usergroups/newcastle/members.html ncl.rb] uses hCard for contact information.<br />
* [http://www.snowinteractive.com/ Snow Interactive] uses hCard for contact information.<br />
* [http://flickr.com Flickr] now supports [[hcard|hCard]] and [http://gmpg.org/xfn XFN] on profile pages. See [http://flickr.com/photos/factoryjoe/113866484/ screenshot of Flickr UI in Flock browser using Flocktails extension - March 17th 2006].<br />
* [http://www.ndiyo.org/contact Contact information for the Ndiyo project]<br />
* [http://www.pixelenvy.co.uk/ Pixel Envy] uses hCard for contact information on every page<br />
* [http://stilbuero.de/contact/ Klaus Hartl] uses hCard in the sidebar for contact information (maybe easier to parse through delivering xhtml as xml).<br />
* [http://charlvn.virafrikaans.com/contact Charl van Niekerk's hCard]<br />
* [http://billy-girlardo.com/WP/ BillyBLOGirlardo] uses hCard for contact information.<br />
* [http://www.hicksdesign.co.uk/ Hicksdesign] uses hCard for contact information.<br />
* http://www.gr0w.com/articles/press/growsearch_launched_press_release/ - hCard in a press release for the press contact info<br />
* http://www.redmonk.com/cote/archives/2006/03/testing_out_mic.html - hCard with explanation<br />
* [http://andy.ciordia.info/ it's my island], personal blog, hcard on the ''[http://andy.ciordia.info/pages/about_me About the Writer]'' page. [[User:Ciordia9|Andy Ciordia]]<br />
* [http://www.windowonwoking.org.uk/ Window on Woking], a local community site in the UK, uses hCard in the homepage of each member organisation and local Councillor.<br />
* [http://ChunkySoup.net/ ChunkySoup.net] has redesigned using hAtom 0.1 and hCards on the entire site -- by [[User:ChrisCasciano|Chris Casciano]]<br />
* [http://www.30boxes.com/ 30 Boxes],a social calendar application and digital lifestyle aggregator, automatically creates an hcard for you with your account. It is found under Settings > Syndication.<br />
* [http://www.nearwhere.com/ Nearwhere.com] allow you to put an hcard on an interactive map.<br />
* [http://www.brentozar.com/ Brent Ozar] added a [http://www.brentozar.com/contact.php contact] page hCard.<br />
* [http://www.kerihenare.com/ Keri Henare] has rewritten his [http://www.kerihenare.com/contact/ contact] page hCard. Now using <code><object></code> instead of <code><img></code> for photo. (Thanks Brian Suda for updating the vCard converter)<br />
* [http://michaelraichelson.com/contact/ Michael Raichelson] had an hCard on his contact page before SXSW, but never thought to add it here until Tantek requested it.<br />
* [http://www.commoner.com/~lsimon/lindsey_simon_hcard.html Lindsey Simon] has added an hCard to his website as per Tantek's SXSW request for folks to try it <br />
* [http://www.davidgagne.net/ David Gagne] has an hCard in his sidebar.<br />
* [http://www.churchzip.com/map/ Churchzip.com/map] and [http://www.skiwhere.com/map/ Skiwhere.com/map], provide churches, hotels, and ski resorts on the same maps. Locations are formatted as hCards.<br />
* All [http://www.iqdir.com/ IQ Directory Solutions] Yellow Pages web portals use [[hcard|hCard]] markup on listings. For example [http://www.yellowpages-cambodia.com/ Cambodia Yellow Pages] and [http://www.superpages.com.my/ Malaysia Super Pages]<br />
* Ning's cloneable Group app uses fuzzy matching to map custom fields to [[hcard|hCard]] markup on its [http://group.ning.com/index.php?controller=person&action=view&content=JonathanAquino profile] pages.<br />
* [http://claimid.com/factoryjoe Chris Messina' ClaimID hCard]<br />
* [http://factoryjoe.com/blog/hcard Chris Messina' hCard]<br />
* [http://flock.com/about Flock About]<br />
* [http://tantek.com/microformats/2006/03-01-TechPlenAgenda.html Agenda: W3C Technical Plenary Day, March 1 2006] has [[hcard|hCard]] and [[hcalendar|hCalendar]] markup. ([http://www.w3.org/2006/03/01-TechPlenAgenda.html original here]).<br />
* [http://www.gr0w.com/articles/press/growsearch_launched_press_release/ GrowSearch Launched (Press Release)] uses an hCard to provide Press Contact Point.<br />
* The [http://www.arborday.org/ National Arbor Day Foundation] has started using hCards for their [http://arborday.org/programs/conferences/communityforestry/index.cfm upcoming] [http://arborday.org/programs/conferences/hazardtrees-treeplanting/ conferences].<br />
* [http://www.multipack.co.uk The Multipack] has numerous hCards, especially on the [http://www.multipack.co.uk/members/ members page], as well as the next meeting information.<br />
* [http://deadringrancor.livejournal.com/ Justin McDowell] used an hCard when [http://deadringrancor.livejournal.com/221332.html referring to a person in his blog post]<br />
* [http://davecardwell.co.uk/cv/ Dave Cardwell] has included his hCard in his Curriculum Vitae.<br />
* [http://blog.usweb.com/ Shaun Shull] has written a great post on [http://blog.usweb.com/archives/how-microformats-affect-search-engine-optimization-seo How Microformats Affect SEO], and has included his [[hcard|hCard]] as one of the examples.<br />
* [http://www.thefutureoftheweb.com/ Jesse Skinner] has written a simple [http://www.thefutureoftheweb.com/blog/2006/1/hcard tutorial with examples]<br />
* [http://www.w3.org/2005/12/allgroupoverview.html 2006 W3C Technical Plenary Week] has marked up the venue, contacts, and program committee members all with hCard.<br />
* [http://www.avf-nexus.co.uk AVF-Nexus] have a hCard on their [http://www.avf-nexus.co.uk/contact/ contact page] - (by [http://creation.uk.com Creation"])<br />
* [http://www.thefantasticos.com/andrew/ Andrew White] posted [http://www.thefantasticos.com/andrew/index.php/my-hcard/ his hCard] and [http://www.thefantasticos.com/andrew/index.php/62/microformats-the-should-have-been-obvious-web-dev-tool/ blogged about it].<br />
* [http://www.2sheds.ru Oleg "2sheds" Kourapov] in his [http://www.2sheds.ru/blog/ blog] ([http://suda.co.uk/projects/X2V/get-vcard.php?uri=http://www.2sheds.ru/blog X2V]) has turned personal profile into hCard ([http://suda.co.uk/projects/X2V/get-vcard.php?uri=http://www.2sheds.ru/blog/hcard.html X2V]) and his blogroll - into combination XFN/hCards ([http://suda.co.uk/projects/X2V/get-vcard.php?uri=http://www.2sheds.ru/blog/friends.html X2V])<br />
* [http://www.approveddesign.co.uk Approved Design Consultancy] have a hCard on their [http://www.approveddesign.co.uk/about/contact/ contact page] as well as on their [http://www.approveddesign.co.uk/about/people/ people section] - (by [http://creation.uk.com Creation"])<br />
* [http://weblog.200ok.com.au/ Ben Buchanan] and [http://www.griffith.edu.au/cgi-bin/phone_search.pl?string=colin+morris&format=search Colin Morris] have [http://weblog.200ok.com.au/2006/01/griffith-phonebook-adds-hcard-and.html implemented hCards and vCards] for the [http://www.griffith.edu.au Griffith University] [http://www.griffith.edu.au/find/content_phonebook.html online phone book]. Eg. [http://www.griffith.edu.au/cgi-bin/phone_search.pl?string=ben+buchanan&format=search Ben's vCard] and [http://www.griffith.edu.au/cgi-bin/phone_search.pl?string=colin+morris&format=search Colin's vCard]<br />
* WWF-Australia [http://wwf.org.au/about/contactdetails/ contact details page]<br />
* [http://rasterweb.net/raster/ Pete Prodoehl] used the hCard format on his [http://rasterweb.net/raster/contact.html Contact page] and his [http://rasterweb.net/portfolio/ Portfolio]<br />
* [http://alexander-mette.de amette] uses the hCard format in a module of his TikiWiki powered blog<br />
* [http://staff.washington.edu/oren/weblog2/ Oren Sreebny] has an hcard on his blog main index template <br />
* [http://www.cs.brandeis.edu/~zippy/ Patrick Tufts] has an hCard on his homepage.<br />
* [http://ascii20.blogspot.com/ Mathias Kolehmainen and Jamie Taylor] have hCards on their weblog.<br />
* [http://www.hoppsan.org/jamesb/blogger/ Barnaby James] has a hCard on his weblog.<br />
* [http://esa-education.com/schools/map ESA Education] Uses hCards for their 100+ schools and each of the individual school sites.<br />
* [http://www.thereisnocat.com/#vcard Ralph Brandi] has added an hCard to the sidebar of his weblog as a result of Tantek Çelik's portion of the Microformats presentation at SXSW 2006.<br />
* [http://www.pierce.ctc.edu/ephone/ Pierce College] -- community college directory uses hCard on all individual directory entries.<br />
* [http://www.ukoln.ac.uk/web-focus/events/workshops/webmaster-2006/ the Institutional Web Management Workshop 2006] have marked up all their [http://www.ukoln.ac.uk/web-focus/events/workshops/webmaster-2006/committee/ speakers with hCard].<br />
* http://wikitravel.org/en/Singapore/Sentosa. Wikitravel is experimenting with hcard on its travel guides. This guide uses hcard for all its business listings. More info on http://wikitravel.org/en/Wikitravel_talk:Listings.<br />
* [http://www.musik-erber.de/ Musik-Erber] uses to present contact information at the sidebar<br />
* [http://cdevroe.com/about/#contact Colin D. Devroe] uses hCard to display his contact information on his about page<br />
* The ECS (Scool of Electronics and Computer Science at the University of Southampton) [http://www.ecs.soton.ac.uk/people People Pages] use vCard. Contact cjg@ecs.soton.ac.uk if there's any bugs.<br />
* [http://www.southwestern.edu/~ramseyp Pat Ramsey] has his contact information on his blog marked up with hCard. Contact [mailto:ramsey.pat@gmail.com ramsey.pat@gmail.com] if there are any bugs there.<br />
* [http://www.vyre.com/company/contact-us/ VYRE] is a CMS development company with a "contact us" hCard<br />
* [http://www.lefdal.cc/info.php Alf Kåre Lefdal] uses hCard in the markup of his contact information<br />
* [http://www.pignwhistle.com.au/ Pig N Whistle, a chain of pubs in Brisbane, Australia] is using hcard to mark up all the contact pages for its outlets and head office<br />
* [http://kollitsch.de/ Patrick Kollitsch] has built his personal Profil as hCard<br />
* [http://www.audiophile.pl/ Car Audio] uses the hCard in his contacts section.<br />
* [http://www.hbs.edu/faculty/dspar/ Harvard Business School] has hCards on their faculty pages<br />
* [http://openmikes.org/ openmikes.org] uses hCards for open mike venue addresses in its listing detail pages.<br />
* [http://www.intertecnollc.com/ InterTecno, LCC] publishes an hCard on the home page and contact page.<br />
* [http://canaltcm.com/ver/sobre-tcm Turner Classic Movies TCM Spanish website] has published contact details as a hCard<br />
* [http://rejuvenation.com/ Rejuvenation] is now using hCard for contact information.<br />
* [http://www.mattash.com/contact/ Matthew Ash] uses the hCard in his contacts section.<br />
* [http://yarmouthguide.com/business.php Yarmouth Guide] uses hCard for each business details page.<br />
* [http://www.merchantcircle.com MerchantCircle] has embedded an hCard in every one of their 15+ million US business listings.<br />
* [http://citizenspace.us/citizens Citizen Space Citizens] is a list of tenants for a coworking space in San Francisco. The issue was raised that ''nicknames'' are usually located in the middle of ''fn'', which is not valid as per the [http://microformats.org/wiki/hcard-brainstorming#Implied_FN_from_N Implied_FN_from_N] rule. It seems that it should be possible, however, to include a ''nickname'' in the middle of an FN or even between a ''given-name'' and a ''family-name''.<br />
** use: <code><nowiki><span class="fn n"><span class="given-name">Andy</span> "<span class="nickname">Pigsonthewing</span>" <span class="family-name">Mabbett</span></span></nowiki></code>. [[User:AndyMabbett|Andy Mabbett]] 09:12, 16 Jan 2008 (PST) <!--<br />
Please add new examples to the *top* of the current year's section.<br />
<br />
--><br />
<br />
== Related Pages ==<br />
{{hcard-related-pages}}</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=rel-me&diff=26892rel-me2008-02-25T10:40:44Z<p>AndyMabbett: clarify</p>
<hr />
<div><h1>rel="me"</h1><br />
<br />
[[XFN]] 1.1 introduced the "me" [[rel]] value which is used to indicate profile equivalence and for [[identity-consolidation]]. <br />
<br />
<code>rel="me"</code> is used on hyperlinks from one page about a person to other pages about that same person.<br />
<br />
For example, [[User:Tantek|Tantek]]'s [http://pownce.com/t/ Pownce profile] has:<br />
<br />
<pre><nowiki><a href="http://twitter.com/t" rel="me">Twitter Profile</a></nowiki></pre><br />
<br />
Publishers can use the [http://gmpg.org/xfn/creator XFN creator] form to create rel-me hyperlinks.<br />
<br />
== screencast ==<br />
Watch [http://www.sixapart.com/static_news/opening_social_graph/xfn_links/xfn_links.html David Recordon's excellent *30 second* explanation of XFN rel="me"].<br />
<br />
== see also ==<br />
* [[xfn]]<br />
* [[rel]]<br />
* [[social network portability]]<br />
* [http://gmpg.org/xfn/11 XFN 1.1 profile]</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=rel-me&diff=25874rel-me2008-02-25T10:39:37Z<p>AndyMabbett: copy edit</p>
<hr />
<div><h1>rel="me"</h1><br />
<br />
[[XFN]] 1.1 introduced the "me" [[rel]] value which is used for profile equivalence and [[identity-consolidation]]. <code>rel="me"</code> is used on hyperlinks from one page about a person to other pages about that same person. E.g. [[User:Tantek|Tantek]]'s [http://pownce.com/t/ Pownce profile] has:<br />
<br />
<pre><nowiki><a href="http://twitter.com/t" rel="me">Twitter Profile</a></nowiki></pre><br />
<br />
Publishers can use the [http://gmpg.org/xfn/creator XFN creator] form to create rel-me hyperlinks.<br />
<br />
== screencast ==<br />
Watch [http://www.sixapart.com/static_news/opening_social_graph/xfn_links/xfn_links.html David Recordon's excellent *30 second* explanation of XFN rel="me"].<br />
<br />
== see also ==<br />
* [[xfn]]<br />
* [[rel]]<br />
* [[social network portability]]<br />
* [http://gmpg.org/xfn/11 XFN 1.1 profile]</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=rel-me&diff=25873rel-me2008-02-25T10:39:12Z<p>AndyMabbett: not just for user profiles</p>
<hr />
<div><h1>rel="me"</h1><br />
<br />
[[XFN]] 1.1 introduced the "me" [[rel]] value which is used for profile equivalence / [[identity-consolidation]]. <code>rel="me"</code> is used on hyperlinks from one page about a person to other pages about that same person. E.g. [[User:Tantek|Tantek]]'s [http://pownce.com/t/ Pownce profile] has:<br />
<br />
<pre><nowiki><a href="http://twitter.com/t" rel="me">Twitter Profile</a></nowiki></pre><br />
<br />
Publishers can use the [http://gmpg.org/xfn/creator XFN creator] form to create rel-me hyperlinks.<br />
<br />
== screencast ==<br />
Watch [http://www.sixapart.com/static_news/opening_social_graph/xfn_links/xfn_links.html David Recordon's excellent *30 second* explanation of XFN rel="me"].<br />
<br />
== see also ==<br />
* [[xfn]]<br />
* [[rel]]<br />
* [[social network portability]]<br />
* [http://gmpg.org/xfn/11 XFN 1.1 profile]</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=xfn-faq&diff=32526xfn-faq2008-02-25T10:37:44Z<p>AndyMabbett: /* Are there any asymmetric XFN relationships */ fmt, sort</p>
<hr />
<div><h1> XFN FAQ </h1><br />
<br />
{{TOC-right}}<br />
<br />
This page is for documenting Q&A about [[xfn|XFN]] in addition to the [http://gmpg.org/xfn/faq official XFN FAQ]. It is likely that items here will be incorporated there. Or perhaps GMPG may choose to redirect the FAQ here - this is to be determined. For now, if you have a new question to ask about XFN, please consider first asking your question on the [http://microformats.org/mailman/listinfo/microformats-discuss/ microformats-discuss] mailing list.<br />
<br />
Please first read the [http://gmpg.org/xfn/faq official XFN FAQ].<br />
<br />
== value clarifications ==<br />
<br />
=== Why is muse in the romantic category ===<br />
''According to the [http://gmpg.org/xfn/11 XFN spec], rel="muse" is a link to someone who inspires you, and is listed as being a "romantic" relationship. Does it is always implied as a romantic relationship, since one could certainly find someone else inspiring without being romantically involved/interested?''<br />
<br />
* Certainly "muse" was not intended to only be purely romantic in the literal "romantic relationship" sense (though it is clear how that could easily be misconstrued), and of course that meaning is included. The categorization as "romantic" is in a broader sense, similar to [http://en.wikipedia.org/wiki/Romanticism romanticism] as in enabling the elevation of: <blockquote>"the achievements of what it [Romanticism] perceived as misunderstood heroic individuals and artists that altered society."</blockquote> or [http://en.wikipedia.org/wiki/Romance_%28genre%29 romance the genre].<br />
* The [http://gmpg.org/xfn/11 XFN spec] defines ''muse'' as well as ''crush'', and one ought not to be confused with the other. Either way, romantically or figuratively, the muse inspires.<br />
* Note also: [http://en.wiktionary.org/wiki/muse The Wiktionary definition of ''muse'']<br />
<br />
=== How do I markup my relationship to companies I used to work for ===<br />
''How do I markup my relationship to companies I used to work for?''<br />
<br />
* Markup companies that you used to work for on your resume page with [[hresume|hResume]]. In it each job is captured as an [[hcalendar|hCalendar]] event with a nested [[hcard|hCard]] that represents your identity (title, url, org-unit etc) while you were at that company.<br />
<br />
* For current companies and organizations that you are a part of, take a look at the [[rel-group]] microformat brainstorm proposal.<br />
<br />
=== How do I markup people that I used to work with ===<br />
''How do I markup people that I used to work with?''<br />
<br />
* Use the XFN 'colleague' relationship to markup your current relationship to your former co-workers.<br />
* In addition, you can use XFN on links to people within a blog post set a date and time context for when that relationship was true. Thus over time, it is possible to use different XFN values to reflect the evolving nature of your relationships. See [http://gmpg.org/xfn/background#timeless XFN: Background: Out of time] for more.<br />
<br />
=== How do I markup location info like my office ===<br />
''Is there anything in there for locative info, like 'my office,' etc.? [http://twitter.com/chrisbrogan/statuses/680669842 1]'' <br /><br />
''We have "rel" tags for humans. Is there an equivalent for location and place? [http://twitter.com/chrisbrogan/statuses/680135072 2]'' <br />
<br />
Markup location info related to your office as part of your <code>type</code> <code>work</code> address (<code>adr</code>) in your [[hCard]].<br />
<br />
=== Why does XFN omit negative values ===<br />
''Wondering why XFN definitions do not include "fool", "enemy", "jerk", "pedant", and so forth. [http://twitter.com/Vaguery/statuses/673040272 1]''<br />
<br />
<blockquote><p>Negative relationship terms have been omitted from XFN by design. The authors think that such values would not serve a positive ends and thus made the deliberate decision to leave them out.</p></blockquote><br />
<br />
From "[http://gmpg.org/xfn/background#positive XFN Background: Positive or neutral relationships only]" - more reasons and explanation provided there.<br />
<br />
=== Are there any asymmetric XFN relationships ===<br />
''Is there such a thing as an asymmetric xfn relationship?''<br />
<br />
Most XFN relationships are not required to be symmetric and are therefore often asymmetric in real world use. The only XFN relationships that are '''effectively always symmetric''' (per the [http://gmpg.org/xfn/11 XFN 1.1 profile]) are:<br />
* [[rel-co-worker]]<br />
* [[rel-colleague]]<br />
* [[rel-co-resident]]<br />
* [[rel-date]]<br />
**in practice it has been pointed out that the broadly varying definitions of 'date' used in common discourse often lead to asymmetries of understanding between one individual and a person they have a rel-date relationship with. This could probably use more real world analysis.<br />
* [[rel-kin]]<br />
* [[rel-met]]<br />
* [[rel-neighbor]]<br />
* [[rel-sibling]]<br />
* [[rel-spouse]]<br />
* [[rel-sweetheart]]<br />
<br />
One XFN relationship is '''required symmetric''', that is, unless the relationship is asserted in both directions (e.g. with a hyperlink, see value definitions for details), the relationship cannot be asserted:<br />
* [[rel-me]]<br />
<br />
All other XFN 1.1 relationships are not required to be symmetric, nor can they necessarily or should be expected to be.<br />
<br />
=== Is there a fan or fan of relationship ===<br />
''Is there a 'fans' or 'fan of' type of XFN relationship?''<br />
<br />
See [[xfn-brainstorming#fans_and_followers|XFN Brainstorming: fans and followers]].<br />
<br />
=== If I am a fan of someone what rel should I use when linking to them ===<br />
''If I'm a fan of someone, what XFN rel value should I use when linking to them?''<br />
<br />
Right now there is no good inverse term for stating that you are a fan of someone. You can assert the inverse, that is, you can try linking to someone who you are asserting is a fan of you with rel="fan" per the [[xfn-brainstorming#fans_and_followers|fans and followers brainstorming]], but currently there is [http://twitter.com/t/statuses/746089852 no good inverse of fan] to link to people that you are a fan of.<br />
<br />
==== follow up would I identify as an acquaintance of that person ====<br />
Follow-up: ''Would I identify as an acquaintance of that person?''<br />
<br />
Not necessarily. [[rel-acquaintance]] asserts more than that, that is, that you have at least had a conversation or some sort of interaction with them. You don't necessarily have any interaction with people that you are a fan of.<br />
<br />
For now, you could use [[rel-contact]] to at least assert that you have some contact information for that person (their URL presmably) or consider that person to be a contact, but even that doesn't convey the meaning that you are a fan of theirs.<br />
<br />
== authoring and publishing help ==<br />
=== validation ===<br />
''Wondering how people intend to validate xfn… [http://twitter.com/lmjabreu/statuses/667894392 1]''<br />
<br />
* Use the [http://tools.microformatic.com/help/xhtml/rel-lint/ rel-lint] validator by [[User:DrewMcLellan|Drew McLellan]] which checks a page for standard [[rel values]] from HTML 4.01 and XFN 1.1, and shows warnings for any unrecognized values.<br />
<br />
See [[xfn-implementations#validators| XFN Implementations: validators]] for more.<br />
<br />
== other possibilities ==<br />
=== Why not use rev instead of a keyword to denote the reverse ===<br />
''Why not exploit the rev property to avoid having to use a different keyword to denote the reverse? --[[User:WizardIsHungry|Jon Williams]] 14:41, 8 Jan 2007 (PST)''<br />
<br />
* In short, <code>rev</code> should not be used. For more details see the [[rel-faq|rel FAQ]] in particular [[rel-faq#Should_.27rev.27_even_be_used|Should 'rev' even be used]].<br />
<br />
=== Can XFN links use protocols other than http ===<br />
''Can you use rel="me" for other protocols besides HTTP? such as mailto: or aim:? --[[User:BrianSuda|Brian Suda]] [http://rbach.priv.at/Microformats-IRC/2006-05-12#T033706 03:37, 2006-05-12] (PST)''<br />
<br />
* The current answer is "yes" particular because XFN only described the relationship between two things, rather than the protocol with which either thing is addressed.<br />
<br />
== development ==<br />
<br />
=== How do you do autodiscovery of XFN ===<br />
''I am interested in the autodiscovery of microformats in html especially xfn. What would that look like? [http://twitter.com/rmarkwhite/statuses/677103472 1]''<br />
<br />
* On any webpage that represents a person, parse the HTML, especially the space-separated <code>rel</code> attributes of the links (<code>a</code> and <code>link</code> elements), and look for [http://gmpg.org/xfn/11 18 XFN 1.1 values] among the [[rel values]]. Repeat for the pages that those links with XFN rel values point to. For more on how to crawl links (or a subset thereof determined by rel values) on the Web, see any number of books on how to spider and crawl the web.<br />
<br />
=== Does consolidating a paginated friends list scale ===<br />
Note: this is an ''implementation'' FAQ.<br />
<br />
''How do services that publish [[hcard-xfn-supporting-friends-lists|hCard+XFN supporting friends lists]] and use the <code>rel="me next"</code> and <code>rel="me prev"</code> [[hcard-xfn-supporting-friends-lists#Implement_hCard_XFN_supporting_friends_lists|method for consolidating paginated friends lists]] scale?''<br />
<br />
The short answer is: it is pagination that actually scales and publishing complete lists that does not.<br />
<br />
In real world practical experience, [http://twitter.com Twitter]'s live-on-the-web implementation right now has demonstrated not only that the pagination approach already scales, <strong style="text-transform:uppercase">but</strong> more importantly:<br />
<br />
"publishing all your friends on one resource" <strong style="text-transform:uppercase">does not</strong> scale.[[xfn-faq#not-scale-explanation|*]]<br />
<br />
Twitter employee Blaine said as much at the [[events/2007-08-28-social-network-portability-today|Social Network Portability Today meetup at the Satisfactory]], due primarily to database load.<br />
<br />
Note that because this is a <em>backend</em> issues, this is true regardless of the format sent to the front end client (whether HTML, random XML, or CSV). And whether you call it an "API call" or "HTTP GET request" or "page load", on the Web they are all the same thing.<br />
<br />
Note also that this isn't uncommon. Twitter isn't the only interface (whether user or programmatic) that requires clients (whether browsers or spiders) to retrieve paginated results. Most search engine APIs for example require clients to make paginated requests.<br />
<br />
<div id="not-scale-explanation"><br />
* Any such absolute statement ("does not scale") is obviously meant to summarize a measured result rather than be dogmatic in nature because obviously in the literal sense such an unqualified absolute statement can be disproven with carefully chosen examples. In this instance, it has been pointed out that there are services (namely LiveJournal) that can return hundreds of contacts in a single request without any difficulty. Problems have been noted by implementers (e.g. Twitter) when a friends list has more than about <strong>1500</strong> contacts, especially trending into the 10,000 range. With modern (as of 2007) servers and backend software stacks, returning simple datasets this size can take over a second if not cached, which is too long.<br />
</div><br />
<br />
== See Also ==<br />
{{xfn-related-pages}}<br />
adde</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=hcalendar-brainstorming&diff=25976hcalendar-brainstorming2008-02-22T17:47:33Z<p>AndyMabbett: /* RRULE handling */ comment</p>
<hr />
<div><h1> hCalendar Brainstorming </h1><br />
<br />
[[to-do]]: this page could use just a bit more clean-up and reorganization. - Tantek<br />
<br />
This page is for trying out and documenting ways of using hCalendar which may involve more details than currently in the specification.<br />
<br />
If you have a question, please check the [[hcalendar-faq|hCalendar FAQ]], and ask new questions on the [http://microformats.org/discuss/ mailing lists] first.<br />
<br />
__TOC__<br />
<br />
== Authors ==<br />
<br />
* [http://suda.co.uk/ Brian Suda]<br />
* [http://tantek.com/log/ Tantek Çelik]<br />
<br />
== hCalendar authoring best practices ==<br />
<br />
=== Tabular event calendars ===<br />
<br />
Many calendars are posted in tabular form, where the headings on the columns and rows have property values that apply to the cells which themselves are events. E.g. many conferences have multiple tracks and post names of rooms (LOCATION) as column headers, and time slots (DTSTART, DTEND) as row headers.<br />
<br />
Here is a description of how to parse such markup into an iCalendar stream. This has been implemented in X2V and deployed. <br />
<br />
'''TO DO: document a "How To" for publishers looking to mark up tabular event listings.'''<br />
<br />
To enable mark these up with [[hcalendar|hCalendar]], we must parse additional semantic attributes from HTML4.<br />
<br />
When parsing, in addition to the special case rules documented in [[hcard-parsing]]:<br />
<br />
* If the element is a table data cell <code>&lt;td&gt;</code>, then:<br />
*# parse its "headers" attribute as a space separated set of local IDs<br />
*# find the <code>&lt;td&gt;</code> and <code>&lt;th&gt;</code> elements referenced by those IDs (call them header cells) and consider them part of the element being parsed as follows:<br />
*## Treat the header cells as children of the element, ordered by the order of ids in its "headers" attribute, immediately following the last child node (text or element) or the element. (The basic idea is that the content from those header cells is used to construct the VEVENT, but secondary to (AFTER) the content in the data cell itself, so that the data cell can customize/override part of the data in the header, e.g. if the header cell included both start time and location, and the event was being held at a different location).<br />
*## Parse the "axis" attribute of a header cell as a comma-separated list of categories. These categories must be used in addition to (and before) any class names on that header cell for determining whether it is a property of the VEVENT.<br />
<br />
Real world example in the wild of a tabular event calendar marked up in this fashion: [http://we05.com/program.cfm Web Essentials 05 Session program].<br />
<br />
'''Note: We have gained sufficient experience with this that we should formalize this in both [[hcard-parsing]] and [[hcalendar-parsing]] since the table cell headers and axis attributes technique is generic to all class name microformats. The specific use case of how to author a tabular display of events should be documented in [[hcalendar-authoring]]. Tantek'''<br />
<br />
<br />
=== hCard locations ===<br />
<br />
In iCalendar (and thus hCalendar), the LOCATION property is just a text string. In practice however, much event content contains some amount of structure for the location, often a specific venue with name, address etc. Venues are often organizations and are thus conducive to being marked up as [[hcard|hCards]].<br />
<br />
Taking the example from the [[hcalendar|hCalendar]] spec:<br />
<br />
<pre><nowiki><br />
<span class="vevent"><br />
<a class="url" href="http://www.web2con.com/"><br />
<span class="summary">Web 2.0 Conference</span>: <br />
<abbr class="dtstart" title="2005-10-05">October 5</abbr>-<br />
<abbr class="dtend" title="2005-10-08">7</abbr>,<br />
at the <span class="location">Argent Hotel, San Francisco, CA</span><br />
</a><br />
</span><br />
</nowiki></pre><br />
<br />
Clearly the "Argent Hotel" is a venue, and thus could be marked up as an [[hcard|hCard]] itself:<br />
<br />
<pre><nowiki><br />
<span class="location vcard"><br />
<span class="fn org">Argent Hotel</span>, <br />
<span class="adr"><span class="locality">San Francisco</span>, <span class="region">CA</span></span><br />
</span><br />
</nowiki></pre><br />
<br />
Thus in the context of the entire vevent this example would become:<br />
<br />
<pre><nowiki><br />
<span class="vevent"><br />
<a class="url" href="http://www.web2con.com/"><br />
<span class="summary">Web 2.0 Conference</span>: <br />
<abbr class="dtstart" title="2005-10-05">October 5</abbr>-<br />
<abbr class="dtend" title="2005-10-08">7</abbr>,<br />
at the <span class="location vcard"><br />
<span class="fn org">Argent Hotel</span>, <br />
<span class="adr"><span class="locality">San Francisco</span>, <span class="region">CA</span></span><br />
</span><br />
</a><br />
</span><br />
</nowiki></pre><br />
<br />
The advantage of marking up the location with explicit [[hcard|hCard]] semantics is that it enables much better identification and pivoting of locations of events.<br />
<br />
For a real world example of this in practice see Jeremy Keith's excellent SXSW 2006 event page: http://austin.adactio.com/ where all the events contain locations marked up as hCards with [[geo]] properties as well which then aid in locating the precise locations on a map.<br />
<br />
'''Note: We have gained sufficient experience with this that we should formalize this in [[hcalendar-authoring]]. Tantek'''<br />
<br />
=== hCard attendees ===<br />
<br />
In regards to representing '''RFC2445 4.8.4.1 Attendee''' (ATTENDEE property), and '''RFC2445 4.2.16 Participation Role''' (ROLE type), using a real world example to develop a brainstorm proposal for how to use the respective [[hcalendar|hCalendar]] <code>'''attendee'''</code> property and <code>'''role'''</code> subproperty.<br />
<br />
Many online events (e.g. at http://upcoming.org/) indicate who is attending an event, and in fact, who is just "watching" as well in this case. Whereas RFC2445 says to use a "calendar address" (essentially an email address) for the "ATTENDEE" property, it has just enough hooks to make an hCard work instead (DIR for URL to the contact info etc.). Thus hCalendar attendees should be marked up with hCard so that the full semantics are conveyed.<br />
<br />
E.g. for http://upcoming.org/event/152831/<br />
<br />
for the <nowiki><span>s</nowiki> that follow the "Attending" heading on that page<br />
<br />
<pre><nowiki><br />
<span class="attendee vcard"><br />
<a class="dynavatar_link" id="user_48265" href="http://upcoming.org/user/48265/"><br />
<img id="image_cbe16d4252b4b1aab58c787379d130f552994da2" src="http://static.flickr.com/45/buddyicons/86708053%40N00.jpg" align="" valign="" height="12" width="12" border="0" class="avatar logo" style="padding: 2px;" /><br />
</a></span><br />
<span><br />
<a class="friend url nickname" rel="friend" id="user_48265" title="Attending since Feb 15, 2007 02:15 PM" href="http://upcoming.org/user/48265/"><br />
CPERIN</a><br />
</span><br /><br />
</nowiki></pre><br />
<br />
and for the <nowiki><span>s</nowiki> that follow the WATCHING heading<br />
<br />
<nowiki><br />
<span class="attendee vcard"><a class="dynavatar_link" id="user_29960" href="http://upcoming.org/user/29960/"><img id="image_2980a4eb9e608adc0341b318dfea501c5fed6621" src="http://static.flickr.com/16/buddyicons/39472722%40N00.jpg" align="" valign="" height="12" width="12" border="0" class="avatar logo" style="padding: 2px;" /></a></span><span><a class="friend url nickname" rel="friend" id="user_29960" title="Watching since Feb 15, 2007 02:26 PM" href="http://upcoming.org/user/29960/">cee-dub</a><abbr class="role" title="non-participant"></abbr></span><br /><br />
</nowiki><br />
<br />
and I *know* that the <nowiki><abbr class="role" title="non-participant"></abbr></nowiki> is not a best practice because it is hidden metadata, but it is *right next to* the anchor title text that says "Watching" so that is at least *close*.<br />
<br />
and <code>ROLE=NON-PARTICIPANT</code> is the closest semantic in iCalendar RFC2445 to "watching" - "NON-PARTICIPANT" is defined as "Indicates a participant who is copied for information purposes only" which sounds like "watching" to me. [[User:Tantek|Tantek]] 19:34, 23 Feb 2007 (PST)<br />
<br />
==== Role property overlap ====<br />
<br />
Both vCard and iCalendar contain the term ROLE. Their definitions are similar enough to consider collapsing.<br />
<br />
Therefore the following is proposed:<br />
<br />
* The [[hcard|hCard]] "role" property and the [[hcalendar|hCalendar]] "role" subproperty of the "attendee" (and any other applicable) property are considered equivalent. This is essentially an explicit declaration of the status quo and clarification in the context of the above proposal to use hCard to mark up the details of an hCalendar event attendee.<br />
* hCard consuming applications MAY ignore the following "role" property values, as such values most likely apply ''only'' to the context of an hCalendar event attendee, and probably do not indicate the role of the hCard in general. Values are shown in ALL CAPS per convention from RFC2445 but are case-insensitive per hCard/hCalendar conventions for enumerated property values.<br />
** <code>CHAIR</code><br />
** <code>'''REQ-PARTICIPANT'''</code><br />
** <code>OPT-PARTICIPANT</code><br />
** <code>NON-PARTICIPANT</code><br />
* hCalendar authors MUST OMIT the role value "REQ-PARTICIPANT" for the hCard of an attendee of an hCalendar event, because:<br />
*# It is simpler/unnecessary - "REQ-PARTICIPANT" is the default value for the hCalendar "role" subproperty, and thus any conforming hCalendar consuming application would presume that value by default anyway for all "attendee" hCards.<br />
*# It will help avoid polluting existing hCard consuming applications.<br />
* hCalendar consuming applications MUST IGNORE attendee role values that are outside the above list of four values.<br />
<br />
=== Photos and other attachments ===<br />
<br />
To associate a photo or other chunk of content/media (movie, podcast, agenda document, etc.) with an event, use the ATTACH property (defined in RFC2445 section 4.8.1.1 Attachment), e.g. (whitespace added for readabilty)<br />
<br />
<pre><nowiki><br />
<span class="vevent"><br />
<abbr class="dtstart" title="20070215T1900-0800">15 February 2007</abbr>: <br />
<span class="summary">Futurist meetup event</span> to discuss<br />
<a href="http://www.flickr.com/photos/tantek/411545406/"> <br />
<img src="http://farm1.static.flickr.com/183/411545406_c73ca4e613_t.jpg" <br />
class="attach" <br />
alt="this photo" /><br />
</a><br />
</span><br />
</nowiki></pre><br />
<br />
To explicitly indicate the content type of the image, you can instead use the object tag:<br />
<br />
<pre><nowiki><br />
<span class="vevent"><br />
<abbr class="dtstart" title="20070215T1900-0800">15 February 2007</abbr>: <br />
<span class="summary">Futurist meetup event</span> to discuss<br />
<a href="http://www.flickr.com/photos/tantek/411545406/"> <br />
<object data="http://farm1.static.flickr.com/183/411545406_c73ca4e613_t.jpg" <br />
class="attach" <br />
type="image/jpeg"><br />
this photo</object><br />
</a><br />
</span><br />
</nowiki></pre><br />
<br />
<br />
This event might be displayed as:<br />
<br />
<abbr class="dtstart" title="20070215T1900-0800">15 February 2007</abbr>: Futurist meetup event to discuss [http://www.flickr.com/photos/tantek/411545406/ http://farm1.static.flickr.com/183/411545406_c73ca4e613_t.jpg]<br />
<br />
<br />
Note: the above example with object tag should be equivalent to the following iCalendar snippet (BEGIN/END:VCALENDAR omitted):<br />
<pre><nowiki><br />
BEGIN:VEVENT<br />
DTSTART:20070215T1900-0800<br />
SUMMARY:Futurist meetup event<br />
ATTACH;FMTYPE=image/jpeg:http://farm1.static.flickr.com/183/411545406_c73ca4e613_t.jpg<br />
END:VEVENT<br />
</nowiki></pre><br />
<br />
==== Cardinality ====<br />
<br />
The ATTACH property can appear more than once. Though section 4.8.1.1, which defines ATTACH doesn't state how often ATTACH can appear, section 3.5 clearly indicates that the authors intended multiple attachments:<br />
<br />
ATTACHMENTS - - An iCalendar object can include references to Uniform<br />
Resource Locators that can be programmed resources.<br />
<br />
== iCalendar generation best practices ==<br />
<br />
Along with the four base properties, you can define addtional properties through the use of the x-prop property. For best-practices for hCal to iCal transformers, it would be helpful if the transforming application added the following x-* properties:<br />
<br />
=== X-FROM-URL ===<br />
<br />
* X-FROM-URL. The value of this property would be the URL of the page where the iCal representation was generated.<br />
<pre><nowiki><br />
X-FROM-URL:http://example.com/page-containing-hCal-encoding.html<br />
</nowiki></pre><br />
<br />
'''Note: We have gained sufficient experience with this that we should formalize this in [[hcalendar-parsing]]. Tantek'''<br />
<br />
=== X-WR-CALNAME ===<br />
<br />
* X-WR-CALNAME. iCal.app recognizes this property as the "calendar name" for subscribed calendars. Thus transforming applications *should* take the <code>&lt;title&gt;...&lt;/title&gt;</code> from the page being parsed, optionally append " events", and use that value for the X-WR-CALNAME property in the resulting feed. E.g. if the page had <code>&lt;title&gt;Example Home Page&lt;/title&gt;</code> then the .ics output should have as part of the vcalendar object:<br />
<pre><nowiki><br />
X-WR-CALNAME:Example Home Page<br />
</nowiki></pre><br />
<br />
'''Note: We have gained sufficient experience with this that we should formalize this in [[hcalendar-parsing]]. Tantek'''<br />
<br />
== iCalendar examples in hCalendar ==<br />
<br />
This is a growing example case written in iCal format and transformed to the corresponding XHTML. These conversions are open to community input. See [[hcalendar-examples]] for current work.<br />
<br />
<pre><nowiki><br />
BEGIN:VEVENT<br />
CATEGORIES:foo,bar<br />
SUMMARY: Short Title<br />
DESCRIPTION: Full Description<br />
DTSTART;VALUE=DATE:20040101<br />
DTEND:20040101T235959Z<br />
RRULE:FREQ=YEARLY;UNTIL=20080102T000000Z<br />
URL;WORK:http://example.com<br />
ATTENDEE;ROLE=CHAIR:MAILTO:JohnDoe@example.com<br />
GEO:37.386013;-122.082932<br />
END:VEVENT<br />
</nowiki></pre><br />
<pre><nowiki><br />
<p class="vevent"><br />
<!-- @@ how to deal with Whitespace issues in lists 'foo, bar' --><br />
Categories:<br />
<ul class="categories"><br />
<li>foo</li><br />
<li>bar</li><br />
</ul><br />
<a href="http://example.com" class="summary">Short Title</a><br />
<span class="description">description</span><br />
<span class="geo"><span class="Lat">37.386013</span> <span class="Lon">-122.082932</span></span><br />
<br />
<!-- This currently does not take into consideration the VALUE=DATE --><br />
<!-- The transforming application could attempt to detect the proper format and add params as needed? --><br />
Date: <em class="dtstart">20040101</em> - <em class="dtend">20040101T235959Z</em><br />
<br />
<!-- any thoughts to better encode attendee --><br />
<!-- the ROLE must be of a known type, but one of type is x-name (user-specified) --><br />
<!-- therefore there is no solid way to know "chair" refers to a ROLE parameter --><br />
<a class="attendee chair" href="mailto:JohnDoe@example.com">John Doe</a><br />
<br />
<!-- this messy, but works. Is there a better way? --><br />
<p class="rrule">The event will be held <span class="freq">yearly</span> until <span class=""until">20080102T000000Z</span>.</p><br />
<br />
</p><br />
</nowiki></pre><br />
<br />
@@-need to look at nested tag examples<br />
<pre><nowiki><br />
XHTML<br />
<span class="description"><span class="summary">Short Title</span> to a longer article</span><br />
<br />
vCal<br />
SUMMARY:Short Title<br />
DESCRIPTION:Short Title to a longer article<br />
</nowiki></pre><br />
<br />
<br />
=== Examples from RFC 2445 ===<br />
<br />
* These examples are now all available on [[hcalendar-examples]].<br />
<br />
With the abbr's title attribute being used rather than the node value, the actual data could vary and still represent the same vcalendar.<br />
<br />
<pre><nowiki><br />
BEGIN:VCALENDAR<br />
VERSION:2.0<br />
PRODID:-//hacksw/handcal//NONSGML v1.0//EN<br />
BEGIN:VEVENT<br />
DTSTART:19970714T170000Z<br />
DTEND:19970715T035959Z<br />
SUMMARY:Bastille Day Party<br />
END:VEVENT<br />
END:VCALENDAR<br />
</nowiki></pre><br />
<br />
<pre><nowiki><br />
<span class="vcalendar"><br />
<span class="vevent"><br />
<abbr class="dtstart" title="19970714T170000Z">July 14th</abbr><br />
<abbr class="dtend" title="19970715T035959Z"></abbr><br />
<span class="summary">Bastille Day Party</span><br />
</span><br />
</span><br />
</nowiki></pre><br />
<br />
==== UID handling ====<br />
<br />
The UID in iCal is represented in HTML as the id attribute in these examples. Any valid id in HTML is a valid UID in iCal, but not the contrapositive, a valid UID is NOT a valid HTML id. HTML ids can only start with a letter, not a number.<br />
<br />
<pre><nowiki><br />
BEGIN:VEVENT<br />
UID:19970901T130000Z-123401@host.com<br />
DTSTAMP:19970901T1300Z<br />
DTSTART:19970903T163000Z<br />
DTEND:19970903T190000Z<br />
SUMMARY:Annual Employee Review<br />
CLASS:PRIVATE<br />
CATEGORIES:BUSINESS,HUMAN RESOURCES<br />
END:VEVENT<br />
</nowiki></pre><br />
<br />
<pre><nowiki><br />
<span class="vcalendar"><br />
<span class="vevent" id="19970901T130000Z-123402@host.com"><br />
<abbr class="dtstamp" title="19970901T1300Z"></abbr><br />
<abbr class="dtstart" title="19970903T163000Z">September 3rd, 4:30pm</abbr>-<br />
<abbr class="dtend" title="19970903T190000Z">7:00pm</abbr><br />
<span class="summary">Annual Employee Review</span><br />
<span class="class">private</span><br />
<ul class="categories"><br />
<li>BUSINESS</li><br />
<li>HUMAN RESOURCES</li><br />
</ul><br />
</span><br />
</span><br />
</nowiki></pre><br />
<br />
<pre><nowiki><br />
BEGIN:VCALENDAR<br />
BEGIN:VEVENT<br />
UID:19970901T130000Z-123402@host.com<br />
DTSTAMP:19970901T1300Z<br />
DTSTART:19970401T163000Z<br />
DTEND:19970402T010000Z<br />
SUMMARY:Laurel is in sensitivity awareness class.<br />
CLASS:PUBLIC<br />
CATEGORIES:BUSINESS,HUMAN RESOURCES<br />
TRANSP:TRANSPARENT<br />
END:VEVENT<br />
END:VCALENDAR<br />
</nowiki></pre><br />
<pre><nowiki><br />
<span class="vcalendar"><br />
<span class="vevent" id="19970901T130000Z-123402@host.com"><br />
<abbr class="dtstamp" title="19970901T1300Z"></abbr><br />
<abbr class="dtstart" title="19970401T163000Z">April 1st 4:30pm</abbr>-<br />
<abbr class="dtend" title="19970402T010000Z">1:00am</abbr><br />
<span class="summary">Laurel is in sensitivity awareness class.</span><br />
<span class="class">PUBLIC</span><br />
<ul class="categories"><br />
<li>BUSINESS</li><br />
<li>HUMAN RESOURCES</li><br />
</ul><br />
<span class="transp">Transparent</span><br />
</span><br />
</span><br />
</nowiki></pre><br />
<br />
==== RRULE handling ====<br />
<br />
The way RRULE is encoded should be discussed.<br />
<br />
<pre><nowiki><br />
BEGIN:VEVENT<br />
UID:19970901T130000Z-123403@host.com<br />
DTSTAMP:19970901T1300Z<br />
DTSTART:19971102<br />
SUMMARY:Our Blissful Anniversary<br />
CLASS:CONFIDENTIAL<br />
CATEGORIES:ANNIVERSARY,PERSONAL,SPECIAL OCCASION<br />
RRULE:FREQ=YEARLY<br />
END:VEVENT<br />
</nowiki></pre><br />
<pre><nowiki><br />
<span class="vcalendar"><br />
<span class="vevent" id="19970901T130000Z-123403@host.com"><br />
<abbr class="dtstart" title="19970901T1300Z"></abbr><br />
<abbr class="dtend" title="19971102">November 2nd</abbr><br />
<span class="summary">Our Blissful Anniversary</span><br />
<span class="class">CONFIDENTIAL</span><br />
<ul class="categories"><br />
<li>ANNIVERSARY</li><br />
<li>PERSONAL</li><br />
<li>SPECIAL OCCASION</li><br />
</ul><br />
<span class="rrule"><span class="freq">YEARLY</span></span><br />
</span><br />
</span><br />
</nowiki></pre><br />
<br />
<br />
Is this how re-occuring weekly events (basically, my class teaching list) should be done? Note the use of DTEND and DTSTART to mark ending and starting times for the semester. Using markup from Harry Halpin's homepage http://www.ibiblio.org/hhalpin.<br />
<br />
<pre><nowiki><br />
<span class="vevent"><br />
<div class="rrule"><a<br />
href="http://www.inf.ed.ac.uk/teaching/courses/2007/lsi.html">Language<br />
Semantics and Implementation</a> meet at DHT<br />
7.18 <abbr<br />
class="freq"<br />
title="weekly">every</abbr> <abbr class="BYDAY"<br />
title="FR">F</abbr>ridays <abbr class="dtstart"<br />
title="1206Z1000">10:00</abbr>-<abbr class="dtstart"<br />
title="0409Z1100">11:00</abbr></div><br />
</span><br />
<br />
</nowiki></pre><br />
<br />
:No, because "every" is not an abbreviation of "weekly"; that's an abuse of <code>abbr</code>. If "byday" is not case-sensitive, you could mark up the first two letters of "Friday" with a span (but what if the page was in French or Chinese?). You also have 2x <code>dtstart</code>. [[User:AndyMabbett|Andy Mabbett]] 09:47, 22 Feb 2008 (PST)<br />
<br />
== Examples from real world event sites ==<br />
<br />
=== W3C Meetings ===<br />
<br />
I just got email announcing the dates of another W3C meeting. I don't think it's marked up with hCalendar. I could mark it up myself, like I did for [http://www.w3.org/2005/12/allgroupoverview.html the TP day/week schedule], but it might not stick. Somehow I got [http://www.w3.org/2000/08/w3c-synd/ our syndicated news markup] (precursor to [[hAtom]]) to stick, i.e. to become part of the norm in the W3C comm team. I wonder if I could pull that off for calendars.<br />
<br />
My first thought is authoring tools, but I don't think I can wait that long.<br />
Next thought is instant-feedback checking tools...<br />
X2V is really handy, but can't be used for confidential pages (and many/most calendars I use are not public).<br />
So.. how about some in-browser javascript "yes, you got it right!" or "hmm... that looks like a date; is there an event you didn't mark up?" feedback? I think I saw something like that in hCalendar implementations.<br />
<br />
[[User:DanC|DanC]] 09:00, 3 Feb 2006 (PST)<br />
<br />
=== Laughing Squid ===<br />
<br />
Laughing Squid had the following [http://laughingsquid.com/squidlist/calendar/9584/2005/4/7 multiple occurence event example]:<br />
<br />
Thu, Apr 7 : Tu/Wed: 12-4pm Th/Fr/Sat 12-7pm Sun 12-6pm <br />
<br />
In addition, later on in the description, it says:<br />
<br />
April 7-21, 2005<br />
<br />
This is actually quite a non-trivial example, because the event lasts for different durations on different days (4 hours, 7 hours, 6 hours).<br />
<br />
Because of the differing durations, the specification requires that *each* instance of this recurring event be explicitly specified. <br />
<br />
But first we markup the starting date and time explicitly:<br />
<pre><br />
<abbr class="dtstart" title="20050407T1200-0700">Thu, Apr 7</abbr> : <br />
</pre><br />
Then we put in the quite lengthy explicit specification of every other time the event occurs, marked up around the human readable description.<br />
<pre><br />
<abbr class="rdate" title="20050407T1200-0700/PT7H, 20050408T1200-0700/PT7H, <br />
20050409T1200-0700/PT7H, 20050410T1200-0700/PT6H, 20050412T1200-0700/PT4H, <br />
20050413T1200-0700/PT4H, 200504014T1200-0700/PT7H, 20050415T1200-0700/PT7H, <br />
20050416T1200-0700/PT7H, 20050417T1200-0700/PT6H, 20050419T1200-0700/PT4H, <br />
20050420T1200-0700/PT4H, 20050421T1200-0700/PT7H" ><br />
Tu/Wed: 12-4pm Th/Fr/Sat 12-7pm Sun 12-6pm<br />
</abbr><br />
</pre><br />
<br />
The RDATE "PERIOD" format is fairly straightforward. You simply list *each* occurrence of the event, separated by commas. Each occurrence consists of the ISO8601 datetime of the start of the event, followed by a slash "/", followed by *either* the duration of the event (e.g. 7 hours = PT7H), *or* a complete ISO8601 datetime of the end of the event. I chose to use the duration of the event for this example for reason of brevity.<br />
<br />
Note that "value=period:" is unnecessary in the rdate value since the parser can infer "value=period:" from the presence of a "/" in the title attribute value.<br />
<br />
With simpler repeating events, or perhaps events which only repeat a day or two, their hCalendar markup may be more illustrative of how to do this in a general way.<br />
<br />
== CSS Styles ==<br />
<br />
Since the hCal properties are added in as HTML class names, you can style them with CSS class selectors along with other HTML class names. You are free to style these properties in any fashion you want (see specific notes), but here are a few examples that you can use.<br />
<br />
=== Preserving White-space ===<br />
If you are encoding data that requires tabs, returns, or other white-space to be perserved you can use the following CSS property to do so in HTML.<br />
<pre><nowiki><br />
<span style="white-space: pre"><br />
This white-space<br />
will be<br />
preserved<br />
</span><br />
</nowiki></pre><br />
white-space can take one of three different parameters; normal, pre, and no-wrap.<br />
<br />
=== Not recommended ===<br />
<br />
The following CSS styling techniques are not recommended:<br />
<br />
==== Hiding Data ====<br />
It is possible to encode additional data without it being displayed in the HTML, by using the CSS style property 'display'.<br />
<pre><nowiki><br />
<span style="display:none">Hidden Data</span><br />
</nowiki></pre><br />
This data will be found by any transforming application and will be properly encoded into an iCal file.<br />
<br />
'''You SHOULD NOT do this because it violates the visibility priniciple.'''<br />
<br />
== hCalendar for timelines ==<br />
<br />
<br />
There have been some interesting discussions about how to use [[hcalendar|hCalendar]] for marking up timelines. Here are some pointers:<br />
<br />
* [http://www.foundhistory.org/2006/05/05/calendars-as-timelines/ Calendars as Timelines]<br />
* [http://heml.org/heml-cocoon/ The Historical Event Markup and Linking (HEML) Project]<br />
* [http://v1.clioweb.org/archive/2006/05/04/css-based-timelines/ CSS-Based Timelines]<br />
<br />
See also [[history-microformat]].<br />
<br />
== Other use cases ==<br />
Please add your suggestions!<br />
<br />
hCalendar microformats could be used to:<br />
<br />
*Sequence waypoints for a GPS "track" - see [[geo-waypoint-examples]] for details<br />
*Mark up "last updated" dates on web pages (does anyone have examples of this being done already?).<br />
*Date-time stamp photographs, such as those on Flickr and Wikimedia Commons.<br />
*...<br />
<br />
== Open Questions ==<br />
=== Undecided Encodings of Certain Property Attributes ===<br />
There are several attributes that still need to be discussed about how to property encode them into HTML.<br />
<br />
For example the RSVP and ROLE attrbutes:<br />
ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT:MAILTO:jsmith@host.com<br />
or<br />
ATTENDEE:CUTYPE=GROUP:MAILTO:john@host.com<br />
<br />
Other attributes include:<br />
* Delegate-To<br />
* Delegate-from<br />
* Sent-By<br />
* Member<br />
* Partstat<br />
* CN<br />
* DIR<br />
<br />
Then all the enumerated possible values for each of these<br />
<br />
=== General Questions ===<br />
Q: Should Transforming applications purely extract the information and ignore validity? or should there be some checking, or should this be left to the importing application? (i.e. DTSTART;VALUE=DATE: This-Is-Not-a-proper-date)<br />
<br />
A: The simpler the better. Other than checking for perhaps X(HT)ML validity, it should be a simple translator, because presumably the receiving iCalendar application has to have malformed .ics handling already. Let's avoid duplicating that. -- [http://tantek.com/ Tantek Çelik]<br />
<br />
Q: What about multiple of the instances same vCal entity? (two instances of DTSTART) Is this left up to the importing application, or should the XSLT transformation fail?<br />
<br />
A: Same as previous. Leave it up to the importing application to interpret it per the iCalendar spec, e.g. what does RFC2445 say about two instances of DTSTART? -- [http://tantek.com/ Tantek Çelik]<br />
<br />
From RFC2445:<br />
4.1.2 Multiple Values<br />
Some properties defined in the iCalendar object can have multiple values. The general rule for encoding multi-valued items is to simply create a new content line for each value, including the property name. However, it should be noted that some properties support encoding multiple values in a single property by separating the values with a COMMA character (US-ASCII decimal 44). Individual property definitions should be consulted for determining whether a specific property allows multiple values and in which of these two forms.<br />
<br />
Other than that, it does not mention what to do ABOUT invalid data, or which of the multiple entries takes precedence. The only mention of duplicate instances is in the RRULE and EXDATE rules where events exclusions/inclusions overlap. Then duplicate instances are ignore. If it is explicitly written for those items, but NOT for things like DTSTART, then it is difficult to assume duplicate instances are ignored for them as well.<br />
<br />
Each of the Components (VEVENT, ...) define which properties can exisit and in what quantity. So multiple DTSTART properties are NOT allowed.<br />
-- [http://suda.co.uk Brian Suda]<br />
<br />
Q: Should vCal entitles be represented in XHTML in classes ONLY on block-level element? or should some like VEVENT be block-level and others be of any? does this impact the semantics at all?<br />
<br />
A: I don't think the (X)HTML notion of "block-level" should have any bearing whatsoever on vCal entities. You should be able to say <nowiki><span class="vevent"></nowiki> or <nowiki><div class="vevent"></nowiki> and either should work.<br />
<br />
Q: Should the transforming application add any additional information to the iCalendar representation other than what was encoded in the HTML? (i.e. UID, the unique identifier might not be present in the HTML code, but could be generated by the transforming application and added to the iCal file. Should this be allowed? or should the transforming app ONLY be allowed to add X-PROPERTY properties?) IF it was not explicitly encoded in the HTML should it be left out? What about default values?<br />
<br />
Q: If we are looking at the most semantic way to encoding iCalendar data in HTML then several other attributes should be considered besides just 'class'. There are two other candidated, ID and REL. The ID tag MUST be unique within the XHTML file (this could be used for the UID property). The REL attribute can ONLY be applied to 'a' and 'link' tags, but might be helpful. Are namespac<ETH>H �n option? xml:lang, xml:base, are there any others that might be more semantically correct to encode this data?<br />
<br />
Q: To help distinguish xparam values from other actual CSS styles, should we assume/mandate that all values in a class attribute within an encoded iCal component class attribute (<x class="vevent|vtodo|...">) be considered an xparam?<br />
<br />
A: If you are using other CSS styles (e.g. "center", "bluebox", "greenline", etc.) nested within an iCal component, those should be avoided and the styles applied to the list of iCal properties instead/also?<br />
<br />
<pre><nowiki><br />
.center, .vevent { text-align: center; }<br />
</nowiki></pre><br />
<br />
Q: What about cases where the words "yesterday", "last year", or "last week" was used? How should we represent this? Is this overkill or not appropriate for hcard ? - [[User:B.K._DeLong]]<br />
<br />
A: I took a stab at "yesterday" and just added a dtstart of the previous day. Not sure how to represent a single year or whole week - [[User:B.K._DeLong]]<br />
<br />
<pre><nowiki><br />
<abbr class="dtstart" title="20050114">Yesterday's</abbr><br />
</nowiki></pre><br />
<br />
Q: How do you show an event within an event? ie, how do you show groupings of events, e.g a series of workshops at a conference, where there are parent-child relationships, so that parsers can detect the structure and display/offer different options accordingly?<br />
<br />
A: Currently there is no semantic to express "groupings" of events hierarchically, e.g. parent-child relationships. What you can do is "tag" such related events with the same "category" (using [[rel-tag]]) so that consuming applications can aggregate them together.<br />
<br />
Q: Could events eventually be nested? What problems could this cause? e.g <br />
<br />
<pre><nowiki><br />
<div class="vevent"><br />
<br />
<h1 class="summary">Conference<h1><br />
<abbr class="dtstart" title="2007-08-25t09:00">25 August 2007, 9am</abbr><br />
<br />
<div class="vevent"><br />
<h2 class="summary">Workshop 1</h2><br />
<abbr class="dtstart" title="2007-08-25t09:30">9.30am</abbr><br />
<abbr class="dtend" title="2007-08-25t10:30">10.30am</abbr><br />
</div><br />
<br />
<div class="vevent"><br />
<h2 class="summary">Workshop 2</h2><br />
<abbr class="dtstart" title="2007-08-25t10:30">10.30am</abbr> - <br />
<abbr class="dtend" title="2007-08-25t11:30">11.30am</abbr><br />
</div><br />
<br />
</div><br />
</nowiki></pre><br />
--[[User:GeoffB|GeoffB]] 21:57, 24 Aug 2007 (PDT)<br />
<br />
=== Recurring Events ===<br />
<br />
Recurring events are tricky. First, there's the question of whether to follow ''For types with multiple components, use nested elements with class names equivalent to the names of the components'' a la<br />
<pre><br />
<nowiki><div class="rrule">every <em class="interval">1</em><br />
<em class="freq">WEEKLY</em> on <em class="byday">TU</em><br />
until <em class="until">2004-11-01</em></div></nowiki><br />
</pre><br />
... or ...<br />
<pre><br />
<nowiki><abbr class="rrule" title="FREQ=WEEKLY;COUNT=17;INTERVAL=2;BYDAY=TH"> every other<br />
Thursday for 34 weeks</abbr></nowiki><br />
</pre><br />
... as in [http://microformats.org/discuss/mail/microformats-discuss/2005-August/000516.html Tantek's 1 Aug msg].<br />
<br />
[http://www.w3.org/People/Connolly/ DanC] has been experimenting with representing his PDA calendar in hCalendar:<br />
<br />
* in [http://dev.w3.org/cvsweb/2001/palmagent/ palmagent], there's dangerSync.py which uses the XMLRPC interface and spits out RDF data. Then asHCal.xsl converts that to hCalendar<br />
* then in [http://www.w3.org/2002/12/cal/ the RDF Calendar workspace], there's [http://www.w3.org/2002/12/cal/glean-hcal.xsl glean-hcal.xsl] that turns hCalendar into RDF Calendar, and finally,<br />
* in [http://www.w3.org/2000/10/swap/ SWAP] there's [http://www.w3.org/2000/10/swap/pim/toIcal.py toIcal.py] that turns RDF Calendar to .ics format.<br />
<br />
So I can go from my sidekick to .ics with one Makefile.<br />
<br />
[http://dev.w3.org/cvsweb/2001/palmagent/event-test.html events-test.html] is a test file that has all the constructs from my PDA data, in hCalendar. In particular, it uses the nested element representation of recurring events. glean-hcal.xsl would be much less fun to write if it had to parse <nowiki>title="FREQ=WEEKLY;COUNT=17;INTERVAL=2;BYDAY=TH"</nowiki>.<br />
<br />
Then there's the question of "every tuesday afternoon at 2pm Chicago time". This isn't expressible using [[datetime-design-pattern]]. There are some good reasons for that, but it leaves a rather large and uncomfortable gap in hCalendar.<br />
<br />
=== Encoding Questions ===<br />
The way dates are encoded is not always the most user friendly. If i want to encode january 1st, 2005, that is <code><span class="dtstart">20050101</span></code>, which is displayed as 20050101. If we are marking-up comma seperated values, like FN, with each sub-element inside their own tag, then the date should be allowed the same.<br />
<br />
(However, FN is in the RFC2426 spec and vCard schema, these individual date terms are not, therefore the reasoning in the last sentence is incorrect. -[http://tantek.com/log/ Tantek])<br />
<br />
<pre><nowiki><br />
20050101<br />
<span class="dtstart"><span class="Year">2005</span><span class="Month">01</span><span class="Day">01</span></span><br />
</nowiki></pre><br />
With this encoding, then YYYYMMDD schema can be rearranged for different cultures, DD-MM-YYYY for UK, MM-DD-YYYY for US, etc.<br />
<pre><nowiki><br />
02-01-2005<br />
<span class="dtstart"><span class="Month">02</span>-<span class="Day">01</span>-<span class="Year">2005</span></span><br />
01-02-2005<br />
<span class="dtstart"><span class="Day" title="first">01</span>-<span class="Month" title="Feb">02</span>-<span class="Year">2005</span></span><br />
</nowiki></pre><br />
Both of the above encodings are equal, the '-' seperator is ignored by the transforming application. -- [http://suda.co.uk Brian Suda]<br />
<br />
Agreed that the way dates are encoded is not always the most user friendly, but there is an easier solution to this, once you think of what is actually going on in the difference between ISO8601 dates, and dates the way humans use them. Humans typically use an abbrevation or shorthand for a date, like "tomorrow", or "Tuesday", or "the 4th", or perhaps "July 4th". Thus it makes sense to permit this in hCalendar, using the <code>&lt;abbr&gt;</code> tag which provides the ability to markup the human-familiar short form of some data or language, while preserving the long form in the 'title' attribute.<br />
<br />
E.g. for the above example of a start date of January 1st, 2005, you could use this markup:<br />
<br />
<pre><nowiki><br />
<abbr class="dtstart" title="20050101">January 1st, 2005</abbr><br />
</nowiki></pre><br />
<br />
Which would display as <code>January 1st, 2005</code> but would provide the respective ISO8601 date in the title attribute. - [http://tantek.com/log Tantek]<br />
<br />
== TO DO ==<br />
=== XMDP Profile ===<br />
* hCalendar XMDP profile ([[hcalendar-profile]]) needs to be created.<br />
<br />
=== Applications ===<br />
A simple implementation of transforming/extracting vCal data from an XHTML file is available for testing. A bookmarklet is also available. The code will be updated as the spec is finalised.<br />
http://suda.co.uk/projects/X2V/ . You may also use http://feeds.technorati.com/events/ for parsing hCalendar events and returning an iCalendar stream.<br />
<br />
<br />
=== Parsing ===<br />
<br />
Need to write up an [[hcalendar-parsing]] document, similar to [[hcard-parsing]].<br />
<br />
== Relationships with other microformats ==<br />
<br />
In a [http://www.technologyreview.com/articles/04/10/frauenfelder1004.asp Technology Review interview], TBL said "It would have the relationships between the event and the various people chairing it.".<br />
<br />
We should have examples of how hCalendar events can indicate such relationships, both in the format and in the presentation.<br />
<br />
E.g.:<br />
* Would it just link to URLs for the various people? (e.g. to their homepages/blogs etc.)<br />
* Would it include hCards for the various people? <br />
* Would it link to hCards for various people?<br />
* Perhaps allow all the above?<br />
<br />
== Mime-Type ==<br />
<br />
According to RFC2445, the proposed media type value is 'text/calendar'.<br />
<br />
A standard vCalendar file has an extension of .vcs and MIME type of text/x-vCalendar. If you use iCalendar, the MIME type is "text/Calendar" and the extension is .ics.<br />
<br />
Text/X-vCalendar Content Type<br />
<br />
The vCalendar object can also be passed as a non-standard MIME media type. This would be useful in order to clearly identify the vCalendar object in an electronic mail message body part. A non-standard, vCalendar object should be identified as the MIME type/subtype "text/x-vCalendar".<br />
<br />
@@ - i have to do some more investigation, but (i think) vCalendar is a subset of iCalendar, so many of the same encodings will work for both, but this document is dealing with iCalendar RFC2445 representation!<br />
<br />
== Button ==<br />
<br />
We need to come up with a nice <code>[ hCal | friendly ]</code> button to indicate that event info on a page/site is using hCalendar. - [http://tantek.com/log/ Tantek].<br />
<br />
Possibilities:<br />
* <code>[ hCal | friendly ]</code><br />
* <code>[ hCal | aware ]</code><br />
* <code>[ hCal | inside ]</code><br />
* <code>[ Valid | hCalendar ]</code> - though that would require writing an hCalendar validator which people could link to.<br />
* <code>[ <icon> | hCalendar ]</code> where <icon> could be some generic calendar looking thing, or it could be a PHP generated image with the actual date in the icon, kind of like how the Apple iCal icon updates in the dock automatically.<br />
<br />
And then we have to pick colors and all that stuff - [http://tantek.com/log/ Tantek].<br />
<br />
Other ideas:<br />
* <code>[ hCal | enabled ]</code><br />
* <code>[ hCal | available ]</code> - kind of an off-hand reference to being available for meetings, etc.<br />
<br />
- [http://meyerweb.com/ Eric]<br />
<br />
== Including More of iCalendar ==<br />
<br />
=== Free/Busy information ===<br />
<br />
See [http://www.ifreebusy.com/cyclical/blog/ Neil Jensen]'s [http://www.ifreebusy.com/cyclical/blog/calendar/3 analysis of how to represent the iCalendar VFREEBUSY object in hCalendar].<br />
<br />
In order to show free/busy information, we could either use the existing vevent class (with empty location, summary, etc. properties) or create a new vfreebusy class. We should create a new vfreebusy class because it is consistent with the XHTML design principles, particularly point #4, "Use class names based on names from the original schema...". <br />
<br />
In the iCalendar standard, the vfreebusy calendar component frequently has more than one freebusy property, and also may have a number of other properties such as organizer. For example:<br />
<br />
<pre><nowiki><br />
BEGIN:VFREEBUSY <br />
ORGANIZER:jsmith@host.com <br />
DTSTART:19980313T141711Z <br />
DTEND:19980410T141711Z <br />
FREEBUSY:19980314T233000Z/19980315T003000Z <br />
FREEBUSY:19980316T153000Z/19980316T163000Z <br />
FREEBUSY:19980318T030000Z/19980318T040000Z <br />
URL:http://www.host.com/calendar/busytime/jsmith.ifb <br />
END:VFREEBUSY<br />
</nowiki></pre><br />
<br />
So, our hCalendar representation should include separate elements for the vfreebusy calendar component (defined once) and the freebusy property (possibly defined many times):<br />
<br />
<pre><nowiki><br />
<span class="vfreebusy"> <br />
<span class="freebusy"> <br />
<abbr class="dtstart" title="20050721T1000-0800"> <br />
July 21, 2005 - 10:00 <br />
</abbr> - <br />
<abbr class="dtend" title="20050721T1100-0800"> <br />
11:00 <br />
</abbr> <br />
</span><br/> <br />
<span class="freebusy"> <br />
<abbr class="dtstart" title="20050722T1000-0800"> <br />
July 22, 2005 - 10:00 <br />
</abbr> - <br />
<abbr class="dtend" title="20050722T1100-0800"> <br />
11:00 <br />
</abbr> <br />
</span><br/> <br />
</span><br />
</nowiki></pre><br />
<br />
According to RFC2445 section 4.8.4.3, "When publishing a "VFREEBUSY" calendar component, the <nowiki>[ORGANIZER]</nowiki> property is used to specify the calendar that the published busy time came from." The organizer property type is CAL-ADDRESS, and can include "non-standard, language, common name and directory entry reference" property parameters. CAL-ADDRESS is "...a URI as defined by [RFC 1738] or any other IANA registered form...".<br />
<br />
From what I've seen, Microsoft Outlook typically populates this property with the email address of the calendar owner, which initially made me think of using hCard to specify the organizer. However, given that the property refers to the calendar and not necessarily the person who owns or has published it, I think we should use a new organizer element, as shown below: <br />
<br />
<pre><nowiki><br />
BEGIN:VFREEBUSY <br />
ORGANIZER:jsmith@host.com <br />
FREEBUSY:20050314T133000Z/20050314T163000Z <br />
END:VFREEBUSY<br />
</nowiki></pre><br />
<br />
becomes<br />
<br />
<pre><nowiki><br />
<span class="vfreebusy"> <br />
organizer: <span class="organizer">jsmith@host.com</span> <br />
<span class="freebusy"> <br />
<abbr class="dtstart" title="20050314T133000Z"> <br />
March 14, 2005 - 13:30 <br />
</abbr> - <br />
<abbr class="dtend" title="20050314T163000Z"> <br />
16:30 <br />
</abbr> <br />
</span><br/> <br />
</span> <br />
</nowiki></pre><br />
<br />
Hmmm, this looks a little funny when the organizer is so obviously an email address, but at least it is semantically correct. The other problem that I can now see occurring is when the organizer property has parameters, for example (from the iCalendar spec):<br />
<br />
<pre><nowiki><br />
ORGANIZER;CN=JohnSmith;DIR="ldap://host.com:6666/o=3DDC%20Associ <br />
ates,c=3DUS??(cn=3DJohn%20Smith)":MAILTO:jsmith@host1.com<br />
</nowiki></pre><br />
<br />
Perhaps it's best to use the same approach described in "Human vs. ISO8601 dates problem solved"; use the abbr element like so:<br />
<br />
<pre><nowiki><br />
<span class="vfreebusy"> <br />
<span class="freebusy"> <br />
organizer: <abbr class="organizer" title="CN=JohnSmith;DIR=ldap://host.com:6666/o=3DDC%20Associ <br />
ates,c=3DUS??(cn=3DJohn%20Smith):MAILTO:jsmith@host1.com">jsmith@host1.com</abbr> <br />
<abbr class="dtstart" title="20050314T133000Z"> <br />
March 14, 2005 - 13:30 <br />
</abbr> - <br />
<abbr class="dtend" title="20050314T163000Z"> <br />
16:30 <br />
</abbr> <br />
</span> <br />
</span><br />
</nowiki></pre><br />
<br />
A different reading, particularly of section 4.6.4 "Free/Busy Component", is that the organizer property refers to a calendar user, not the calendar itself. In that section we find this: "When used to publish busy time, the "ORGANIZER" property specifies the calendar user associated with the published busy time".<br />
<br />
Under this reading, an hCard might be appropriate. But if for some reason a simpler representation is wanted, using an &lt;a&gt; tag instead of &lt;span&gt; or &lt;abbr&gt; is closer semantically, more consistent with expected web presentation of uri-type data, and easily handles the ORGANIZER examples in the RFC. For example:<br />
<br />
<pre><nowiki><br />
ORGANIZER;CN="John Smith":MAILTO:jsmith@host.com<br />
</nowiki></pre><br />
becomes<br />
<pre><nowiki><br />
<a class="organizer" href="mailto:jsmith@host.com">John Smith</a><br />
</nowiki></pre><br />
and<br />
<pre><nowiki><br />
ORGANIZER;CN=JohnSmith;DIR="ldap://host.com:6666/o=3DDC%20Associ <br />
ates,c=3DUS??(cn=3DJohn%20Smith)":MAILTO:jsmith@host1.com<br />
</nowiki></pre><br />
becomes<br />
<pre><nowiki><br />
<a class="organizer" href="mailto:jsmith@host.com" <br />
title="DIR=ldap://host.com:6666/o=3DDC%20Associates,c=3DUS??(cn=3DJohn%20Smith)">John Smith</a><br />
</nowiki></pre><br />
<br />
=== To-Do information ===<br />
<br />
The [http://www.policyawareweb.org/2005/ftf2/paw-mtg Policy Aware Web (PAW) Project Meeting - 23 Aug 2005] uses class="vtodo" to capture action items. Clearly recording action items from a meeting and publishing them as minutes is a good practical example use of the VTODO object on the web. <br />
<br />
What's the scenario for usage though?<br />
<br />
What kind of indexer/aggregator application would find these VTODO items and what would it do with them? <br />
<br />
Perhaps with some way of figuring out who the to-do item is assigned to ("ATTENDEE"), who assigned it ("DELEGATED-FROM"), and a whitelisting of who, perhaps the "ORGANIZER" property, (and their domains/URLs) that a user would accept assignments from, a user could aggregate to-do items assigned from other folks. Then question remains how to update the status ("STATUS") (RFC 2445 4.8.1.11 Status) on that to-do item when it is (a) completed ("COMPLETED"), (b) abandoned/cut/rejected ("CANCELLED"), (c) some progress is made ("IN-PROCESS") etc. There certainly seems to be sufficient expressiveness in VTODO and its properties to do a decentralized to-do list / task distribution system. Could be very interesting for helping open source projects and other distributed teams do project management using the Web.<br />
<br />
== References ==<br />
=== Normative References ===<br />
* [http://www.ietf.org/rfc/rfc2445.txt RFC 2445]<br />
* [http://gmpg.org/xmdp/ XMDP]<br />
<br />
=== Informative References ===<br />
* [http://wiki.oreillynet.com/foocamp04/index.cgi?HTMLForCalendars HTMLForCalendars (FOO camp)] - presented just a few days before this, hopefully these efforts can be combine<br />
<br />
* [http://www.imc.org/pdi/ Personal Data Interchange (PDI) at the Internet Mail Consortium]<br />
* [http://tantek.com/log/2004/07.html#d27t1049 Markup language design notes]<br />
* [http://tantek.com/log/2002/12.html#L20021216t2238 A Touch of Class]<br />
* [http://www.ietf.org/rfc/rfc2446.txt iTIP RFC2446]<br />
* [http://www.ietf.org/rfc/rfc2447.txt iMIP RFC2447]<br />
* [http://www.ietf.org/rfc/rfc3283.txt Guide to Internet Calendaring RFC3283]<br />
<br />
== Other Implementations/Ideas ==<br />
* [http://www.nehmer.net/~bergie/openpsa-calendar-horizontal.jpg OpenPSA calendar screenshot]<br />
* [http://www.w3.org/2002/12/cal/ RDF Calendar Workspace] - some older work done with RDF, not really applicable to the simple XHTML case, but perhaps worthy of analysis for when and why they may have diverged from established iCalendar schemas.<br />
* [http://planb.nicecupoftea.org/archives/000072.html 2003 RDF icalendar work, xCal references]<br />
* [http://tools.ietf.org/html/draft-norris-ical-venue-00 vVenue (proposal to add vCard-adr like properties to iCalendar)]<br />
<br />
== Blogs About Calendaring ==<br />
* http://staff.washington.edu/oren/weblog2/<br />
<br />
==Simplification of date-end==<br />
<br />
If ever there is an "hCalendar 2" standard, thought should be given to changing the way dtend is handled, where no hour is specified. Currently, we use:<br />
<br />
:<code><nowiki><abbr class="dtend" title="2007-02-01">31 January 2007</abbr></nowiki></code><br />
<br />
which is counter-intuitive for publishers (as past evidence on [[hcalendar-examples-in-wild|examples in the wild]] and elsewhere [http://rbach.priv.at/Microformats-IRC/2007-03-29#T183612] has shown). In the interests of ''ease of authoring'', we should consider, perhaps with a new property name for clarity, using:<br />
<br />
:<code><nowiki><abbr class="enddate" title="2007-01-31">31 January 2007</abbr></nowiki></code><br />
<br />
and making ''parsers'' responsible for converting to "2007-02-01" when exporting as a vCard. [[User:AndyMabbett|Andy Mabbett]] 05:28, 29 Mar 2007 (PDT)<br />
<br />
== Related Pages ==<br />
{{hcalendar-related-pages}}</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=tools&diff=27359tools2008-02-22T13:16:34Z<p>AndyMabbett: /* Tools, test cases, additional research */ Search engines</p>
<hr />
<div>= Tools, test cases, additional research =<br />
<br />
The first place to look for examples, code, and test cases is in the pages for each individual microformat. There are only a few cross-cutting tools and services that need to process more than one microformat. This page is intended for editors, parsers, validators, test cases, and other information relevant across multiple microformats.<br />
<br />
*[[accessibility]]<br />
*[[external-issues]]<br />
*[[faqs-for-rdf]]<br />
*[[icalendar-implementations]]<br />
*[[internationalization]]<br />
*[[microformats-issues]] - issues related to more than one microformat.<br />
*[[parsing-microformats]]<br />
*[[profile-uri-examples-in-wild|Profile URI examples, in the wild]] (Profile URIs for <code>head</code> elements)<br />
*[[examples-in-wild]] - examples of published microformats<br />
*[[search|Search engines]]<br />
*[http://hg.microformats.org/ Source code repository] -- [[mercurial-quick-start|how to download code from the repository]]<br />
*[[user-profile-examples-in-wild|User profile examples, in the wild]] (User profiles, for social websites)<br />
*[[vcard-implementations]], [[vcard-errata]], [[vcard-suggestions]]<br />
*[[why-are-content-standards-hard]]</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=implementations&diff=25840implementations2008-02-22T13:13:44Z<p>AndyMabbett: search engines</p>
<hr />
<div><h1>Microformats Implementations</h1><br />
{{TOC-right}}<br />
This page lists the applications, plugins, sample code, services, tools that produce or consume microformats. This is only a partial list. If you know other services or tools for or supporting microformats, please add them, link to their [[implementors]], and list what specific microformats they support.<br />
<br />
== Implementations vs. Examples in the Wild ==<br />
This page is ''only'' for implementations of tools that publish or consume microformats. Companies simply ''using'' microformats on their pages/sites belong in the "Examples in the wild" sections of those respective microformats, e.g.:<br />
* [[hcard-examples-in-wild|hCard Examples in the wild]]<br />
* [[hcalendar-examples-in-wild|hCalendar Examples in the wild]]<br />
* etc.<br />
<br />
== Editing This Page ==<br />
When you find an implementation, first make sure that it is ''actually'' an implementation as opposed to ''just'' an [[hcard-examples-in-wild|example in the wild]] of publishing microformats (see above).<br />
<br />
Second, note the name of the ''tool or service'' separately from the name of the ''developer(s)'' who wrote the tool/service.<br />
<br />
Add a third level heading with the name of the tool/service ( <code>=== Name of Tool ===</code> ) to the Applications / Plugins / Services / Tools section, sorted alphabetically by name of tool/service. Add a top level list item (*) just below the heading with an external link to the tool/service, along with a link to evidence of their support for microformats, and mention (and locally link) each microformat that is supported.<br />
<br />
Add a nested list item <code>* by Name of Developer</code> and local to wiki hyperlink the Name of Developer to a fragment identifier in the [[implementors]] page, e.g. Apple Computer would be linked like this: <code><nowiki>[[implementors#Apple_Computer|Apple Computer]]</nowiki></code><br />
<br />
Check to see if there is an entry for the developer in the [[implementors|list of implementors]], if not add them there. Add a link to the developer's home page followed by "has implemented microformats in:".<br />
<br />
In the entry for the developer, add a list item <code>* Name of Tool</code> and local to wiki hyperlink the Name of Tool to a fragment identifier in this page, e.g. X2V would be linked like this: <code><nowiki>[[implementations#X2V|X2V]]</nowiki></code><br />
<br />
Save the page and make sure that each fragment ID local hyperlink when clicked scrolls you to the right spot (for the developer, and for the tool). Make any fix-up edits as necessary. That's it!<br />
<br />
== Reporting Bugs ==<br />
In short, [[put-it-on-the-wiki]]. In particular, add bug reports, with URL(s) to a valid demonstrative test case(s) of course, to the listing of an implementation on this page, OR on the specific implementations wiki page (e.g. [[hcard-implementations]]). Please describe why you think it is a bug (user interface, cosmetic, violates a spec page, e.g. for problems parsing hCards, reference which part of [[hcard-parsing]] the implementation appears to not be following).<br />
<br />
If you have a sense of urgency for getting that particular bug fixed in that implementation, you may email [http://microformats.org/discuss/ microformats-dev] with the URL of that implementation on the wiki page, and *summarize* the bug (the full description being on the wiki page instead).<br />
<br />
== Formats ==<br />
Most microformat specifications have an "implementations" section, e.g.:<br />
*[[rel-tag#Implementations|rel-tag implementations]]<br />
*[[vote-links#Implementations|vote-link implementations]]<br />
*[[xoxo#Implementations|XOXO implementations]]<br />
<br />
In addition, some microformat specifications have separate implementation pages:<br />
*[[hcalendar-implementations|hCalendar implementations]]<br />
*[[hcard-implementations|hCard Implementations]]<br />
*[[xfn-implementations|XFN implementations]]<br />
<br />
== Applications / Plugins / Services / Tools ==<br />
This is an alphabetical listing of all applications, plugins (grouped with their app/tool), services and tools that implement microformats, along with the list of microformats that are supported, and the company and/or developers responsible for it.<br />
<br />
As a user, the implementations listed below will automatically help you use microformats and help your data portability and interoperability with other apps and services.<br />
<br />
Please help complete this list! If you know of additional apps/plugins/services/tools that support microformats, please add them!<br />
<br />
Note: this section is only for listing specific ''implementations''. The list of ''implementors'' is in the [[implementors#Companies / Developers / Organizations|Companies / Developers / Organizations]] section on the [[implementors]] page.<br />
<br />
Alphabetically:<br />
<br />
=== .Mac Webmail ===<br />
* The [http://www.mac.com/webmail .Mac Webmail] ''service'' now [http://factoryjoe.com/blog/2006/10/28/apple-embraces-microformats-in-new-mac-webmail/ supports hcard].<br />
** by [[implementors#Apple_Computer|Apple Computer]]<br />
<br />
<br />
=== AlchemyPoint ===<br />
* [http://www.orch8.net/ AlchemyPoint] is a structured web / mashup platform that supports parsing hCard, rel-tag and other microformats.<br />
** by [[implementors#Orchestr8|Orchestr8]]<br />
<br />
<br />
=== Backnetwork ===<br />
* [http://backnetwork.com/ Backnetwork] is a community networking tool for events that supports [[hCard]], [[hCalendar]], and [[XFN]].<br />
** by [[implementors#Glenn_Jones|Glenn Jones]] of [[implementors#Madgex|Madgex]].<br />
<br />
=== Blinksale ===<br />
* [http://blinksale.com Blinksale] uses [[hcard|hCard]] standard throughout for people and companies.<br />
<br />
=== BlogMatrix ===<br />
* [http://www.blogmatrix.com BlogMatrix] - user information marked as [[hcard|hCard]], tag directories in [[xfolk]]/[[rel-tag]], enclosures are marked as [[rel-enclosure]].<br />
** by [[implementors#David_Janes|David Janes]]<br />
<br />
=== Blogmarks.net ===<br />
* [http://www.blogmarks.net Blogmarks.net] publish user bookmarks in [[xfolk]]/[[rel-tag]].<br />
<br />
=== Bugzilla ===<br />
<br />
* [http://www.bugzilla.org/ Bugzilla] [http://www.bugzilla.org/status/2007-08-23.html 3.1.1] includes some microformats on show_bug.cgi and a few other places.<br />
<br />
<br />
=== cmSiteNavigation ===<br />
* [http://www.christophm.de/software/firefox/cmSiteNavigation/ cmSiteNavigation] extension for Firefox make use of links marked with a [[existing-rel-values|"rel" value]], and parses additional link types also.<br />
<br />
=== Community Server ===<br />
* [http://communityserver.org Community Server] supports tagging posts with [[rel-tag]], implements [[rel-nofollow]] on links in comments, and allows users to create link lists using [http://gmpg.org/xfn/ XFN].<br />
<br />
=== Conferenceer ===<br />
* Built for SXSW 2007, [http://sxsw07.conferenceer.com/ Conferenceer] supports hcalendar and hcard.<br />
<br />
=== Citycita===<br />
* [http://www.citycita.org Citycita] supports [[hCal|hCal]] in all event pages for local social groups.<br />
** by [[implementors#Rubio_Jamin|Rubio Jamin]]<br />
<br />
=== Cork'd ===<br />
* [http://corkd.com Cork'd] supports [[hcard|hCard]] for user profiles, [[hreview|hReview]] for wine reviews, along with [[rel-tag]] for tagging wines as announced in [http://www.simplebits.com/notebook/2006/06/10/wineformats.html Pairing Wine and Microformats]<br />
** by [[implementors#Dan_Cederhold|Dan Cederholm]]<br />
<br />
<br />
=== Delicious Generation ===<br />
* [http://deliciousgeneration.com/ Delicious Generation] supports [[hCal|hCal]] for the event and [[hcard|hCard]] for sponsors and people.<br />
** by [[implementors#Chris_Messina|Chris Messina]]<br />
<br />
=== Digg ===<br />
* [http://digg.com/ Digg] supports [[hcard|hCards]] for profiles and rel-me for identity consolidation (though they currently mix rel-nofollow with rel-me, negating these links).<br />
<br />
=== Dreamweaver ===<br />
==== Microformats Extensions ====<br />
* [http://www.webstandards.org/action/dwtf/microformats Dreamweaver Microformats Extensions] ([http://allinthehead.com/beta/microformats.mxp.zip download]) support authoring [[hcard|hCard]], [[hcalendar|hCalendar]], [http://gmpg.org/xfn XFN], [[rel-tag]], [[rel-license]] as [http://allinthehead.com/retro/282/microformats-in-dreamweaver announced by Drew]<br />
** by [[implementors#Drew_Mclellan|Drew McLellan]]<br />
<br />
=== Drupal ===<br />
==== Upcoming module for Drupal ====<br />
* [http://hybernaut.com/upcoming-module Drupal Upcoming.org syndication module] emits [[hcalendar|hCalendar]]<br />
** by [[implementors#Brian_Del_Vecchio|Brian Del Vecchio]]<br />
<br />
<br />
=== Eventful ===<br />
* [http://eventful.com Eventful] supports [[hcalendar|hCalendar]] for over 1,000,000 event listings and [[hcard|hCard]] for venues.<br />
<br />
<br />
=== Facebook ===<br />
* [http://facebook.com/ Facebook] supports [[hcard|hCard]] for some public profiles '''(example needed)'''. <br />
* There is also an [http://www.facebook.com/apps/application.php?id=2400943827&ref=s hCard application] (a plug-in) for Facebook users.<br />
* Note also the [http://www.facebook.com/group.php?gid=2374732285 microformats group], which Facebook users who support microformats can join.<br />
<br />
=== Ficlets ===<br />
* [http://ficlets.com Ficlets] supports [[hcard]] for author data and [[hatom]] for stories and lists of stories.<br />
** [http://sixtwothree.org Jason Garber] and [http://lawver.net Kevin Lawver] for [http://aol.com AOL]<br />
<br />
=== Firefox ===<br />
* See [[firefox-extensions]]<br />
<br />
=== Flickr People ===<br />
* [http://flickr.com/ Flickr]'s profiles on its people pages supports both [[hcard|hCard]] and [http://gmpg.org/xfn XFN].<br />
** by [[implementors#Cal_Henderson|Cal Henderson]]<br />
**[http://flickr.com/people/tantek example]<br />
<br />
=== Flickr Photos ===<br />
* [http://flickr.com/map/ Flickr's geo tagged photos] are marked up with the [[geo]] microformat.<br />
<br />
=== Flock Web Browser ===<br />
* The [http://flock.com Flock web browser] supports the [[rel-tag]] microformat.<br />
** by [[implementors#Flock|Flock]]<br />
<br />
<br />
=== Google Search ===<br />
* [http://google.com/ Google Search] - supports [[rel-nofollow]]<br />
** by [[implementors#Google|Google]]<br />
<br />
=== Google Blogger ===<br />
* [http://blogger.com/ Blogger] supports [[hatom|hAtom]] (citation to blog post needed - 2007)<br />
** by [[implementors#Google|Google]]<br />
<br />
=== Google Creative Commons Search ===<br />
* [http://www.google.com/webhp?as_rights=(cc_publicdomain%7Ccc_attribute%7Ccc_sharealike%7Ccc_noncommercial%7Ccc_nonderived) Google Creative Commons Search] - supports [[rel-license]]<br />
** by [[implementors#Google|Google]]<br />
<br />
=== Google Maps ===<br />
* [http://maps.google.com/ Google Maps] supports [[hcard|hCard]] (see [http://googlemapsapi.blogspot.com/2007/06/microformats-in-google-maps.html 2007-06-31 announcement by Google])<br />
* Google maps also allows reviewers and map creators to [http://maps.google.com/maps/me attach a public profile], which includes hCard and rel="me' XFN markup. See [http://google-latlong.blogspot.com/2007/10/put-yourself-on-map.html 2007-10-17 announcement]. Sample profile: [http://maps.google.com/maps/user?uid=109581870574956225297 Kevin Marks].<br />
** by [[implementors#Google|Google]]<br />
**Unfortunately, [http://microformats.org/discuss/mail/microformats-discuss/2007-July/010311.html Google Map's implementation is broken]. [http://microformats.org/discuss/mail/microformats-discuss/2007-August/010457.html Google are aware; a fix is awaited].<br />
** Also, there is no hCard nor any XFN rel values on the [http://maps.google.com/maps/user?uid=109581870574956225297 sample profile] itself, it appears to include a [http://maps.google.com/maps/c/widgets/ProfileViewer?js=RAW&maximize=true&hide=false&width=40&noTitle=true&theme=theme_2&service=local&uid=109581870574956225297&height=0&background=transparent&serverbased=true&border=NONE&eventCallback=ParentStub1192999211538&zx=dc574o15j0wrv frame] which then has an hCard and rel="me" to the user's blog.<br />
<br />
=== Gravatar Commenters as hCards ===<br />
* [http://thedredge.org Andy Hume] added code to his blogging software to automatically mark-up the names and URLs of commenters on his blog with [[hcard|hCard]]. <br />
** by [[implementors#Andy_Hume|Andy Hume]]<br />
** Andy - any chance of open sourcing your code to turn Gravatars into hCards?<br />
<br />
=== Greasemonkey ===<br />
* [http://greasemonkey.makedatamakesense.com/google_hcalendar/ Google hCalendar] - Adds hCalendar data to Google Calendar.<br />
* [http://www.nickpeters.net/?p=35 Social xFolk] - Adds xFolk links to social bookmarking sites del.icio.us and ma.gnolia.<br />
<br />
<br />
=== hCalendar creator ===<br />
* [http://microformats.org/code/hcalendar/creator hCalendar creator] (originally [http://theryanking.com/microformats/hcalendar-creator.html published by Ryan King]) is a javascript form for creating [[hcalendar|hCalendar]] events.<br />
** by [[implementors#Ryan_King|Ryan King]]<br />
<br />
=== hCard to Gmail Service ===<br />
* [http://jkg3.com/Journal/81/bookmarklet hCard to gmail] is a bookmarklet / service which will convert hCard formatted data to the .CSV file for importing to gmail.<br />
** by [[implementors#Jamie_Knight|Jamie Knight]]<br />
<br />
=== hCard creator ===<br />
* The open source [http://microformats.org/code/hcard/creator hCard creator] (originally [http://tantek.com/microformats/hcard-creator.html published by Tantek]) is a very simple, yet illustrative, open source user interface / form / script which creates an [[hcard|hCard]] in real-time as you type in a set of contact information.<br />
** by [[implementors#Tantek_Çelik|Tantek Çelik]]<br />
<br />
=== Helios Calendar ===<br />
* [http://www.helioscalendar.com/ Helios Calendar] is a commercial PHP script for event publishing that [http://www.helioscalendar.com/index.php?com=features&d=1 supports hCalendar and hCard].<br />
** by [[implementors#Refresh Web Development|Refresh Web Development]]<br />
<br />
=== hKit Microformats Toolkit for PHP5 ===<br />
* [http://hkit.googlecode.com/ hKit Microformats Toolkit for PHP5] as [http://allinthehead.com/retro/291/hkit-microformats-toolkit-for-php announced by Drew McLellan]. See also [[hkit|hKit on this wiki]].<br />
<br />
=== hReview creator ===<br />
* [http://microformats.org/code/hcalendar/creator hReview creator] (originally [http://theryanking.com/microformats/hreview-creator.html published by Ryan King]) is a javascript form for creating [[hreview|hReviews]].<br />
** by [[implementors#Ryan_King|Ryan King]]<br />
<br />
<br />
=== iChat buddy list to hCards ===<br />
* [http://tantek.com/microformats/buddylist2hcards.html iChat buddy list to hCards] - open source AppleScript to automatically convert one's buddy list in the MacOSX iChat AIM client into a valid XHTML 1.0 Strict list of hCards.<br />
** by [[implementors#Tantek_Çelik|Tantek Çelik]]<br />
<br />
=== Internet Explorer ===<br />
* See [[internet-explorer-extensions]]<br />
<br />
<br />
=== JobiJoba ===<br />
* [http://www.jobijoba.com JobiJoba : moteur de recherche emploi] parses and supports [[hCard|hCard]] and [[rel-tag|rel-tag]] for over 40,000 job listings.<br />
<br />
=== JSCalendar ===<br />
* [http://web.mit.edu/glasser/www/JSCalendar/ JSCalendar] parses [[hcalendar|hCalendar]] and produces a displayable HTML table/CSS-based calendar.<br />
<br />
<br />
=== Konqueror ===<br />
* [http://www.konqueror.org/ Konqueror] - [http://flickr.com/photos/factoryjoe/68755089/ supports] [[hcard|hCard]]<br />
<br />
<br />
=== Last.fm ===<br />
* [http://last.fm Last.fm] - [http://factoryjoe.com/blog/2006/10/31/lastfm-adds-support-for-hcalendar/ Last.fm supports] [[hcalendar|hCalendar]] <br />
<br />
=== LinkedIn ===<br />
* [http://www.linkedin.com LinkedIn] - LinkedIn includes [[hcard|hCard]] and [[xfn|XFN]] on contacts, [[hresume|hResume]] for public profiles and [[hreview|hReview]] on service provider recommendations<br />
<br />
=== Live Clipboard ===<br />
* [http://spaces.live.com/editorial/rayozzie/demo/liveclip/liveclipsample/techPreview.html Live Clipboard Technical Introduction]<br />
* [http://spaces.live.com/editorial/rayozzie/demo/liveclip/liveclipsample/clipboardexample.html Live Clipboard Example]<br />
<br />
=== LiveJournal ===<br />
* [http://www.livejournal.com LiveJournal]<br />
** supports tagging posts with [[rel-tag]]<br />
** supports [[hcard-supporting-user-profiles|hCard user profiles]] and [[XFN]] ([http://community.livejournal.com/lj_releases/24768.html 2007-09-27 release #15]).<br />
** by [[implementors#Six Apart|Six Apart]] (at the time of implementation)<br />
<br />
=== LJFind ===<br />
* [http://www.ljfind.com LJ-Find] - LJFind supports tagging posts with [[rel-tag]].<br />
<br />
=== LouderVoice ===<br />
* [http://www.loudervoice.com Publishes and aggregates hreview content] - The LouderVoice site provides a variety of tools to publish hreview to blogs and it also aggregates hreview content from any registered RSS Feed so that users can search/rate/collect distributed reviews.<br />
<br />
<br />
=== Ma.gnolia ===<br />
* [http://ma.gnolia.com Ma.gnolia] has wide [http://wiki.ma.gnolia.com/Ma.gnolia_Feeds_Guide#Microformats support for a variety of microformats] including [[rel-tag]], [[xfolk]], [[hreview]], [[xfn]] and [[hcard]].<br />
<br />
=== Maxthon ===<br />
[http://maxthon.com Maxthon] is a browser for Microsoft Windows that uses the Trident rendering engine and provides additional user interface. Maxthon has built and published a plugin for their browser that recognizes microformats in web pages and allows users to take action with them, similar to Operator for [[Firefox]].<br />
* [http://forum.maxthon.com/index.php?showtopic=65408 Microformats Button Version 1.0.0 Release Candidate 1]<br />
** Description: "Microformats Button extracts Microformats from websites and allows you to export the data to vCard, vCalendar, Google Maps, Yahoo Maps and other sites."<br />
<br />
=== Microformat Base ===<br />
* [http://randomchaos.com/microformats/base/ Microformat Base]<br />
** by [[implementors#Scott Reynen|Scott Reynen]]<br />
<br />
=== Microformat Bookmarklet Overlay ===<br />
* [http://leftlogic.com/info/articles/microformats_bookmarklet Microformats Bookmarklet] for Safari, Firefox and Camino, supports [[hcard|hCard]] and [[hcalendar|hCalendar]] and allows the user to import individual microformats on the fly.<br />
** by [[implementors#Remy_Sharp|Remy Sharp]]<br />
<br />
=== Microformat Parser for Ruby ===<br />
* [http://blog.labnotes.org/2005/11/20/microformat-parser-for-ruby/ Microformat Parser for Ruby]<br />
** by [[implementors#Assaf Arkin|Assaf Arkin]]<br />
<br />
=== Movable Type ===<br />
* [http://movabletype.org Movable Type] (MT) open source blogging software supports:<br />
** [[XFN]] [[rel-me]] "other profiles" UI, and [[hAtom]] activity streams (as of MT v4.1 - see [http://www.sixapart.com/about/news/2008/01/time_for_action.html announcement] and [http://www.movabletype.org/2008/01/building_action_streams.html technical details].)<br />
** by [[implementors#Six Apart|Six Apart]]<br />
<br />
=== MyMap.yam.com ===<br />
* support [[geo]] microformat in the POI page. example: [http://mymap.yam.com/place/point/charleschuang/6695/ a book store in Tamsui].<br />
<br />
<br />
=== National eXtension Initiative ===<br />
* [http://www.extension.org/ eXtension Home] - content marked-up with [[hatom|hAtom]] and events marked-up as [[hcalendar|hCalendar]] entries.<br />
** by [[implementors#James E. Robinson, III|James E. Robinson, III]]<br />
<br />
=== Nature Network Boston ===<br />
* [http://network.nature.com/boston/ Nature Network Boston], a social networking community for scientists, supports [[reltag|rel-tag]], [[hcard|hCard]] for user profiles and [[hcalendar|hCalendar]] for marking up events across the site.<br />
** by [[implementors#Nature Publishing Group|Nature Publishing Group]]<br />
<br />
=== Nature Protocols ===<br />
* [http://www.nature.com/nprot/ Nature Protocols], a forum for scientists to upload and comment on protocols, supports [[hcard|hCard]] and [[XOXO]].<br />
** by [[implementors#Nature Publishing Group|Nature Publishing Group]]<br />
<br />
=== NetNewsWire ===<br />
*[http://www.newsgator.com/Individuals/NetNewsWire/ NetNewsWire] is an easy-to-use RSS and Atom reader for your Mac. NetNewsWire 3.0 detects, extracts and converts hcard and hcalendar data from feed entries.<br />
** by [[implementors#NewsGator|NewsGator]]<br />
<br />
=== Netscape Navigator ===<br />
* Version 9.0+ supports [[Firefox extensions]], e.g. [[Operator]]:<br />
** [http://notizblog.org/2007/10/21/operator-unter-navigator-90/ Operator unter Navigator 9.0]<br />
<br />
=== Nutch ===<br />
* [http://www.mail-archive.com/nutch-dev@lucene.apache.org/msg01295.html rel-nofollow support added]<br />
* [http://www.mail-archive.com/nutch-commits@lucene.apache.org/msg01014.html rel-tag support checked in]<br />
<br />
<br />
=== ODEO ===<br />
* [http://odeo.com/ ODEO] [http://odeo.com/blog/2005/07/adding-microformats-to-odeo.html noted] that they support microformats: [[rel-tag]], [[rel-enclosure]], [http://gmpg.org/xfn XFN].<br />
<br />
=== Optimus ===<br />
*[http://microformatique.com/optimus/ Optimus]. Output formats: XML, JSON, JSON-P.<br />
<br />
<br />
=== phpMicroformats ===<br />
* [http://enarion.net/phpmicroformats/ phpMicroformats] is a PHP class library that generates microformat entries for [[hcalendar|hCalendar]] and [[hcard|hCard]]. It is released under GPL.<br />
<br />
=== Portable Social Network Profile Parser ===<br />
* [http://lab.backnetwork.com/ufXtract-psn/ Portable Social Network Profile Parser] implements parsing of [[hCard]], [[XFN]], and in particular [[rel-me]] for [[identity-consolidation]] for [[social-network-portability]].<br />
** by [[implementors#Glenn_Jones|Glenn Jones]] of [[implementors#Madgex|Madgex]].<br />
<br />
=== PostNuke ===<br />
''[http://www.postnuke.com PostNuke] is an Application Framework/Content Management Systeme''<br />
* [http://www.pagesetter.net/index.php?module=pagesetter&func=viewpub&tid=4&pid=96 hCards4Pagesetter] - hCards Publication Type for the PostNuke module "Pagesetter"<br />
* [http://www.pagesetter.net/index.php?module=pagesetter&func=viewpub&tid=4&pid=97 hCalendar4Pagesetter] - hCalendar Publication Type for the PostNuke module "Pagesetter"<br />
* [http://www.pagesetter.net/index.php?module=pagesetter&func=viewpub&tid=4&pid=98 hReview4Pagesetter] - hReview Publication Type for the PostNuke module "Pagesetter"<br />
* [http://noc.postnuke.com/frs/?group_id=256&release_id=477 Blogroll] - XFN Block/Modul<br />
* [http://noc.postnuke.com/frs/?group_id=256&release_id=628 nofollow] - nofollow Hook<br />
<br />
=== Pownce ===<br />
*[http://pownce/ Optimus]. Output formats: XML, JSON, JSON-P.<br />
<br />
=== Profiler ===<br />
* [http://microformat.makedatamakesense.com/profiler/ Profiler] works as a proxy service adding microformat profiles to documents that appear to contain microformats.<br />
<br />
<br />
=== RFC2629.xslt ===<br />
* [http://greenbytes.de/tech/webdav/rfc2629.xslt rfc2629.xslt] now attempts to generate [[hcard|hCard]] information ([http://ietf.org/rfc/rfc2629 RFC2629] in an XML format for authoring RFCs and Internet Drafts, see [http://greenbytes.de/tech/webdav/rfc2629xslt/rfc2629xslt.html example document])<br />
<br />
<br />
=== Salesforce ===<br />
* [http://salesforce.com Salesforce] [http://flickr.com/photos/kingsleyj/175689109/ supports] [[hcard|hCard]]<br />
** by [http://flickr.com/people/kingsleyj/ Kingsley Joseph]<br />
==== Spanning Salesforce ====<br />
* [http://spanningsalesforce.com/ Spanning Salesforce] supports [[hcalendar|hCalendar]].<br />
<br />
=== Sivitools ===<br />
<blockquote><br />
Sivitols is a Java library for microformats. Currently only the xFolk RC1 standard is implemented, but additional microformat support is planned. This library is being written and maintained for a tag sharing project undertaken by Video Vertigo.<br />
</blockquote><br />
[http://blog.blip.tv/blog/microformats/ Annoucement], [http://pokkari.com/microformat/javadoc/ Docs]<br />
<br />
=== SPRACI ===<br />
* [http://www.spraci.com SPRACI] - nightlife/events - [[hcalendar|hCalendar]] published in events listings, aggregator can read hCalendar<br />
<br />
=== stuckUnstuck ===<br />
* [http://stuckunstuck.com stuckUnstuck] supports [[hcard|hCard]] and [[hatom|hatom]].<br />
<br />
<br />
=== Technorati Contacts Feed Service ===<br />
* [http://feeds.technorati.com/contacts/ Technorati Contacts Feed Service] is a deployment of [[implementations#X2V|X2V]] to convert [[hcard|hCards]] to vCard (.vcf) format.<br />
** by [[implementors#Technorati|Technorati]]<br />
<br />
=== Technorati Events Feed Service ===<br />
* [http://feeds.technorati.com/events/ Technorati Events Feed Service] is a deployment of [[implementations#X2V|X2V]] to convert [[hcalendar|hCalendar]] events to iCalendar (.ics) format.<br />
** by [[implementors#Technorati|Technorati]]<br />
<br />
=== Technorati Microformats Search ===<br />
* Technorati [http://kitchen.technorati.com/search/ Microformats Search]. Search for contacts ([[hcard|hCard]]), events ([[hcalendar|hCalendar]]), or reviews ([[hreview|hReview]]) published on blogs and other web sites.<br />
** by [[implementors#Ryan_King|Ryan King]]<br />
** first version (2006 May) by [[implementors#Tantek_Çelik|Tantek Çelik]], [[implementors#Ryan_King|Ryan King]], [[implementors#Kevin_Marks|Kevin Marks]], [[implementors#Josh_Smith|Josh Smith]]<br />
<br />
=== Technorati Search ===<br />
* [http://technorati.com/ Technorati] [http://technorati.com/search Search] supports and handles both [[vote-links]] and [[rel-nofollow]] for indicating whether a link should have any/positive/negative weighting towards the destination.<br />
** by [http://technorati.com/about/staff.html Technorati Staff]<br />
<br />
=== Technorati Tags ===<br />
* [http://technorati.com/tags/ Technorati Tags] pages aggregate blog posts tagged with the [[rel-tag]] open tagging standard, in addition to recent tagged photos and links.<br />
<br />
=== Textpattern ===<br />
==== Microformats Plugin ====<br />
* [http://placenamehere.com/TXP/pnh_mf/ Textpattern Microformats Plugin] supports authoring [[hcard|hCard]], [[hcalendar|hCalendar]], [[hreview|hReview]], [http://gmpg.org/xfn XFN], [[rel-tag]], [[rel-license]] in the [http://www.textpattern.com/ Textpattern] CMS/blogging tool <br />
** by [http://placenamehere.com/ Chris Casciano]<br />
<br />
=== Tomota ===<br />
* The [http://www.tomota.de Tomota] allows import, export and conversion from and to hcards.<br />
** by [[implementors#RalfEngels|Ralf Engels]]<br />
<br />
=== TYPO3 ===<br />
* [http://www.typo3.com TYPO3], [http://typo3.org TYPO3 Developer Ressource]<br />
==== tt_address extension====<br />
* [http://typo3.org/extensions/repository/view/tt_address/2.0.1/ tt_address] - hCard support with the tt_address extension version 2.0.0<br />
** by [[implementors#Ingo_Renner|Ingo Renner]]<br />
==== TIMTAB extension====<br />
* [http://typo3.org/extensions/repository/view/timtab/0.5.11/ TIMTAB] - XFN support for blogrolls with the TIMTAB weblog extension for TYPO3<br />
** by [[implementors#Ingo_Renner|Ingo Renner]]<br />
<br />
=== Tweeterboard ===<br />
* Tweeterboard supports [hcard|hCard]], and [http://gmpg.org/xfn XFN] on profile pages ([http://tweeterboard.com/user/missrogue example]).<br />
<br />
=== Twitter ===<br />
<br />
* [http://twitter.com Twitter] [http://twitter.com/al3x/statuses/53982402 supports] [[hatom|hAtom]], [[hcard|hCard]], and [http://gmpg.org/xfn XFN].<br />
** hCards for groups are marked up with "fn" not "fn org". See, for example, [http://twitter.com/microformats microformats on Twitter]<br />
** Improper address mark-up (no child properties; though this may be all that can be achieved, if the user enters a value like "Birmingham, England")<br />
** Uses <code>class="label"</code> for non-hCard purpose.<br />
<br />
<br />
=== ufXtract ===<br />
* [http://lab.backnetwork.com/ufXtract/ ufXtract] implements [[parsing]] of microformats such as [[hCard]] and [[XFN]].<br />
** by [[implementors#Glenn_Jones|Glenn Jones]] of [[implementors#Madgex|Madgex]]. See [http://www.glennjones.net/Post/831/ufXtractmicroformatsparser.htm blog post announcement].<br />
<br />
=== Upcoming.org ===<br />
* [http://upcoming.org Upcoming.org] - hCalendar support in events listings and individual events.<br />
** by [[implementors#Andy_Baio|Andy Baio]], [[implementors#Leonard_Lin|Leonard Lin]], [[implementors#Gordon_Luk|Gordon Luk]]<br />
<br />
<br />
=== vCardExplorer ===<br />
* [http://vcardexplorer.corefault.de/ vCardExplorer for MacOSX] - browses local vcards and converts hcards from URLs.<br />
<br />
<br />
=== WindowsLiveWriter ===<br />
* [[implementors#Microsoft|Microsoft's]] WindowsLiveWriter (WLW) [http://gallery.live.com/liveItemDetail.aspx?li=9751e563-1408-4fc3-8028-bd4351edb1fb&l=8 event plugin] supports [[hcalendar|hCalendar]].<br />
<br />
=== WordPress ===<br />
*See [[wordpress]].<br />
<br />
<br />
=== X2V ===<br />
* Brian Suda has created several XSLT files to extract microformats from HTML. From that the [http://suda.co.uk/projects/X2V/ X2V] webservice/favelet emerged. The XSLT and favelet extracts [[hcard|hCard]] and to produces .vcf (vCard) files and [[hcalendar|hCalendar]] to produce .ics (iCal) files. Also in the labs is a universal XMDP validator and a site-wide search spider that recognizes 'no-follow', 'license' and other microformats so they can be used in a more semantic way when displaying search results.<br />
** by [[implementors#Brian_Suda|Brian Suda]]<br />
<br />
=== XWiki ===<br />
* [http://xwiki.org XWiki] (as of [http://www.xwiki.org/xwiki/bin/view/Main/ReleaseNotesXWiki10Beta5 version 10Beta5]) publishes the user profiles using [[hcard | hCard]], the events in the calendar application using [[hCalendar | hCalendar]], the blog entries using [[hAtom | hAtom]] and homepage links using [[rel-home | rel-home]].<br />
<br />
<br />
=== Yahoo Creative Commons Search ===<br />
* [http://search.yahoo.com/cc/ Yahoo Creative Commons Search] - supports [[rel-license]] specifically to search for Creative Commons licensed content.<br />
<br />
=== Yahoo Local ===<br />
* [http://local.yahoo.com Yahoo local] supports [[hcard|hCard]], [[hcalendar|hCalendar]], and [[hreview|hReview]].<br />
<br />
=== Yahoo Tech ===<br />
* [http://tech.yahoo.com Yahoo! Tech] supports [[hreview|hReview]].<br />
<br />
=== Yahoo UK Movies ===<br />
* [http://movies.yahoo.co.uk Yahoo! UK Movies] supports [[hreview|hReview]].<br />
** by Mark Norman Francis<br />
<br />
=== Yedda ===<br />
* [http://yedda.com Yedda] supports [[hcard|hCard]] for exposing users information, [[hatom|hAtom]] for exposing data that is already exposed via feeds (like list of questions and answers) and [[rel-tag|rel-tag]] for every tag used to tag questions and users.<br />
<br />
<br />
== Validators ==<br />
This is an alphabetical listing of tools that have been created to validate implementations, and which formats they support.<br />
<br />
Please add to this section if you have a validator/checker, no matter which or how many microformats you test for.<br />
<br />
=== rel-lint ===<br />
* [http://tools.microformatic.com/help/xhtml/rel-lint/ rel-lint] supports validation of [[rel-tag|rel-tag]] and [[xfn|XFN]] <br />
* by [[implementors#Drew_McLellan|Drew McLellan]]<br />
<br />
==Search engines==<br />
See [[search]]<br />
<br />
== Companies / Developers / Organizations ==<br />
See [[implementors]]<br />
<br />
The following have been moved from the sections above due to problems, stated below:<br />
<br />
=== Web Essentials ===<br />
* [http://we05.com/ Web Essentials] - supports [[hcard|hCard]] and [[hcalendar|hCalendar]], e.g. in their [http://we05.com/presenters.cfm list of presenters] and [http://we05.com/program.cfm program schedule].<br />
** John McKerrell tried to look at the site on 24th October 2006 but could not access the site, server didn't seem to be up.<br />
** As of 2008-02-22, domain is expired. [[User:AndyMabbett|Andy Mabbett]] 05:12, 22 Feb 2008 (PST)<br />
<br />
== Other ==<br />
Some notes on initial thoughts around [[implementation-guidelines|Guidelines and Strategies for Implementing Microformats]]</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=implementations&diff=25832implementations2008-02-22T13:12:42Z<p>AndyMabbett: /* Web Essentials */ domain expired</p>
<hr />
<div><h1>Microformats Implementations</h1><br />
{{TOC-right}}<br />
This page lists the applications, plugins, sample code, services, tools that produce or consume microformats. This is only a partial list. If you know other services or tools for or supporting microformats, please add them, link to their [[implementors]], and list what specific microformats they support.<br />
<br />
== Implementations vs. Examples in the Wild ==<br />
This page is ''only'' for implementations of tools that publish or consume microformats. Companies simply ''using'' microformats on their pages/sites belong in the "Examples in the wild" sections of those respective microformats, e.g.:<br />
* [[hcard-examples-in-wild|hCard Examples in the wild]]<br />
* [[hcalendar-examples-in-wild|hCalendar Examples in the wild]]<br />
* etc.<br />
<br />
== Editing This Page ==<br />
When you find an implementation, first make sure that it is ''actually'' an implementation as opposed to ''just'' an [[hcard-examples-in-wild|example in the wild]] of publishing microformats (see above).<br />
<br />
Second, note the name of the ''tool or service'' separately from the name of the ''developer(s)'' who wrote the tool/service.<br />
<br />
Add a third level heading with the name of the tool/service ( <code>=== Name of Tool ===</code> ) to the Applications / Plugins / Services / Tools section, sorted alphabetically by name of tool/service. Add a top level list item (*) just below the heading with an external link to the tool/service, along with a link to evidence of their support for microformats, and mention (and locally link) each microformat that is supported.<br />
<br />
Add a nested list item <code>* by Name of Developer</code> and local to wiki hyperlink the Name of Developer to a fragment identifier in the [[implementors]] page, e.g. Apple Computer would be linked like this: <code><nowiki>[[implementors#Apple_Computer|Apple Computer]]</nowiki></code><br />
<br />
Check to see if there is an entry for the developer in the [[implementors|list of implementors]], if not add them there. Add a link to the developer's home page followed by "has implemented microformats in:".<br />
<br />
In the entry for the developer, add a list item <code>* Name of Tool</code> and local to wiki hyperlink the Name of Tool to a fragment identifier in this page, e.g. X2V would be linked like this: <code><nowiki>[[implementations#X2V|X2V]]</nowiki></code><br />
<br />
Save the page and make sure that each fragment ID local hyperlink when clicked scrolls you to the right spot (for the developer, and for the tool). Make any fix-up edits as necessary. That's it!<br />
<br />
== Reporting Bugs ==<br />
In short, [[put-it-on-the-wiki]]. In particular, add bug reports, with URL(s) to a valid demonstrative test case(s) of course, to the listing of an implementation on this page, OR on the specific implementations wiki page (e.g. [[hcard-implementations]]). Please describe why you think it is a bug (user interface, cosmetic, violates a spec page, e.g. for problems parsing hCards, reference which part of [[hcard-parsing]] the implementation appears to not be following).<br />
<br />
If you have a sense of urgency for getting that particular bug fixed in that implementation, you may email [http://microformats.org/discuss/ microformats-dev] with the URL of that implementation on the wiki page, and *summarize* the bug (the full description being on the wiki page instead).<br />
<br />
== Formats ==<br />
Most microformat specifications have an "implementations" section, e.g.:<br />
*[[rel-tag#Implementations|rel-tag implementations]]<br />
*[[vote-links#Implementations|vote-link implementations]]<br />
*[[xoxo#Implementations|XOXO implementations]]<br />
<br />
In addition, some microformat specifications have separate implementation pages:<br />
*[[hcalendar-implementations|hCalendar implementations]]<br />
*[[hcard-implementations|hCard Implementations]]<br />
*[[xfn-implementations|XFN implementations]]<br />
<br />
== Applications / Plugins / Services / Tools ==<br />
This is an alphabetical listing of all applications, plugins (grouped with their app/tool), services and tools that implement microformats, along with the list of microformats that are supported, and the company and/or developers responsible for it.<br />
<br />
As a user, the implementations listed below will automatically help you use microformats and help your data portability and interoperability with other apps and services.<br />
<br />
Please help complete this list! If you know of additional apps/plugins/services/tools that support microformats, please add them!<br />
<br />
Note: this section is only for listing specific ''implementations''. The list of ''implementors'' is in the [[implementors#Companies / Developers / Organizations|Companies / Developers / Organizations]] section on the [[implementors]] page.<br />
<br />
Alphabetically:<br />
<br />
=== .Mac Webmail ===<br />
* The [http://www.mac.com/webmail .Mac Webmail] ''service'' now [http://factoryjoe.com/blog/2006/10/28/apple-embraces-microformats-in-new-mac-webmail/ supports hcard].<br />
** by [[implementors#Apple_Computer|Apple Computer]]<br />
<br />
<br />
=== AlchemyPoint ===<br />
* [http://www.orch8.net/ AlchemyPoint] is a structured web / mashup platform that supports parsing hCard, rel-tag and other microformats.<br />
** by [[implementors#Orchestr8|Orchestr8]]<br />
<br />
<br />
=== Backnetwork ===<br />
* [http://backnetwork.com/ Backnetwork] is a community networking tool for events that supports [[hCard]], [[hCalendar]], and [[XFN]].<br />
** by [[implementors#Glenn_Jones|Glenn Jones]] of [[implementors#Madgex|Madgex]].<br />
<br />
=== Blinksale ===<br />
* [http://blinksale.com Blinksale] uses [[hcard|hCard]] standard throughout for people and companies.<br />
<br />
=== BlogMatrix ===<br />
* [http://www.blogmatrix.com BlogMatrix] - user information marked as [[hcard|hCard]], tag directories in [[xfolk]]/[[rel-tag]], enclosures are marked as [[rel-enclosure]].<br />
** by [[implementors#David_Janes|David Janes]]<br />
<br />
=== Blogmarks.net ===<br />
* [http://www.blogmarks.net Blogmarks.net] publish user bookmarks in [[xfolk]]/[[rel-tag]].<br />
<br />
=== Bugzilla ===<br />
<br />
* [http://www.bugzilla.org/ Bugzilla] [http://www.bugzilla.org/status/2007-08-23.html 3.1.1] includes some microformats on show_bug.cgi and a few other places.<br />
<br />
<br />
=== cmSiteNavigation ===<br />
* [http://www.christophm.de/software/firefox/cmSiteNavigation/ cmSiteNavigation] extension for Firefox make use of links marked with a [[existing-rel-values|"rel" value]], and parses additional link types also.<br />
<br />
=== Community Server ===<br />
* [http://communityserver.org Community Server] supports tagging posts with [[rel-tag]], implements [[rel-nofollow]] on links in comments, and allows users to create link lists using [http://gmpg.org/xfn/ XFN].<br />
<br />
=== Conferenceer ===<br />
* Built for SXSW 2007, [http://sxsw07.conferenceer.com/ Conferenceer] supports hcalendar and hcard.<br />
<br />
=== Citycita===<br />
* [http://www.citycita.org Citycita] supports [[hCal|hCal]] in all event pages for local social groups.<br />
** by [[implementors#Rubio_Jamin|Rubio Jamin]]<br />
<br />
=== Cork'd ===<br />
* [http://corkd.com Cork'd] supports [[hcard|hCard]] for user profiles, [[hreview|hReview]] for wine reviews, along with [[rel-tag]] for tagging wines as announced in [http://www.simplebits.com/notebook/2006/06/10/wineformats.html Pairing Wine and Microformats]<br />
** by [[implementors#Dan_Cederhold|Dan Cederholm]]<br />
<br />
<br />
=== Delicious Generation ===<br />
* [http://deliciousgeneration.com/ Delicious Generation] supports [[hCal|hCal]] for the event and [[hcard|hCard]] for sponsors and people.<br />
** by [[implementors#Chris_Messina|Chris Messina]]<br />
<br />
=== Digg ===<br />
* [http://digg.com/ Digg] supports [[hcard|hCards]] for profiles and rel-me for identity consolidation (though they currently mix rel-nofollow with rel-me, negating these links).<br />
<br />
=== Dreamweaver ===<br />
==== Microformats Extensions ====<br />
* [http://www.webstandards.org/action/dwtf/microformats Dreamweaver Microformats Extensions] ([http://allinthehead.com/beta/microformats.mxp.zip download]) support authoring [[hcard|hCard]], [[hcalendar|hCalendar]], [http://gmpg.org/xfn XFN], [[rel-tag]], [[rel-license]] as [http://allinthehead.com/retro/282/microformats-in-dreamweaver announced by Drew]<br />
** by [[implementors#Drew_Mclellan|Drew McLellan]]<br />
<br />
=== Drupal ===<br />
==== Upcoming module for Drupal ====<br />
* [http://hybernaut.com/upcoming-module Drupal Upcoming.org syndication module] emits [[hcalendar|hCalendar]]<br />
** by [[implementors#Brian_Del_Vecchio|Brian Del Vecchio]]<br />
<br />
<br />
=== Eventful ===<br />
* [http://eventful.com Eventful] supports [[hcalendar|hCalendar]] for over 1,000,000 event listings and [[hcard|hCard]] for venues.<br />
<br />
<br />
=== Facebook ===<br />
* [http://facebook.com/ Facebook] supports [[hcard|hCard]] for some public profiles '''(example needed)'''. <br />
* There is also an [http://www.facebook.com/apps/application.php?id=2400943827&ref=s hCard application] (a plug-in) for Facebook users.<br />
* Note also the [http://www.facebook.com/group.php?gid=2374732285 microformats group], which Facebook users who support microformats can join.<br />
<br />
=== Ficlets ===<br />
* [http://ficlets.com Ficlets] supports [[hcard]] for author data and [[hatom]] for stories and lists of stories.<br />
** [http://sixtwothree.org Jason Garber] and [http://lawver.net Kevin Lawver] for [http://aol.com AOL]<br />
<br />
=== Firefox ===<br />
* See [[firefox-extensions]]<br />
<br />
=== Flickr People ===<br />
* [http://flickr.com/ Flickr]'s profiles on its people pages supports both [[hcard|hCard]] and [http://gmpg.org/xfn XFN].<br />
** by [[implementors#Cal_Henderson|Cal Henderson]]<br />
**[http://flickr.com/people/tantek example]<br />
<br />
=== Flickr Photos ===<br />
* [http://flickr.com/map/ Flickr's geo tagged photos] are marked up with the [[geo]] microformat.<br />
<br />
=== Flock Web Browser ===<br />
* The [http://flock.com Flock web browser] supports the [[rel-tag]] microformat.<br />
** by [[implementors#Flock|Flock]]<br />
<br />
<br />
=== Google Search ===<br />
* [http://google.com/ Google Search] - supports [[rel-nofollow]]<br />
** by [[implementors#Google|Google]]<br />
<br />
=== Google Blogger ===<br />
* [http://blogger.com/ Blogger] supports [[hatom|hAtom]] (citation to blog post needed - 2007)<br />
** by [[implementors#Google|Google]]<br />
<br />
=== Google Creative Commons Search ===<br />
* [http://www.google.com/webhp?as_rights=(cc_publicdomain%7Ccc_attribute%7Ccc_sharealike%7Ccc_noncommercial%7Ccc_nonderived) Google Creative Commons Search] - supports [[rel-license]]<br />
** by [[implementors#Google|Google]]<br />
<br />
=== Google Maps ===<br />
* [http://maps.google.com/ Google Maps] supports [[hcard|hCard]] (see [http://googlemapsapi.blogspot.com/2007/06/microformats-in-google-maps.html 2007-06-31 announcement by Google])<br />
* Google maps also allows reviewers and map creators to [http://maps.google.com/maps/me attach a public profile], which includes hCard and rel="me' XFN markup. See [http://google-latlong.blogspot.com/2007/10/put-yourself-on-map.html 2007-10-17 announcement]. Sample profile: [http://maps.google.com/maps/user?uid=109581870574956225297 Kevin Marks].<br />
** by [[implementors#Google|Google]]<br />
**Unfortunately, [http://microformats.org/discuss/mail/microformats-discuss/2007-July/010311.html Google Map's implementation is broken]. [http://microformats.org/discuss/mail/microformats-discuss/2007-August/010457.html Google are aware; a fix is awaited].<br />
** Also, there is no hCard nor any XFN rel values on the [http://maps.google.com/maps/user?uid=109581870574956225297 sample profile] itself, it appears to include a [http://maps.google.com/maps/c/widgets/ProfileViewer?js=RAW&maximize=true&hide=false&width=40&noTitle=true&theme=theme_2&service=local&uid=109581870574956225297&height=0&background=transparent&serverbased=true&border=NONE&eventCallback=ParentStub1192999211538&zx=dc574o15j0wrv frame] which then has an hCard and rel="me" to the user's blog.<br />
<br />
=== Gravatar Commenters as hCards ===<br />
* [http://thedredge.org Andy Hume] added code to his blogging software to automatically mark-up the names and URLs of commenters on his blog with [[hcard|hCard]]. <br />
** by [[implementors#Andy_Hume|Andy Hume]]<br />
** Andy - any chance of open sourcing your code to turn Gravatars into hCards?<br />
<br />
=== Greasemonkey ===<br />
* [http://greasemonkey.makedatamakesense.com/google_hcalendar/ Google hCalendar] - Adds hCalendar data to Google Calendar.<br />
* [http://www.nickpeters.net/?p=35 Social xFolk] - Adds xFolk links to social bookmarking sites del.icio.us and ma.gnolia.<br />
<br />
<br />
=== hCalendar creator ===<br />
* [http://microformats.org/code/hcalendar/creator hCalendar creator] (originally [http://theryanking.com/microformats/hcalendar-creator.html published by Ryan King]) is a javascript form for creating [[hcalendar|hCalendar]] events.<br />
** by [[implementors#Ryan_King|Ryan King]]<br />
<br />
=== hCard to Gmail Service ===<br />
* [http://jkg3.com/Journal/81/bookmarklet hCard to gmail] is a bookmarklet / service which will convert hCard formatted data to the .CSV file for importing to gmail.<br />
** by [[implementors#Jamie_Knight|Jamie Knight]]<br />
<br />
=== hCard creator ===<br />
* The open source [http://microformats.org/code/hcard/creator hCard creator] (originally [http://tantek.com/microformats/hcard-creator.html published by Tantek]) is a very simple, yet illustrative, open source user interface / form / script which creates an [[hcard|hCard]] in real-time as you type in a set of contact information.<br />
** by [[implementors#Tantek_Çelik|Tantek Çelik]]<br />
<br />
=== Helios Calendar ===<br />
* [http://www.helioscalendar.com/ Helios Calendar] is a commercial PHP script for event publishing that [http://www.helioscalendar.com/index.php?com=features&d=1 supports hCalendar and hCard].<br />
** by [[implementors#Refresh Web Development|Refresh Web Development]]<br />
<br />
=== hKit Microformats Toolkit for PHP5 ===<br />
* [http://hkit.googlecode.com/ hKit Microformats Toolkit for PHP5] as [http://allinthehead.com/retro/291/hkit-microformats-toolkit-for-php announced by Drew McLellan]. See also [[hkit|hKit on this wiki]].<br />
<br />
=== hReview creator ===<br />
* [http://microformats.org/code/hcalendar/creator hReview creator] (originally [http://theryanking.com/microformats/hreview-creator.html published by Ryan King]) is a javascript form for creating [[hreview|hReviews]].<br />
** by [[implementors#Ryan_King|Ryan King]]<br />
<br />
<br />
=== iChat buddy list to hCards ===<br />
* [http://tantek.com/microformats/buddylist2hcards.html iChat buddy list to hCards] - open source AppleScript to automatically convert one's buddy list in the MacOSX iChat AIM client into a valid XHTML 1.0 Strict list of hCards.<br />
** by [[implementors#Tantek_Çelik|Tantek Çelik]]<br />
<br />
=== Internet Explorer ===<br />
* See [[internet-explorer-extensions]]<br />
<br />
<br />
=== JobiJoba ===<br />
* [http://www.jobijoba.com JobiJoba : moteur de recherche emploi] parses and supports [[hCard|hCard]] and [[rel-tag|rel-tag]] for over 40,000 job listings.<br />
<br />
=== JSCalendar ===<br />
* [http://web.mit.edu/glasser/www/JSCalendar/ JSCalendar] parses [[hcalendar|hCalendar]] and produces a displayable HTML table/CSS-based calendar.<br />
<br />
<br />
=== Konqueror ===<br />
* [http://www.konqueror.org/ Konqueror] - [http://flickr.com/photos/factoryjoe/68755089/ supports] [[hcard|hCard]]<br />
<br />
<br />
=== Last.fm ===<br />
* [http://last.fm Last.fm] - [http://factoryjoe.com/blog/2006/10/31/lastfm-adds-support-for-hcalendar/ Last.fm supports] [[hcalendar|hCalendar]] <br />
<br />
=== LinkedIn ===<br />
* [http://www.linkedin.com LinkedIn] - LinkedIn includes [[hcard|hCard]] and [[xfn|XFN]] on contacts, [[hresume|hResume]] for public profiles and [[hreview|hReview]] on service provider recommendations<br />
<br />
=== Live Clipboard ===<br />
* [http://spaces.live.com/editorial/rayozzie/demo/liveclip/liveclipsample/techPreview.html Live Clipboard Technical Introduction]<br />
* [http://spaces.live.com/editorial/rayozzie/demo/liveclip/liveclipsample/clipboardexample.html Live Clipboard Example]<br />
<br />
=== LiveJournal ===<br />
* [http://www.livejournal.com LiveJournal]<br />
** supports tagging posts with [[rel-tag]]<br />
** supports [[hcard-supporting-user-profiles|hCard user profiles]] and [[XFN]] ([http://community.livejournal.com/lj_releases/24768.html 2007-09-27 release #15]).<br />
** by [[implementors#Six Apart|Six Apart]] (at the time of implementation)<br />
<br />
=== LJFind ===<br />
* [http://www.ljfind.com LJ-Find] - LJFind supports tagging posts with [[rel-tag]].<br />
<br />
=== LouderVoice ===<br />
* [http://www.loudervoice.com Publishes and aggregates hreview content] - The LouderVoice site provides a variety of tools to publish hreview to blogs and it also aggregates hreview content from any registered RSS Feed so that users can search/rate/collect distributed reviews.<br />
<br />
<br />
=== Ma.gnolia ===<br />
* [http://ma.gnolia.com Ma.gnolia] has wide [http://wiki.ma.gnolia.com/Ma.gnolia_Feeds_Guide#Microformats support for a variety of microformats] including [[rel-tag]], [[xfolk]], [[hreview]], [[xfn]] and [[hcard]].<br />
<br />
=== Maxthon ===<br />
[http://maxthon.com Maxthon] is a browser for Microsoft Windows that uses the Trident rendering engine and provides additional user interface. Maxthon has built and published a plugin for their browser that recognizes microformats in web pages and allows users to take action with them, similar to Operator for [[Firefox]].<br />
* [http://forum.maxthon.com/index.php?showtopic=65408 Microformats Button Version 1.0.0 Release Candidate 1]<br />
** Description: "Microformats Button extracts Microformats from websites and allows you to export the data to vCard, vCalendar, Google Maps, Yahoo Maps and other sites."<br />
<br />
=== Microformat Base ===<br />
* [http://randomchaos.com/microformats/base/ Microformat Base]<br />
** by [[implementors#Scott Reynen|Scott Reynen]]<br />
<br />
=== Microformat Bookmarklet Overlay ===<br />
* [http://leftlogic.com/info/articles/microformats_bookmarklet Microformats Bookmarklet] for Safari, Firefox and Camino, supports [[hcard|hCard]] and [[hcalendar|hCalendar]] and allows the user to import individual microformats on the fly.<br />
** by [[implementors#Remy_Sharp|Remy Sharp]]<br />
<br />
=== Microformat Parser for Ruby ===<br />
* [http://blog.labnotes.org/2005/11/20/microformat-parser-for-ruby/ Microformat Parser for Ruby]<br />
** by [[implementors#Assaf Arkin|Assaf Arkin]]<br />
<br />
=== Movable Type ===<br />
* [http://movabletype.org Movable Type] (MT) open source blogging software supports:<br />
** [[XFN]] [[rel-me]] "other profiles" UI, and [[hAtom]] activity streams (as of MT v4.1 - see [http://www.sixapart.com/about/news/2008/01/time_for_action.html announcement] and [http://www.movabletype.org/2008/01/building_action_streams.html technical details].)<br />
** by [[implementors#Six Apart|Six Apart]]<br />
<br />
=== MyMap.yam.com ===<br />
* support [[geo]] microformat in the POI page. example: [http://mymap.yam.com/place/point/charleschuang/6695/ a book store in Tamsui].<br />
<br />
<br />
=== National eXtension Initiative ===<br />
* [http://www.extension.org/ eXtension Home] - content marked-up with [[hatom|hAtom]] and events marked-up as [[hcalendar|hCalendar]] entries.<br />
** by [[implementors#James E. Robinson, III|James E. Robinson, III]]<br />
<br />
=== Nature Network Boston ===<br />
* [http://network.nature.com/boston/ Nature Network Boston], a social networking community for scientists, supports [[reltag|rel-tag]], [[hcard|hCard]] for user profiles and [[hcalendar|hCalendar]] for marking up events across the site.<br />
** by [[implementors#Nature Publishing Group|Nature Publishing Group]]<br />
<br />
=== Nature Protocols ===<br />
* [http://www.nature.com/nprot/ Nature Protocols], a forum for scientists to upload and comment on protocols, supports [[hcard|hCard]] and [[XOXO]].<br />
** by [[implementors#Nature Publishing Group|Nature Publishing Group]]<br />
<br />
=== NetNewsWire ===<br />
*[http://www.newsgator.com/Individuals/NetNewsWire/ NetNewsWire] is an easy-to-use RSS and Atom reader for your Mac. NetNewsWire 3.0 detects, extracts and converts hcard and hcalendar data from feed entries.<br />
** by [[implementors#NewsGator|NewsGator]]<br />
<br />
=== Netscape Navigator ===<br />
* Version 9.0+ supports [[Firefox extensions]], e.g. [[Operator]]:<br />
** [http://notizblog.org/2007/10/21/operator-unter-navigator-90/ Operator unter Navigator 9.0]<br />
<br />
=== Nutch ===<br />
* [http://www.mail-archive.com/nutch-dev@lucene.apache.org/msg01295.html rel-nofollow support added]<br />
* [http://www.mail-archive.com/nutch-commits@lucene.apache.org/msg01014.html rel-tag support checked in]<br />
<br />
<br />
=== ODEO ===<br />
* [http://odeo.com/ ODEO] [http://odeo.com/blog/2005/07/adding-microformats-to-odeo.html noted] that they support microformats: [[rel-tag]], [[rel-enclosure]], [http://gmpg.org/xfn XFN].<br />
<br />
=== Optimus ===<br />
*[http://microformatique.com/optimus/ Optimus]. Output formats: XML, JSON, JSON-P.<br />
<br />
<br />
=== phpMicroformats ===<br />
* [http://enarion.net/phpmicroformats/ phpMicroformats] is a PHP class library that generates microformat entries for [[hcalendar|hCalendar]] and [[hcard|hCard]]. It is released under GPL.<br />
<br />
=== Portable Social Network Profile Parser ===<br />
* [http://lab.backnetwork.com/ufXtract-psn/ Portable Social Network Profile Parser] implements parsing of [[hCard]], [[XFN]], and in particular [[rel-me]] for [[identity-consolidation]] for [[social-network-portability]].<br />
** by [[implementors#Glenn_Jones|Glenn Jones]] of [[implementors#Madgex|Madgex]].<br />
<br />
=== PostNuke ===<br />
''[http://www.postnuke.com PostNuke] is an Application Framework/Content Management Systeme''<br />
* [http://www.pagesetter.net/index.php?module=pagesetter&func=viewpub&tid=4&pid=96 hCards4Pagesetter] - hCards Publication Type for the PostNuke module "Pagesetter"<br />
* [http://www.pagesetter.net/index.php?module=pagesetter&func=viewpub&tid=4&pid=97 hCalendar4Pagesetter] - hCalendar Publication Type for the PostNuke module "Pagesetter"<br />
* [http://www.pagesetter.net/index.php?module=pagesetter&func=viewpub&tid=4&pid=98 hReview4Pagesetter] - hReview Publication Type for the PostNuke module "Pagesetter"<br />
* [http://noc.postnuke.com/frs/?group_id=256&release_id=477 Blogroll] - XFN Block/Modul<br />
* [http://noc.postnuke.com/frs/?group_id=256&release_id=628 nofollow] - nofollow Hook<br />
<br />
=== Pownce ===<br />
*[http://pownce/ Optimus]. Output formats: XML, JSON, JSON-P.<br />
<br />
=== Profiler ===<br />
* [http://microformat.makedatamakesense.com/profiler/ Profiler] works as a proxy service adding microformat profiles to documents that appear to contain microformats.<br />
<br />
<br />
=== RFC2629.xslt ===<br />
* [http://greenbytes.de/tech/webdav/rfc2629.xslt rfc2629.xslt] now attempts to generate [[hcard|hCard]] information ([http://ietf.org/rfc/rfc2629 RFC2629] in an XML format for authoring RFCs and Internet Drafts, see [http://greenbytes.de/tech/webdav/rfc2629xslt/rfc2629xslt.html example document])<br />
<br />
<br />
=== Salesforce ===<br />
* [http://salesforce.com Salesforce] [http://flickr.com/photos/kingsleyj/175689109/ supports] [[hcard|hCard]]<br />
** by [http://flickr.com/people/kingsleyj/ Kingsley Joseph]<br />
==== Spanning Salesforce ====<br />
* [http://spanningsalesforce.com/ Spanning Salesforce] supports [[hcalendar|hCalendar]].<br />
<br />
=== Sivitools ===<br />
<blockquote><br />
Sivitols is a Java library for microformats. Currently only the xFolk RC1 standard is implemented, but additional microformat support is planned. This library is being written and maintained for a tag sharing project undertaken by Video Vertigo.<br />
</blockquote><br />
[http://blog.blip.tv/blog/microformats/ Annoucement], [http://pokkari.com/microformat/javadoc/ Docs]<br />
<br />
=== SPRACI ===<br />
* [http://www.spraci.com SPRACI] - nightlife/events - [[hcalendar|hCalendar]] published in events listings, aggregator can read hCalendar<br />
<br />
=== stuckUnstuck ===<br />
* [http://stuckunstuck.com stuckUnstuck] supports [[hcard|hCard]] and [[hatom|hatom]].<br />
<br />
<br />
=== Technorati Contacts Feed Service ===<br />
* [http://feeds.technorati.com/contacts/ Technorati Contacts Feed Service] is a deployment of [[implementations#X2V|X2V]] to convert [[hcard|hCards]] to vCard (.vcf) format.<br />
** by [[implementors#Technorati|Technorati]]<br />
<br />
=== Technorati Events Feed Service ===<br />
* [http://feeds.technorati.com/events/ Technorati Events Feed Service] is a deployment of [[implementations#X2V|X2V]] to convert [[hcalendar|hCalendar]] events to iCalendar (.ics) format.<br />
** by [[implementors#Technorati|Technorati]]<br />
<br />
=== Technorati Microformats Search ===<br />
* Technorati [http://kitchen.technorati.com/search/ Microformats Search]. Search for contacts ([[hcard|hCard]]), events ([[hcalendar|hCalendar]]), or reviews ([[hreview|hReview]]) published on blogs and other web sites.<br />
** by [[implementors#Ryan_King|Ryan King]]<br />
** first version (2006 May) by [[implementors#Tantek_Çelik|Tantek Çelik]], [[implementors#Ryan_King|Ryan King]], [[implementors#Kevin_Marks|Kevin Marks]], [[implementors#Josh_Smith|Josh Smith]]<br />
<br />
=== Technorati Search ===<br />
* [http://technorati.com/ Technorati] [http://technorati.com/search Search] supports and handles both [[vote-links]] and [[rel-nofollow]] for indicating whether a link should have any/positive/negative weighting towards the destination.<br />
** by [http://technorati.com/about/staff.html Technorati Staff]<br />
<br />
=== Technorati Tags ===<br />
* [http://technorati.com/tags/ Technorati Tags] pages aggregate blog posts tagged with the [[rel-tag]] open tagging standard, in addition to recent tagged photos and links.<br />
<br />
=== Textpattern ===<br />
==== Microformats Plugin ====<br />
* [http://placenamehere.com/TXP/pnh_mf/ Textpattern Microformats Plugin] supports authoring [[hcard|hCard]], [[hcalendar|hCalendar]], [[hreview|hReview]], [http://gmpg.org/xfn XFN], [[rel-tag]], [[rel-license]] in the [http://www.textpattern.com/ Textpattern] CMS/blogging tool <br />
** by [http://placenamehere.com/ Chris Casciano]<br />
<br />
=== Tomota ===<br />
* The [http://www.tomota.de Tomota] allows import, export and conversion from and to hcards.<br />
** by [[implementors#RalfEngels|Ralf Engels]]<br />
<br />
=== TYPO3 ===<br />
* [http://www.typo3.com TYPO3], [http://typo3.org TYPO3 Developer Ressource]<br />
==== tt_address extension====<br />
* [http://typo3.org/extensions/repository/view/tt_address/2.0.1/ tt_address] - hCard support with the tt_address extension version 2.0.0<br />
** by [[implementors#Ingo_Renner|Ingo Renner]]<br />
==== TIMTAB extension====<br />
* [http://typo3.org/extensions/repository/view/timtab/0.5.11/ TIMTAB] - XFN support for blogrolls with the TIMTAB weblog extension for TYPO3<br />
** by [[implementors#Ingo_Renner|Ingo Renner]]<br />
<br />
=== Tweeterboard ===<br />
* Tweeterboard supports [hcard|hCard]], and [http://gmpg.org/xfn XFN] on profile pages ([http://tweeterboard.com/user/missrogue example]).<br />
<br />
=== Twitter ===<br />
<br />
* [http://twitter.com Twitter] [http://twitter.com/al3x/statuses/53982402 supports] [[hatom|hAtom]], [[hcard|hCard]], and [http://gmpg.org/xfn XFN].<br />
** hCards for groups are marked up with "fn" not "fn org". See, for example, [http://twitter.com/microformats microformats on Twitter]<br />
** Improper address mark-up (no child properties; though this may be all that can be achieved, if the user enters a value like "Birmingham, England")<br />
** Uses <code>class="label"</code> for non-hCard purpose.<br />
<br />
<br />
=== ufXtract ===<br />
* [http://lab.backnetwork.com/ufXtract/ ufXtract] implements [[parsing]] of microformats such as [[hCard]] and [[XFN]].<br />
** by [[implementors#Glenn_Jones|Glenn Jones]] of [[implementors#Madgex|Madgex]]. See [http://www.glennjones.net/Post/831/ufXtractmicroformatsparser.htm blog post announcement].<br />
<br />
=== Upcoming.org ===<br />
* [http://upcoming.org Upcoming.org] - hCalendar support in events listings and individual events.<br />
** by [[implementors#Andy_Baio|Andy Baio]], [[implementors#Leonard_Lin|Leonard Lin]], [[implementors#Gordon_Luk|Gordon Luk]]<br />
<br />
<br />
=== vCardExplorer ===<br />
* [http://vcardexplorer.corefault.de/ vCardExplorer for MacOSX] - browses local vcards and converts hcards from URLs.<br />
<br />
<br />
=== WindowsLiveWriter ===<br />
* [[implementors#Microsoft|Microsoft's]] WindowsLiveWriter (WLW) [http://gallery.live.com/liveItemDetail.aspx?li=9751e563-1408-4fc3-8028-bd4351edb1fb&l=8 event plugin] supports [[hcalendar|hCalendar]].<br />
<br />
=== WordPress ===<br />
*See [[wordpress]].<br />
<br />
<br />
=== X2V ===<br />
* Brian Suda has created several XSLT files to extract microformats from HTML. From that the [http://suda.co.uk/projects/X2V/ X2V] webservice/favelet emerged. The XSLT and favelet extracts [[hcard|hCard]] and to produces .vcf (vCard) files and [[hcalendar|hCalendar]] to produce .ics (iCal) files. Also in the labs is a universal XMDP validator and a site-wide search spider that recognizes 'no-follow', 'license' and other microformats so they can be used in a more semantic way when displaying search results.<br />
** by [[implementors#Brian_Suda|Brian Suda]]<br />
<br />
=== XWiki ===<br />
* [http://xwiki.org XWiki] (as of [http://www.xwiki.org/xwiki/bin/view/Main/ReleaseNotesXWiki10Beta5 version 10Beta5]) publishes the user profiles using [[hcard | hCard]], the events in the calendar application using [[hCalendar | hCalendar]], the blog entries using [[hAtom | hAtom]] and homepage links using [[rel-home | rel-home]].<br />
<br />
<br />
=== Yahoo Creative Commons Search ===<br />
* [http://search.yahoo.com/cc/ Yahoo Creative Commons Search] - supports [[rel-license]] specifically to search for Creative Commons licensed content.<br />
<br />
=== Yahoo Local ===<br />
* [http://local.yahoo.com Yahoo local] supports [[hcard|hCard]], [[hcalendar|hCalendar]], and [[hreview|hReview]].<br />
<br />
=== Yahoo Tech ===<br />
* [http://tech.yahoo.com Yahoo! Tech] supports [[hreview|hReview]].<br />
<br />
=== Yahoo UK Movies ===<br />
* [http://movies.yahoo.co.uk Yahoo! UK Movies] supports [[hreview|hReview]].<br />
** by Mark Norman Francis<br />
<br />
=== Yedda ===<br />
* [http://yedda.com Yedda] supports [[hcard|hCard]] for exposing users information, [[hatom|hAtom]] for exposing data that is already exposed via feeds (like list of questions and answers) and [[rel-tag|rel-tag]] for every tag used to tag questions and users.<br />
<br />
<br />
== Validators ==<br />
This is an alphabetical listing of tools that have been created to validate implementations, and which formats they support.<br />
<br />
Please add to this section if you have a validator/checker, no matter which or how many microformats you test for.<br />
<br />
=== rel-lint ===<br />
* [http://tools.microformatic.com/help/xhtml/rel-lint/ rel-lint] supports validation of [[rel-tag|rel-tag]] and [[xfn|XFN]] <br />
* by [[implementors#Drew_McLellan|Drew McLellan]]<br />
<br />
<br />
== Companies / Developers / Organizations ==<br />
See [[implementors]]<br />
<br />
The following have been moved from the sections above due to problems, stated below:<br />
<br />
=== Web Essentials ===<br />
* [http://we05.com/ Web Essentials] - supports [[hcard|hCard]] and [[hcalendar|hCalendar]], e.g. in their [http://we05.com/presenters.cfm list of presenters] and [http://we05.com/program.cfm program schedule].<br />
** John McKerrell tried to look at the site on 24th October 2006 but could not access the site, server didn't seem to be up.<br />
** As of 2008-02-22, domain is expired. [[User:AndyMabbett|Andy Mabbett]] 05:12, 22 Feb 2008 (PST)<br />
<br />
== Other ==<br />
Some notes on initial thoughts around [[implementation-guidelines|Guidelines and Strategies for Implementing Microformats]]</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=xfn-implementations&diff=26643xfn-implementations2008-02-21T23:54:46Z<p>AndyMabbett: /* new implementations */ Add to the *top* of this list</p>
<hr />
<div><h1> XFN Implementations </h1><br />
{{TOC-right}}<br />
In addition to the [http://gmpg.org/xfn/tools XFN Tools] page, this page contains more more recent implementations.<br />
<br />
== new implementations ==<br />
The following implementations have been developed which either generate or parse [http://gmpg.org/xfn XFN relationship links]. If you have an XFN implementation, feel free to add it to the '''top''' of this list.<br />
<!--<br />
<br />
Add to the *top* of this list<br />
<br />
--><br />
* [http://donpark.org:3301/ XFN friend finder] by Don Park ([http://twitter.com/donpdonp/statuses/740869022 announcement]).<br />
* [http://textcube.org TextCube] Blogging tool TextCube version 1.6(current Beta-phase) will support xfn enabled blog roll.<br />
* [http://code.google.com/apis/socialgraph/ Google Social Graph API] uses XFN data from public Web sites as its main data source.<br />
<!--<br />
<br />
Add to the *top* of this list<br />
<br />
--><br />
=== appear old or unverifiable ===<br />
These sites appear to be too old, and or perhaps broken (like PHP error dump).<br />
* [http://tagalag.com Tagalag] Tagalag [http://tagalag.com/tools.html#xfn supports] a partial XFN vocabulary.<br />
<br />
== update streams and pingers ==<br />
* [http://updates.elsewhere.im/ SixApart Relationship Update Stream] - launched 2007-10-19<br />
<br />
== authoring publishing ==<br />
The following tools, plugins, and extensions enable authors to eaily create and publish XFN links:<br />
* [http://icite.net/develop/software.html#ll4blojsom LL4blojsom] is the LinkList plugin for the [http://blojsom.sf.net blojsom] blog engine. blojsom, written in Java, is the open source application behind the Tiger Weblog Server that is part of OS X server. The LL4blojsom plugin is used for creating XFN blogrolls.<br />
* [http://www.zachinglis.com/projects/xfn-rel-creator/ XFN rel Creator] This script replaces any links within the designated tags and replaces them with a visual representation of the links. Default set as abbrevations but with CSS it is easy to replace them for images.<br />
* [http://www.wordpress.org/ WordPress] has XFN support built-in to its Link Manager function, which is used for generating blogrolls. When in the administrative interface, choose the Links top-level menu item, then choose Add Link. The link form lets you choose which XFN properties you wish the link to have. When displaying the links on the site via any of the standard WordPress template tags, it will automatically format it with the appropriate tags in the rel attribute. (based on [http://gmpg.org/xfn/creator XFN Creator])<br />
* [http://www.communityserver.org/ Community Server] has XFN support in its blog Link Lists. It allows you to select which XFN tag(s) to use for each link.<br />
* [http://www.webstandards.org/action/dwtf/microformats/ Dreamweaver Extension suite] from the [http://webstandards.org/ Web Standards Project] enables the authoring of XFN links from within Dreamweaver 8.<br />
* [http://placenamehere.com/TXP/pnh_mf/ pnh_mf] is a plugin for [http://textpattern.com/ Textpattern] that supports embedding XFN and other microformats in templates and blog posts. Written by [http://placenamehere.com/ Chris Casciano].<br />
* [http://www.zachinglis.com/projects/xfn-rel-creator/ XFN rel Creator] This script replaces any links within the designated tags and replaces them with a visual representation of the links. Default set as abbrevations but with CSS it is easy to replace them for images.<br />
== friends lists ==<br />
Numerous services support both XFN friends lists, and even better XFN+[[hcard|hCard]] friends lists.<br />
* See [[hcard-xfn-friends-lists|hCard+XFN friends lists]].<br />
<br />
== rel me identity equivalency ==<br />
* [http://wordpress.org/extend/plugins/yadis/ YADIS plugin] supports OpenID delegation links that are also compatible XFN rel-me links.<br />
* [http://wink.com Wink] supports rel-me (see [http://wink.com/beach--profile])<br />
** '''suboptimal''': uses "nofollow me" where it should just use "me". User entered profile information is first party, not 3rd party, and therefore should not be labeled with [[rel-nofollow]].<br />
<br />
== validators ==<br />
* [http://tools.microformatic.com/help/xhtml/rel-lint/ rel-lint] by [[User:DrewMcLellan|Drew McLellan]] will validate existence of XFN attributes.<br />
<br />
== visualizers and browsers ==<br />
* [http://services.alphaworks.ibm.com/manyeyes/view/SNnqRHsOtha6i5-m6iGTH2- XFN visualization] example at IBM's Many Eyes<br />
* [http://xfngraph.sourceforge.net XFN Graph] — a multi-platform Java-based tool which creates spider diagrams of XFN relationships from any given starting URL.<br />
* [http://xfnroll.new-bamboo.co.uk/people/popular XFNRoller] (to be lifestalker.com) XFN spider and browser focused on using blogs to represent individuals. Exports OPML of feeds for lists such as top 10 most popular people.<br />
<br />
== search ==<br />
* [http://xfnsearch.joshpeek.com/ XFN Search] (appears to require HTTP-authentication login)<br />
<br />
== See Also ==<br />
{{xfn-related-pages}}</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=figure&diff=25829figure2008-02-21T19:29:52Z<p>AndyMabbett: /* Include Pattern and ABBR Pattern */ more rfc2119 templates</p>
<hr />
<div><h1>figure <small style="font-size:80%">0.1</small></h1><br />
{{TOC-right}}<br />
<br />
== Specification ==<br />
<br />
'''This is a DRAFT specification.'''<br />
<br />
<div class="vcard"><br />
; <span class="role">Editor</span> <br />
: <span class="fn">[[User:TobyInk|Toby Inkster]]</span> (<span class="url">http://tobyinkster.co.uk/</span>)<br />
</div><br />
; Author: Toby Inkster (affiliations above)<br />
<br />
; Acknowledgements: See [[figure#Inspiration_and_Acknowledgements|acknowledgements]].<br />
<br />
[[figure#Copyright|Copyright]] and [[figure#Patents|patents]] statements apply.<br />
<br />
== Introduction ==<br />
<br />
Many HTML documents include supporting images, such as photographs, flow charts, graphs, blueprints or screen captures. These are usually incorporated using the HTML &lt;img> element, however this offers no way of differentiating between such supplementary content and mere decorative images.<br />
<br />
Authors often wish to annotate these images with captions or attributions. Currently there is no markup to explicitly associate such text with an image and readers must rely on the proximity of the image and text on the finished rendered page.<br />
<br />
This specification aims to allow authors to mark up captions and credits, explicitly associating them with an image.<br />
<br />
{{rfc-2119-intro}}<br />
<br />
== Format ==<br />
<br />
=== Root Class ===<br />
The root class name for a figure is "figure".<br />
<br />
=== Properties ===<br />
The properties of the figure are represented by elements within the figure. Elements with class names of the listed properties represent the values of those properties.<br />
<br />
'''Required:'''<br />
* '''image''' (exactly one occurrence)<br />
<br />
Optional:<br />
* legend ? (zero or one occurrence)<br />
* credit * (zero or more occurrence)<br />
* subject * (zero or more occurrence)<br />
<br />
Additionally, an figure {{may}} contain zero or more links marked up with [[rel-tag]] and {{may}} contain zero or more links marked up with [[rel-license]].<br />
<br />
If an element with class "credit" also has class "vcard" then the element {{should}} be considered to be the [[hcard]] for a credited person or organisation. Otherwise it MUST be considered as a plain text credit.<br />
<br />
If an element with class "subject" also has a class "vcard" then the element {{should}} be considered to be the [[hcard]] for the subject of the image - for example a person in a photograph or sketch. If an element with class "subject" also has a class "adr" or "geo" then the element should be considered to be the [[adr|address]] or [[geo|geographic location]] of the subject of the photo - for example the location of a landscape in a photo or the address of a the building shown in blueprints. If an element with class "subject" also has a class "vevent" then the element should be considered to be the [[hcalendar|vevent]] for the subject of a photo - for example a photograph of a sporting event, or a diagram of a military operation.<br />
<br />
The subject, credit, tags and licence may be children of the legend, in which case the text within them forms part of the legend as well as part of the child elements.<br />
<br />
=== Example ===<br />
<br />
<pre><br />
<div class="figure"><br />
<img class="image" src="photo.jpeg" alt=""><br />
<p class="legend"><br />
<a rel="tag" href="http://en.wikipedia.org/wiki/Photography">Photo</a><br />
of <span class="subject">Albert Einstein</span> by<br />
<span class="vcard credit"><br />
<span class="fn">Paul Ehrenfest</span><br />
(<span class="role">photographer</span>)<br />
</span><br />
</p><br />
</div><br />
</pre><br />
<br />
Parsed as:<br />
<br />
* '''Image''': photo.jpeg<br />
* '''Legend''': Photo of Albert Einstein by Paul Ehrenfest<br />
* '''Credit''': Paul Ehrenfest (hCard)<br />
* '''Subject''': Albert Einstein<br />
* '''Categories''': Photography<br />
* '''License''': (unspecified)<br />
<br />
=== Include Pattern and ABBR Pattern ===<br />
<br />
The [[include-pattern|include pattern]] {{may}} be used within figures. As the figure microformat does not specify any properties that are not human-readable, the [[abbr-design-pattern|abbr design pattern]] {{should-not}} be used directly within a figure, though it {{may}} be used within children formatted in accordance to another microformat - e.g. as [[hcalendar|vevents]] often use the abbr design pattern to specify their start time, a figure subject formatted as a vevent {{may}} use the abbr design pattern in accordance with the [[hcalendar]] specification.<br />
<br />
== Minimisation ==<br />
<br />
To simplify markup, a number of shortcuts are explicitly allowed by this specification.<br />
<br />
# When no "image" class is found within the figure, the first &lt;img> element {{must}} be taken to be the image.<br />
# If the "legend" class is found on the same element as the "image" class (or the image inferred by the previous rule), then the contents of the title attribute {{must}} be used as the legend.<br />
# The "image" and/or "legend" classes may be attached to the same element as the element with the "figure" class.<br />
<br />
=== Examples ===<br />
<br />
The following examples {{must}} all be considered equivalent:<br />
<br />
<pre><br />
<div class="figure"><br />
<img class="image" src="foo.jpeg" alt=""><br />
<span class="legend">Foo</span><br />
</div><br />
</pre><br />
<br />
<pre><br />
<div class="figure"><br />
<img src="foo.jpeg" alt=""><br />
<span class="legend">Foo</span><br />
</div><br />
</pre><br />
<br />
<pre><br />
<div class="figure"><br />
<img class="legend" src="foo.jpeg" alt="" title="Foo"><br />
</div><br />
</pre><br />
<br />
<pre><br />
<img class="figure legend" src="foo.jpeg" alt="" title="Foo"><br />
</pre><br />
<br />
== Inspiration and Acknowledgments ==<br />
<br />
* [http://www.w3.org/html/wg/html5/ HTML 5 Draft Specification]<br />
* [[figure-examples]] (various authors)<br />
<br />
== Copyright ==<br />
This specification is released into the public domain.<br />
<br />
{{MicroFormatPublicDomainContributionStatement}}<br />
<br />
== Patents ==<br />
{{MicroFormatPatentStatement}}<br />
<br />
==See also==<br />
*[[figure-examples]]<br />
*[[figure-formats]]<br />
*[[figure-brainstorming]]</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=figure&diff=25824figure2008-02-21T19:21:42Z<p>AndyMabbett: See also; use rfc2119 templates; rm micro-font</p>
<hr />
<div><h1>figure <small style="font-size:80%">0.1</small></h1><br />
{{TOC-right}}<br />
<br />
== Specification ==<br />
<br />
'''This is a DRAFT specification.'''<br />
<br />
<div class="vcard"><br />
; <span class="role">Editor</span> <br />
: <span class="fn">[[User:TobyInk|Toby Inkster]]</span> (<span class="url">http://tobyinkster.co.uk/</span>)<br />
</div><br />
; Author: Toby Inkster (affiliations above)<br />
<br />
; Acknowledgements: See [[figure#Inspiration_and_Acknowledgements|acknowledgements]].<br />
<br />
[[figure#Copyright|Copyright]] and [[figure#Patents|patents]] statements apply.<br />
<br />
== Introduction ==<br />
<br />
Many HTML documents include supporting images, such as photographs, flow charts, graphs, blueprints or screen captures. These are usually incorporated using the HTML &lt;img> element, however this offers no way of differentiating between such supplementary content and mere decorative images.<br />
<br />
Authors often wish to annotate these images with captions or attributions. Currently there is no markup to explicitly associate such text with an image and readers must rely on the proximity of the image and text on the finished rendered page.<br />
<br />
This specification aims to allow authors to mark up captions and credits, explicitly associating them with an image.<br />
<br />
{{rfc-2119-intro}}<br />
<br />
== Format ==<br />
<br />
=== Root Class ===<br />
The root class name for a figure is "figure".<br />
<br />
=== Properties ===<br />
The properties of the figure are represented by elements within the figure. Elements with class names of the listed properties represent the values of those properties.<br />
<br />
'''Required:'''<br />
* '''image''' (exactly one occurrence)<br />
<br />
Optional:<br />
* legend ? (zero or one occurrence)<br />
* credit * (zero or more occurrence)<br />
* subject * (zero or more occurrence)<br />
<br />
Additionally, an figure {{may}} contain zero or more links marked up with [[rel-tag]] and {{may}} contain zero or more links marked up with [[rel-license]].<br />
<br />
If an element with class "credit" also has class "vcard" then the element {{should}} be considered to be the [[hcard]] for a credited person or organisation. Otherwise it MUST be considered as a plain text credit.<br />
<br />
If an element with class "subject" also has a class "vcard" then the element {{should}} be considered to be the [[hcard]] for the subject of the image - for example a person in a photograph or sketch. If an element with class "subject" also has a class "adr" or "geo" then the element should be considered to be the [[adr|address]] or [[geo|geographic location]] of the subject of the photo - for example the location of a landscape in a photo or the address of a the building shown in blueprints. If an element with class "subject" also has a class "vevent" then the element should be considered to be the [[hcalendar|vevent]] for the subject of a photo - for example a photograph of a sporting event, or a diagram of a military operation.<br />
<br />
The subject, credit, tags and licence may be children of the legend, in which case the text within them forms part of the legend as well as part of the child elements.<br />
<br />
=== Example ===<br />
<br />
<pre><br />
<div class="figure"><br />
<img class="image" src="photo.jpeg" alt=""><br />
<p class="legend"><br />
<a rel="tag" href="http://en.wikipedia.org/wiki/Photography">Photo</a><br />
of <span class="subject">Albert Einstein</span> by<br />
<span class="vcard credit"><br />
<span class="fn">Paul Ehrenfest</span><br />
(<span class="role">photographer</span>)<br />
</span><br />
</p><br />
</div><br />
</pre><br />
<br />
Parsed as:<br />
<br />
* '''Image''': photo.jpeg<br />
* '''Legend''': Photo of Albert Einstein by Paul Ehrenfest<br />
* '''Credit''': Paul Ehrenfest (hCard)<br />
* '''Subject''': Albert Einstein<br />
* '''Categories''': Photography<br />
* '''License''': (unspecified)<br />
<br />
=== Include Pattern and ABBR Pattern ===<br />
<br />
The [[include-pattern|include pattern]] MAY be used within figures. As the figure microformat does not specify any properties that are not human-readable, the [[abbr-design-pattern|abbr design pattern]] {{should-not}} be used directly within a figure, though it MAY be used within children formatted in accordance to another microformat - e.g. as [[hcalendar|vevents]] often use the abbr design pattern to specify their start time, a figure subject formatted as a vevent {{may}} use the abbr design pattern in accordance with the [[hcalendar]] specification.<br />
<br />
== Minimisation ==<br />
<br />
To simplify markup, a number of shortcuts are explicitly allowed by this specification.<br />
<br />
# When no "image" class is found within the figure, the first &lt;img> element {{must}} be taken to be the image.<br />
# If the "legend" class is found on the same element as the "image" class (or the image inferred by the previous rule), then the contents of the title attribute {{must}} be used as the legend.<br />
# The "image" and/or "legend" classes may be attached to the same element as the element with the "figure" class.<br />
<br />
=== Examples ===<br />
<br />
The following examples {{must}} all be considered equivalent:<br />
<br />
<pre><br />
<div class="figure"><br />
<img class="image" src="foo.jpeg" alt=""><br />
<span class="legend">Foo</span><br />
</div><br />
</pre><br />
<br />
<pre><br />
<div class="figure"><br />
<img src="foo.jpeg" alt=""><br />
<span class="legend">Foo</span><br />
</div><br />
</pre><br />
<br />
<pre><br />
<div class="figure"><br />
<img class="legend" src="foo.jpeg" alt="" title="Foo"><br />
</div><br />
</pre><br />
<br />
<pre><br />
<img class="figure legend" src="foo.jpeg" alt="" title="Foo"><br />
</pre><br />
<br />
== Inspiration and Acknowledgments ==<br />
<br />
* [http://www.w3.org/html/wg/html5/ HTML 5 Draft Specification]<br />
* [[figure-examples]] (various authors)<br />
<br />
== Copyright ==<br />
This specification is released into the public domain.<br />
<br />
{{MicroFormatPublicDomainContributionStatement}}<br />
<br />
== Patents ==<br />
{{MicroFormatPatentStatement}}<br />
<br />
==See also==<br />
*[[figure-examples]]<br />
*[[figure-formats]]<br />
*[[figure-brainstorming]]</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=vote-links&diff=26471vote-links2008-02-21T19:11:35Z<p>AndyMabbett: /* Examples in the wild */ Add new items to the top of the list</p>
<hr />
<div>= Vote Links =<br />
__TOC__<br />
== Specification 2005 ==<br />
=== Editor ===<br />
* [http://tantek.com/ Tantek Çelik] ([http://technorati.com Technorati, Inc.], formerly of [http://microsoft.com/ Microsoft Corporation])<br />
<br />
=== Concept ===<br />
* [http://epeus.blogspot.com/ Kevin Marks] ([http://technorati.com Technorati, Inc.])<br />
<br />
=== Authors ===<br />
* [http://epeus.blogspot.com/ Kevin Marks] ([http://technorati.com Technorati, Inc])<br />
* [http://tantek.com/ Tantek Çelik] ([http://technorati.com Technorati, Inc])<br />
<br />
=== Copyright ===<br />
{{MicroFormatPublicDomainContributionStatement}}<br />
* [[User:Tantek|Tantek]]: I release all my contributions to this specification into the public domain and I encourage the other authors to do so as well.<br />
* [[User:Kevin_Marks|Kevin Marks]]: I release all my contributions to this specification into the public domain and I encourage the other authors to do so as well.<br />
<br />
=== Patents ===<br />
{{MicroFormatPatentStatement}}<br />
<br />
=== Inspiration and Acknowledgments ===<br />
Thanks to everyone who has given feedback on VoteLinks. Thanks especially to EtanWexler, who provided the first really good documentation that VoteLinks should be using 'rev' instead of 'rel' (see [[VoteLinksFAQ]]), and John Allsopp who similarly challenged the use of 'rel', and helped co-author the [[RelFAQ]] exploring questions and issues about the use of the HTML4 'rel', 'rev' attributes and linktypes in general.<br />
<br />
== Introduction ==<br />
Indexing and tracking applications treat all links as endorsements, or expressions of support. This is a problem, as we need to link to those we disagree with as well, to discuss why.<br />
<br />
== Specification ==<br />
VoteLinks is an [[elemental-microformat|elemental microformat]], one of several [[microformats|microformat]] open standards.<br />
We propose a set of three new values for the rev attribute of the <a> (hyperlink) tag in HTML.<br />
<br />
The new values are &quot;vote-for&quot; &quot;vote-abstain&quot; or &quot;vote-against&quot;, which are mutually exclusive, and represent agreement, abstention or indifference, and disagreement respectively.<br />
<br />
A link without an explicit vote 'rev' value is deemed to have value &quot;vote-for&quot; or &quot;vote-abstain&quot;, depending on the application.<br />
<br />
Additional human-readable commentary can be added using the existing 'title' attribute, which most browsers show as a rollover.<br />
<br />
Examples:<br />
<pre><nowiki><br />
<a rev=&quot;vote-for&quot; href=&quot;http://ragingcow.blogspot.com&quot; <br />
title=&quot;neat spoof&quot;>Raging Cow</a><br />
<a rev=&quot;vote-against&quot; href=&quot;http://ragingcow.com&quot; <br />
title=&quot;nasty corn syrup drink&quot;>Raging Cow</a><br />
</nowiki></pre><br />
<br />
=== Deprecated: Using 'rel' for VoteLinks ===<br />
A previous draft of the specification used the 'rel' value instead of the 'rev' attribute. Analysis and feedback has demonstrated this to have been inappropriate use of the 'rel' attribute, when the 'rev' attribute was much more important. See the [[RelFAQ]] for more details.<br />
<br />
Implementations MAY support links with the VoteLinks values in the 'rel' attribute for backward compatibility with any existing VoteLinks content.<br />
<br />
Authors MUST NOT use 'rel' for VoteLinks values.<br />
<br />
== XMDP profile ==<br />
<pre><nowiki><br />
<dl class=&quot;profile&quot;><br />
<dt id=&quot;rev&quot;>rev</dt><br />
<dd><p><a rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/html401/struct/links.html#adef-rev&quot;><br />
HTML4 definition of the 'rev' attribute.</a> <br />
Here are some additional values.</p><br />
<dl><br />
<dt id=&quot;vote-for&quot;>vote-for</dt><br />
<dd>Indicates agreement with or recommendation for the referred resource.</dd><br />
<dt id=&quot;vote-abstain&quot;>vote-abstain</dt><br />
<dd>Indicates abstention or indifference for the referred resource.</dd><br />
<dt id=&quot;vote-against&quot;>vote-against</dt><br />
<dd>Indicates disagreement with or recommendation against the referred resource.</dd><br />
</dl><br />
</dd><br />
</dl><br />
</nowiki></pre><br />
<br />
== Implementations ==<br />
This section is '''informative'''.<br />
* Following a [http://jyte.com/cl/jyte-should-integrate-microformats-votelinks vote-links claim] [http://jyte.com/profile/brianellin.com Brian Ellin] implemented vote-links on [http://jyte.com Jyte] within less than 30 minutes.<br />
* [http://moloko.itc.it/paoloblog/ Paolo Massa] created [http://moloko.itc.it/paoloblog/semantic_links/ SemanticLinks], a small Firefox extension that shows vote-for, vote-against links information. (Note the download links for SemanticLinks have been removed by the author.)<br />
* Wordpress VoteBack (vote-link aware pingback and trackback) plugin is in testing at [http://redmonk.net/archives/2006/12/21/voteback/ VoteBack] ([[User:SteveIvy|Steve Ivy]]) - looking for testers!<br />
* [[User:WilleRaab|I've]] created a small and ''very'' simple [http://www.greasespot.net Greasemonkey] script for parsing [[vote-links]] [[http://wille.sassur.net/lekstuga/vote-links.user.js script]|[http://wille.sassur.net/lekstuga/vote-links.html testpage]]<br />
* [http://folksr.de/ Folksr.de] - using VoteLinks to vote on the World Cup 2006<br />
<br />
== Examples in the wild ==<br />
This section is '''informative'''.<br />
<br />
The following sites have implemented VoteLinks , and thus are a great place to start for anyone looking for examples "in the wild" to try parsing, indexing, organizing etc. If your site marked up with VoteLinks, feel free to add it to the top of this list. Once the list grows too big, we'll make a separate wiki page.<br />
<!--<br />
<br />
Add new items to the top of the list<br />
<br />
--><br />
* Christian Hess uses CSS styles at his Hess-cr.com site (in Spanish) to highlight "vote-against" links, [http://www.hess-cr.com/secciones/humanismo/nacion-040511evolu.shtml like in this article]. Note: you must be using a modern, standards-compatible browser, such as Firefox or Opera.<br />
* [http://tommorris.org/blog/ Tom Morris] has vote links on del.icio.us links (based on tags "vote-for", "vote-against" and "vote-abstain").<br />
<!--<br />
<br />
Add new items to the top of the list<br />
<br />
--><br />
<br />
== References ==<br />
<br />
=== Normative References ===<br />
* [http://gmpg.org/xmdp/ XMDP]<br />
<br />
=== Informative References ===<br />
* [http://www.artweb-design.de/articles/2006/06/05/distributed-votings-using-microformats Distributed votings using microformats] from Artweb Design<br />
* [http://24ways.org/2006/boost-your-hyperlink-power Boost Your Hyperlink Power] - Jeremy Keith, using CSS to surface vote information<br />
<br />
== Related Work ==<br />
* [[xoxo]]<br />
* [http://gmpg.org/xfn/ XFN]<br />
* [http://developers.technorati.com/wiki/attentionxml Attention.xml]<br />
* [[rellicense]]<br />
* [[reltag]]<br />
* [[relnofollow]]<br />
<br />
== FAQ ==<br />
* See [[vote-links-faq]] and the broader [[rel-faq]].<br />
* See also [[vote-links-issues]] for issues which have been raised with the votelinks [[microformat]].</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=User_talk:DavidNeudorfer&diff=34080User talk:DavidNeudorfer2008-02-20T15:53:39Z<p>AndyMabbett: fix</p>
<hr />
<div>{{welcome}}<br />
<br />
: [[User:AndyMabbett|Andy Mabbett]] 02:36, 19 Feb 2008 (PST)<br />
<br />
==Food==<br />
I've moved the content from the recently-created ''food-item-examples'' to the already-existing page at [[recipe-examples]].<br />
<br />
: [[User:AndyMabbett|Andy Mabbett]] 02:36, 19 Feb 2008 (PST)</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=User_talk:AngeloGladding&diff=34081User talk:AngeloGladding2008-02-20T15:53:10Z<p>AndyMabbett: fix</p>
<hr />
<div>{{welcome}}<br />
<br />
: [[User:AndyMabbett|Andy Mabbett]] 02:36, 19 Feb 2008 (PST)<br />
<br />
==Food==<br />
I've moved the content from the recently-created ''food-item-examples'' to the already-existing page at [[recipe-examples]].<br />
<br />
: [[User:AndyMabbett|Andy Mabbett]] 02:36, 19 Feb 2008 (PST)</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=User_talk:BenBoyle&diff=34072User talk:BenBoyle2008-02-20T15:52:38Z<p>AndyMabbett: </p>
<hr />
<div>{{welcome}}<br />
<br />
: [[User:AndyMabbett|Andy Mabbett]] 07:52, 20 Feb 2008 (PST)</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=citation-faq&diff=31823citation-faq2008-02-20T15:51:28Z<p>AndyMabbett: /* Questions */ correct terminology</p>
<hr />
<div><h1> Citation format frequently asked questions (FAQ) </h1><br />
<br />
The work in progress on a [[citation]] microformat includes [[citation-examples]], [[citation-formats]], and [[citation-brainstorming]]. This page is here to capture general questions about the work being done to create a citation microformat.<br />
<br />
__TOC__<br />
<br />
== Questions ==<br />
<br />
* ''What is the difference between [[hreview|hReview]] and a Citation format?''<br />
** A citation is actually very different from a review, and even although a review could be said to contain a citation to the item being reviewed, in practice, the two are very different.<br />
* ''Why not just use [[hcard|hCard]]?''<br />
** A citation typically does reference (at least) a person or organization which should absolutely be marked up with an hCard, but there are additional semantics, like author or publisher, that are beyond a simple hCard, and perhaps name of the work (title) as well which need to be captured into a single microformat so that it can be identified as a logical chunk of citation information.<br />
* ''Citations usually contain two parts--a notice that the material is a quoted or paraphrased from a source, and a reference to the location of that source. It seems like we're attempting to do both simultaneously should we make more of an effort to differentiate the two?''<br />
** You seem to be mixing citation and quotation. The material that is quoted is typically called the ''quotation'' while the reference to the location of that source is the ''citation''. That is the differentiation between the two.<br />
* ''Why not use the &lt;cite> element?''<br />
** TBA<br />
<br />
== See also ==<br />
{{citation-related-pages}}</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=vcard-suggestions&diff=25999vcard-suggestions2008-02-20T10:24:53Z<p>AndyMabbett: /* Last-Modified */ strike out duplicate</p>
<hr />
<div><h1> vCard suggestions </h1><br />
<br />
As a result of experience using [[hcard|hCard]] to markup people, organizations, and contact information in general on [[hcard-examples-in-wild|real world websites]], we have discovered a few aspects of {{RFC2426}} vCard that could be improved. Thus we are documenting suggestions for improving vCard here as we find them, organized by {{RFC2426}} properties, with a "new" section for new properties.<br />
<br />
; Authors <br />
:[[User:Tantek|Tantek Çelik]]<br />
:[[User:AndyMabbett|Andy Mabbett]]<br />
<br />
;Shortcut<br />
:This page may be referenced as '''<nowiki>http://microformats.org/wiki/vs</nowiki>'''<br />
<br />
== Suggestions for Existing Properties ==<br />
<br />
Suggestions for improvement could include new features and other such more major changes to the specification, organized under headings that reflect RFC 2426 vCard section numbers and heading. For documentation of errors, corrections, errata for vCard, please see [[vcard-errata]].<br />
<br />
=== <span id="3.3.1_TEL_Type_Definition">TEL Type Definition</span> === <!--span preserves former ID--><br />
<br />
:'''See: {{RFC2426}} section 3.3.1<br />
<br />
* The "type" for "TEL" lacks a "textphone" option (for the devices used by, e.g., people who are deaf or have speech difficulties. Example: [http://www.birmingham.gov.uk/contact Birmingham City Council (303 1119)]. It may be good to consider adding a "textphone" value to the "type" for "TEL".<br />
** +0 Tantek: I think a rethinking of the taxonomy of TEL types is merited, but I am uncertain whether it is worth growing the existing limited taxonomy or instead permitting user defined TEL types and thus allowing for natural evolution of a folksonomy of TEL types.<br />
** +1 [[User:AndyMabbett|Andy Mabbett]]: There are a limited number of types. Note also the cell vs. mobile issue.<br />
* The "type" for "TEL" lacks a "freephone" option. It may be good to consider adding a "freephone" value to the "type" for "TEL". Usually freephone numbers are not accessible from outside the country so it could help parsers with something?<br />
* The "type" for "TEL" lacks an "SMS short code" option. (Raised in [http://microformats.org/discuss/mail/microformats-discuss/2008-January/011292.html e-mail, 2008-01-08 by Michael Smethurst])<br />
** Seems like 'sms' TEL TYPE is a viable implementation option --[[User:Guillaume Lebleu|Guillaume]] 12:17, 8 Jan 2008 (PST).<br />
* FYI. Some existing Personal Information Manager software practices:<br />
** Mac OS X address book allows custom labels for TEL but not custom TEL TYPE per se, although for the user a custom TEL label just looks like a TEL TYPE <br />
** Microsoft Outlook does not allow custom TEL TYPE values. Also, Microsoft Outlook has a "Company" telephone type, but unfortunately it isn't mapped to anything in vCard i.e. if you export a contact with a company tel, it is lost.<br />
** Windows Mobile 6 displays SMS as a service that is only available if the telephone type is 'mobile'.<br />
** Thunderbird 2 (Mac) does not allow custom TEL TYPE values.<br />
<br />
Note: it might be a good idea to look at the [http://tools.ietf.org/html/draft-ietf-iptel-tel-reg-04 proposed registry for "tel:" URI parameters]; especially the [http://tools.ietf.org/html/rfc3966 "phone-context" URI parameter], since it tries to solve a similar problem. (per [http://microformats.org/discuss/mail/microformats-discuss/2008-January/011295.html e-mail, 2008-01-08]).<br />
<br />
=== <span id="3.3.2_EMAIL_Type_Definition">EMAIL Type Definition</span> === <!--span preserves former ID--><br />
<br />
:'''See: {{RFC2426}} section 3.3.2'''<br />
<br />
* The "type" for "EMAIL" lacks distinction for various types of email, e.g. '''work''' or '''home'''.<br />
* The "type" for "EMAIL" lacks distinction for give an alternative to the e-mail like a contact form.<br />
<br />
===URL Type Definition===<br />
<br />
:'''See: {{RFC2426}} section 3.6.8'''<br />
<br />
* The "type" for "URL" lacks distinction for various types of URL, e.g. '''work''' or '''home'''.<br />
* In particular there should be a "type" (or other indicator) for a URL used as an [[OpenID]].<br />
<br />
=== Suggestions for New Sub-properties ===<br />
<!-- sorted by property section number, then alphabetically by proposed sub-property--><br />
====Initials====<br />
"N" (See {{RFC2426}} section 3.1.2) sub-property; for people, whose given-name is not stated (e.g. "A. N. Other", whose given name might be, say, "Adrian" or "Nigel"); to allow values like:<br />
<br />
<pre><br />
initials: A. N.<br />
family-name: Other<br />
</pre><br />
<br />
instead of the more contrived:<br />
<br />
<pre><br />
given-name: A. N.<br />
family-name: Other<br />
</pre><br />
<br />
Also, for people whose given-name ''and'' initials are given:<br />
<br />
<pre><br />
given-name: Theophilus<br />
middle-initials: P.<br />
family-name: Wildebeest<br />
</pre><br />
<br />
and:<br />
<br />
<pre><br />
initials: J.<br />
given-name: Paul<br />
family-name: Getty<br />
</pre><br />
<br />
====Body====<br />
"ADR" (See {{RFC2426}} section 3.2.1) sub-property; for people (e.g. in proposed moon base, Mars expedition) or places (e.g. lunar crater, Martian mountain) off-planet.<br />
* See also [[geo-extension-nonWGS84]]<br />
<br />
====Continent====<br />
"ADR" (See {{RFC2426}} section 3.2.1) sub-property; self-explanatory.<br />
<br />
====Vessel====<br />
"ADR" (See {{RFC2426}} section 3.2.1) sub-property; for people on, say, ships, live-aboard boats, oil rigs, and even space vehicles (e.g. the ISS)<br />
<br />
====Elevation====<br />
"GEO" (See {{RFC2426}} section 3.4.2) sub-property; aka "altitude" or "depth".<br />
*See [[geo-extension-elevation]]<br />
<br />
====Schema====<br />
"GEO" (See {{RFC2426}} section 3.4.2) sub-property; for coordinates using non-WGS84 schema (terrestrial and for other bodies)<br />
* See also [[geo-extension-nonWGS84]]<br />
<br />
====Language====<br />
Some (e.g. note) if not all properties should have a "language" attribute, similar to <code>lang</code> in HTML so that agents can determine how to render, and if applicable, pronounce, them.<br />
<br />
== Suggestions for New Properties ==<br />
<!--sorted alphabetically--><br />
<br />
===Alternative dates===<br />
<br />
For historic figures, where no birth and/ or death dates are known a "'''flourished'''" date, or "'''flourished from'''"+"'''flourished to'''" pair, would be useful.<br />
<br />
In genealogy, some people have no recorded birth date, but their "'''baptised'''" date is known.<br />
<br />
===<span id="Date of Death evidence">Deceased</span>=== <!--span preserves former ID--><br />
aka "date of death"<br />
*See [[hcard-date-of-death]]<br />
<br />
===Gender===<br />
*There is no vCard property for gender.<br />
**A workaround in hCard: add the tag/category "male", "female", etc. See also [[hcard-faq#How_is_gender_represented|earlier discussion]] and [[genealogy-brainstorming#Gender]].<br />
*** -1 Tantek: I think tags/categories are good enough for now.<br />
*** +1 [[User:AndyMabbett|Andy Mabbett]]:Tags are often not appropriate, as per the cited discussion.<br />
<br />
<span id="Gender evidence">See [[gender-examples]] and [[genealogy-brainstorming]]; note also [http://www.google.com/search?q=vCard.Gender Google search for "vCard.Gender"] .</span> <!--span preserves former ID--><br />
<br />
===Global Location Number===<br />
Global Location Number (GLN) - generally used in electronic commerce transactions [http://en.wikipedia.org/wiki/Global_Location_Number]. [[User:AndyMabbett|Andy Mabbett]] 06:43, 31 Aug 2007 (PDT)<br />
<br />
===Languages spoken===<br />
* ISO codes ?<br />
* Also ability to indicate preferred contact language(s)<br />
<br />
:Per [[User:FajRo|FajRo]]<br />
<br />
===Preferred method of contact===<br />
<br />
Telephone, cellphone, fax, post , e-mail, IM, SMS, IRC, Twitter, etc.<br />
<br />
:Per [[User:FajRo|FajRo]]<br />
<br />
===Subject differentiator===<br />
*A "type" for the vCard itself: person, organisation or place (or perhaps more granular; or user-defined)<br />
**In the [[hcard|hCard microformat]], the use of "fn" and "fn org" differentiate between hCards for people and for other entities, but we perhaps need some further differentiator, between, say, organisations and venues (including buildings, governmental divisions, waypoints, etc.) at a level of granularity to be determined. [[User:AndyMabbett|Andy Mabbett]] 14:30, 11 Jul 2007 (PDT)<br />
*** This may no longer be necessary for hCard; as the [[hcard-brainstorming#Named_locations|use of "fn [child-of-adr]"]], for venues and other places, has been proposed and is being debated (see [http://microformats.org/discuss/mail/microformats-discuss/2007-December/011169.html email of 2007-12-30]. [[User:AndyMabbett|Andy Mabbett]] 14:04, 8 Jan 2008 (PST)<br />
<br />
=== UN LOCCODE ===<br />
*[http://www.unece.org/cefact/locode/ UN/LOCODE], the United Nations Code for Trade and Transport Locations, is a geographic coding scheme developed and maintained by United Nations Economic Commission for Europe (UNECE), a unit of the United Nations. UN/LOCODE assigns codes to locations used in trade and transport with functions such as seaports, rail and road terminals, airports, post offices and border crossing points. <br />
**[http://en.wikipedia.org/wiki/UN/LOCODE UN/LOCODE on Wikipedia]<br />
<br />
===DCreated===<br />
The date and time that this vcard was created. If possible this should be mandatory even if left blank to encourage usage. This will allow tools to remove older vcard entries with old contact details for the same person.<br />
<br />
===Last-Modified===<br />
<s>The date and time that this vCard was last modified. Allows synchronization tools to detect only those vCard in a collection which have changed since the last synchronization or backup.</s> vCard already has a <code>REV</code> ("revised") property<br />
<br />
== Suggestions for handling encodings ==<br />
The vCard standard specifies that US-ASCII is assumed to be the encoding in the absence of a MIME content type header or a CHARSET parameter that indicates otherwise. This was an unfortunate choice. vCard .vcf files stored on a local filesystem do not contain a MIME header and the only way to reliably use an encoding other than ASCII is to tag each field with the "CHARSET=" label. This makes the vCard stream more complicated than necessary. This could be simplified by a revision of the standard that specifies UTF-8 as the default encoding. This could work safely with existing vCard .vcf files, which do not contain a MIME content header. The first vCard VERSION field would be the same encoded as either ASCII or UTF-8, so readers could easily determine which encoding to default to.<br />
<br />
Furthermore, those creating vCard readers should be encouraged to support vCard .vcf files that begin with a UTF-8 BOM sequence. If the first three bytes of the file are 0xEF 0xBB 0xBF, the text file is UTF-8 encoded, and the vCard reader should assume UTF-8 is the default. Unfortunately many readers today fail to recognize the UTF-8 BOM and view the file as a corrupt vCard.<br />
<br />
==Suggestions made elsewhere==<br />
<br />
===Attribute Exchange===<br />
* See [http://openid.net/specs/openid-attribute-exchange-1_0.html OpenID page on Attribute Exchange] and [[attribute-exchange]].<br />
<br />
===Instant Messaging===<br />
<br />
* See [http://www.rfc-editor.org/rfc/rfc4770.txt RFC4770: vCard Extensions for Instant Messaging (IM)]<br />
<br />
===WebDAV===<br />
<br />
[http://merlot.tools.ietf.org/html/draft-daboo-carddav-03 Extensions to WebDAV (CardDAV)]<br />
<br />
<blockquote>defines extensions to the Web Distributed Authoring and Versioning (WebDAV) protocol to specify a standard way of accessing, managing, and sharing contact information based on the vCard format. This document defines the "addressbook-access" feature of CardDAV.</blockquote><br />
<br />
===XEP-0154: User Profile===<br />
<br />
[http://www.xmpp.org/extensions/xep-0154.html XEP-0154: User Profile] specifies how to represent and manage profile data about IM users and other [http://en.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol Extensible Messaging and Presence Protocol] (XMPP) entities using the XMPP Data Forms extension. It has a far greater number of properties than vCard (possibly more than vCard will ever need), and reinvents and re-names some of the latter's properties, but may have some attributes worth considering for vCard.<br />
<br />
===FOAF Vocabulary Specification===<br />
*[http://xmlns.com/foaf/spec/ FOAF Vocabulary Specification 0.91] - Namespace Document 2 November 2007 - OpenID Edition<br />
<br />
==Note==<br />
On 2006-11-24, Paul Hoffman of the [http://www.imc.org/ Internet Mail Consortium], responsible for the development and promotion the vCard standard, wrote in response to an e-mail from [[User:AndyMabbett|Andy Mabbett]] informing him of this web page:<br />
<blockquote>There has been almost no interest in revising the vCard standard. This is due to lack of momentum, not the lack of good suggestions.</blockquote><br />
<br />
However, see [[events/2007-09-18-calconnect-vcard-workshop]] for an event with vCard modification on the agenda.<br />
<br />
== See Also ==<br />
<br />
* [[vcard-errata|vCard errata]]<br />
* [[vcard-implementations]]<br />
* [[hcard|hCard]]<br />
* [[hcard-brainstorming#Post_vCard_additions]]<br />
* [http://www.imc.org/imc-vcard/ vCard mailing list] - a place to raise these issues, and where similar issues can be found.<br />
* [[events/2007-09-18-calconnect-vcard-workshop]]<br />
* <span id="3.3.3_Suggestion_for_Types_Definition"3>A [[hcard-issues#tel-type-lang|comment on the language of TEL types]], moved because it was not vCard specific</span><!--span preserves former ID--><br />
<br />
<br />
Keywords: vcard, ietf, rfc, standard <!-- should be tags, when this wiki allows use of @rel --></div>AndyMabbetthttp://microformats.org/wiki/index.php?title=recipe-examples&diff=27304recipe-examples2008-02-19T19:20:19Z<p>AndyMabbett: /* The Crepe Vine */ rm extraneous mark-up</p>
<hr />
<div><h1> Recipe Examples </h1><br />
<br />
Per the microformats [[process]] this is an [[examples]] page documenting existing real world examples of actual ''tasty'' recipes published on the Web. Next steps are to research [[recipe-formats]] and then (only ''after'' that), proceed with [[recipe-brainstorming]]. Only URLs to actual recipes please.<br />
<br />
'''Please read both [[process]] and [[examples]] before editing this page.'''<br />
<br />
__TOC__<br />
<br />
== Contributors ==<br />
<br />
* [http://tantek.com/ Tantek Çelik]<br />
* [[User:RobertBachmann|Robert Bachmann]]<br />
* [[User:JeffMcNeill|jeffmcneill]]<br />
<br />
== Recipe Lists ==<br />
* [http://orens.com/stuff/recipes.html Steve and Aytek's recipes]. Note that they are simply using [[xoxo|XOXO]] for the lists. It doesn't appear that anything more is necessary for a list of recipes.<br />
* [http://www.myvegrecipes.com/category/main-dishes My Veg Recipes]. Also uses [[xoxo|XOXO]] for lists of recipes.<br />
* ...<br />
* ...<br />
<br />
== Recipes Examples ==<br />
<br />
=== Individuals ===<br />
<br />
==== Hamburger ====<br />
[http://en.wikibooks.org/wiki/Cookbook:Hamburger Wikibooks Cookbook:Hamburger]<br />
<br />
Composed of<br />
* Summary<br />
** Categories<br />
** Servings<br />
** Time<br />
** Rating<br />
** Energy<br />
** Image<br />
* Recipe<br />
** Description (text)<br />
** Ingredients (required/optional)<br />
** Procedure (OL)<br />
** Suggestions (text)<br />
** Notes, tips and variations (UL)<br />
** Categories<br />
<br />
==== Lentil Stew ====<br />
[http://1moon.com/recipes/mercimek.html Neriman’s Mercimek - Yummy Lentils]<br />
<br />
* Appears to be a simple BBEdit 5.0 conversion of a plain text file into HTML 3.2<br />
* Uses <code>&lt;br&gt;&lt;br&gt;</code> to delimit sections<br />
* Composed of:<br />
** author of recipe<br />
** title of recipe, with English translation<br />
** top level structure of time/instructions, with ingredients noted as necessary for each step<br />
** serving suggestion(s) (serve with ...)<br />
<br />
==== Mocha Brownie Cake ====<br />
[http://orens.com/stuff/recipe_data/mocha_brownie_cake.html Mocha Brownie Cake]<br />
<br />
* Composed of<br />
** title of recipe / food item (looks like a heading)<br />
** sequence of larger tasks (separated by subheadings), each of which has<br />
*** list of ingredients (uses <code>&lt;ul&gt;</code>) for a particular component of the dish<br />
*** preparation instructions for those ingredients<br />
*** OR a instructions for assembling components of the dish<br />
** contributing baker - perhaps someone who has modified the recipe?<br />
** source - citation of where recipe originally came from<br />
<br />
==== A Moroccan-ish Casserole ====<br />
[http://www.simonwheatley.co.uk/2006/03/26/a-moroccan-ish-casserole/ Simon Wheatley]<br />
<br />
* Structured semantic XHTML based, as well as possible, on hcard/review type principles<br />
* Composed of:<br />
** title<br />
** description<br />
** number of servings (quantity)<br />
** prep time<br />
** cooking time<br />
** approval rating (from hreview)<br />
** ingredients<br />
** preparation steps<br />
<br />
May expand to include: variation suggestions<br />
<br />
==== Fruit Salad ====<br />
<br />
[http://diveintomark.org/archives/2006/06/09/fruit-salad-recipe fruit salad (Mark Pilgrim)]<br />
<br />
Extremely detailed instructions.<br />
<br />
* Composed of (at least)<br />
** title of recipe<br />
** description<br />
** number of servings (quantity)<br />
** shopping instructions<br />
** ingredients<br />
** ingredients to avoid<br />
** preparation steps<br />
** left-over preservation instructions<br />
<br />
<br />
==== Perfect Flank Steak ====<br />
<br />
[http://www.dvorak.org/blog/?p=6283 John C. "CSS is a series of tubes" Dvorak]<br />
<br />
* Composed of<br />
** title of recipe<br />
** description<br />
** ingredients<br />
** preparation steps<br />
** suggested accompaniments<br />
<br />
==== Veggie Chicken Enchiladas ====<br />
<br />
[http://www.myvegrecipes.com/recipe/chicken-enchiladas Veggie Chicken Enchiladas]<br />
[http://www.myvegrecipes.com/recipe/xml/chicken-enchiladas.xml Veggie Chicken Enchiladas XML]<br />
<br />
* Attempts to use XOXO as a recipe microformat<br />
* Composed of<br />
** ingredients<br />
** instructions<br />
** servings<br />
** prep time<br />
** serving suggestions<br />
** cook's tips<br />
** variations<br />
** time saving tips<br />
<br />
====Spaghetti primavera====<br />
<br />
[http://blog.bumblepuppy.org.uk/2006/10/05/spaghetti-primavera/ Spaghetti-primavera]<br />
<br />
*Written as prose<br />
*Contains:<br />
** introduction - containing source of original recipe book inspiration<br />
** ingredients (in paragraph, comma separated)<br />
** instructions (paragraph)<br />
** observation (creates a lot of washing up!)<br />
<br />
=== Services ===<br />
<br />
==== cookingwithbooze.org ====<br />
*[http://cookingwithbooze.org/ Cooking with Booze] is a cookbook and associated free-access website. All the recipes are marked up in a combination of XOXO and microformat:<br />
* Composed of<br />
** title of recipe (as a heading)<br />
** note/introduction<br />
** unordered list of ingredients<br />
** ordered list of instructions<br />
* [http://cookingwithbooze.org/for-geeks#microformats More information about the microformat]<br />
* You can also download the whole recipe list as a dataset for your own experiments, in the form as a tagged XML file as output by InDesign. [http://cookingwithbooze.org/for-geeks#microformats]<br />
* Any questions: [http://shorttermmemoryloss.com http://shorttermmemoryloss.com]<br />
<br />
==== allrecipes.com - Sachertorte ====<br />
[http://cake.allrecipes.com/az/Sachertorte.asp Sachertorte (allrecipes.com)]<br />
<br />
* Composed of<br />
** title of recipe (as a heading)<br />
** name of the submitter<br />
** description of the food item (e.g: "Elegant chocolate cake.")<br />
** optional photo<br />
** servings count<br />
** sequence of ingredients (uses <code>&lt;ul&gt;</code>)<br />
** sequence of preperation instructions (uses <code>&lt;ol&gt;</code>)<br />
<br />
<br />
==== BBC Food - Marzipanned fruit cake ====<br />
<br />
[http://www.bbc.co.uk/food/recipes/database/marzipannedfruitcake_14581.shtml Marzipanned fruit cake] [http://www.bbc.co.uk/food/recipes/ BBC Food Recipes]<br />
<br />
* Composed of (all B&BR markup)<br />
** title of recipe<br />
** name of submitter/source<br />
** servings count/quanity<br />
** preparation time<br />
** cooking time<br />
** image<br />
** suitable for vegetarians icon<br />
** description of recipe<br />
** ingredients list<br />
** method steps<br />
** notes<br />
<br />
==== cooking.com - Jamaican Chicken Stew Recipe ====<br />
[http://www.cooking.com/recipes/rerecite.asp?No=8196 Jamaican Chicken Stew Recipe (cooking.com)]<br />
* Consists of<br />
** Recipe Title (<code>&lt;font&gt;</code><code>&lt;b&gt;</code> used for header)<br />
*** Source (Magazine, book, title, etc. with a link.)<br />
*** Serving Size<br />
** Photo area<br />
*** Recipe Email, Save, Print options<br />
*** Photo<br />
** Recipe Ingredients (heading uses <code>&lt;b&gt;</code> <code>&lt;br&gt;</code>, each ingredient in separate <code>&lt;td&gt;</code>, ingredient keywords linked to a glossary)<br />
** Recipe Method (no <code>&lt;p&gt;</code> used, uses <code>&lt;td&gt;</code>, <code>&lt;font&gt;</code> and <code>&lt;br&gt;</code>)<br />
*** Copyright reprint info appears at end of prep info.<br />
** Nutrition Facts (<code>&lt;font&gt;</code><code>&lt;b&gt;</code> used for header)<br />
*** Serving size info repeated<br />
*** Nutritional elements per serving (each item and value are in separate <code>&lt;td&gt;</code>)<br />
<br />
Notes: No meaningful markup used. Recipes use <code>&lt;table&gt;</code> for all layout/presentation. <code>&lt;b&gt;</code>, <code>&lt;br&gt;</code>, and nested <code>&lt;font&gt;</code> used throughout. Line images separate sections of recipe.<br />
<br />
==== cuzza.com - Chicken Jalfrezi Recipe ====<br />
[http://cuzza.com/recipes/jalfrezi/ Chicken Jalfrezi Recipe (cuzza.com)]<br />
* Consists of<br />
** Recipe Title (<code>&lt;h2&gt;</code>)<br />
*** Subheading/summary description (<code>&lt;h3&gt;</code>)<br />
*** Teaser text with photo (<code>&lt;div class="teaser"&gt;&lt;div class="mainImg"&gt;</code>)<br />
** Method steps (each step in a <code>&lt;div class="step"&gt;</code> with an image and text)<br />
** Number of servings (<code>&lt;h5&gt;</code>)<br />
** Ingredients list (in a definition list; quantities and units not marked up separately; some ingredients link to an explanatory page)<br />
** "Chef's notes". Explanatory notes offering advice and alternatives.<br />
<br />
==== epicurious.com - Moroccan Braised Beef ====<br />
[http://www.epicurious.com/recipes/recipe_views/views/230639 Moroccan Braised Beef (epicurious.com)]<br />
* Composed of<br />
** Recipe Intro Area<br />
*** Photo (uses <code>&lt;p&gt;</code>)<br />
*** Recipe Title (uses <code>&lt;h1&gt;</code>)<br />
*** Quick intro description (No <code>&lt;p&gt;</code>)<br />
** Ingredients * (uses <code>&lt;br&gt;</code>)<br />
** Preparation *<br />
*** Preparation instructions (some recipes offer Cooks' notes: - surrounded by *b* tagset, and uses <code>&lt;br&gt;</code> )<br />
*** Serving size<br />
*** Origin (span class = source, magazine title)<br />
*** Copyright info (span class = copyright: publication date and location if available)<br />
** Your notes * (user/visitor may add/submit notes to appear on their printed copy)<br />
** Reviews * (fork ratings, 1-4)<br />
<br />
Notes: Images are the secondary headings * (class = hdr) , no sub heading markup. Recipes do not use use <code>&lt;li&gt;</code> and use <code>&lt;br&gt;</code> instead of <code>&lt;p&gt;</code> often.<br />
<br />
==== extratasty.com - Cuba Libre ====<br />
[http://www.extratasty.com/recipe/46/cuba_libre Cuba Libre (extratasty.com)]<br />
<br />
* Composed of<br />
** title of recipe <br />
** name of the submitter<br />
** sequence of ingredients <br />
** preperation instructions (continuous text)<br />
** Recipe rating (US school grad system)<br />
<br />
<br />
==== recipesource.com - Cranberry Cherry Relish ====<br />
[http://www.recipesource.com/side-dishes/relishes/00/rec0053.html CRANBERRY CHERRY RELISH (recipesource.com)]<br />
* Consists of<br />
** Exported info (if from mastercook, mealmaster)<br />
** Title (in uppercase)<br />
** Recipe by: (source, author info)<br />
** Serving size: Preparation Time:<br />
** Categories:<br />
** Ingredients ( displayed in columns: Amount : Measure : Ingredient -- Preparation Method )<br />
** Cooking Instructions<br />
<br />
Note: Recipe is in text format using <code>&lt;pre&gt;</code> inside a <code>&lt;td&gt;</code>.<br />
<br />
==== www.cooker.net - Muffins Zucca e Radicchio ====<br />
[http://www.cooker.net/cooker/cooker.nsf/puid/9F1CF8E0983AC24186257286003C2277 Muffins Zucca e Radicchio (cooker.net)]<br />
<br />
*Consists of:<br />
**Yield<br />
**Unordered list of ingredients<br />
**Preparations<br />
**Photographs<br />
**Feedback<br />
**Classification (category recipe features in)<br />
<br />
==== asianfoodgrocer.com - Asian Rice Salad ====<br />
[http://www.asianfoodgrocer.com/recipes/77439.shtml Asian Rice Salad (AsianFoodGrocer.com)]<br />
<br />
*Consists of:<br />
**Title<br />
**Yield<br />
**Blurb<br />
**Ingredients (3 column table)<br />
**Instructions (numbered but not an ordered list)<br />
**Author or Source Credit<br />
<br />
b and br markup, no headings. Ingredients displayed in table, one ingredient per row - 3 columns: first for quantity or measurement number, second for measure type if there is one (c, ts, tb, etc.), third column for the ingredient type.<br />
<br />
==== Good Living: Sydney Morning Herald - Asparagus and herb frittata ====<br />
<br />
[http://www.smh.com.au/news/recipes/asparagus/2007/09/10/1189276601142.html Asparagus and herb frittata (smh.com.au/news/recipes/ Sydney Morning Herald: Recipes)]<br />
<br />
Note: An article about Asparagus contains this recipe.<br />
<br />
* Article Title (h1 markup)<br />
** Author<br />
** Date<br />
** Article content<br />
*** Recipe Title (h3 markup)<br />
**** Ingredients (1 paragraph, ingredients separated with br markup)<br />
**** Directions (method, p used for steps)<br />
**** Servings (p, b markup)<br />
<br />
Measurement units note: This recipe mixes, tbs, cm, ml, and g.<br />
<br />
==== Real Cajun Recipes: Chicken Fricassee ====<br />
[http://www.realcajunrecipes.com/recipes/cajun/chicken-fricassee/4.rcr Chicken Fricassee (RealCajunRecipes.com)]<br />
<br />
Recipe is formatted with table/nested table<br />
<br />
* Title (h3 heading)<br />
** Food Category (not linked)<br />
** Recipe Author<br />
** Author origin (location)<br />
** Date<br />
** Drag and Drop icon for MacGourmet* users<br />
** Ratings (up to 5 stars)<br />
** Ratings link (viewer can rate recipe)<br />
* The top section of the recipe is separated with an hr, rest of recipe in nested table.<br />
** servings<br />
** prep time<br />
** cook time<br />
** ready time<br />
** author note<br />
** Ingredients (appear in two columns, table)<br />
** Directions (paragraph format for steps)<br />
<br />
'''Special Note'''*<br />
[http://www.apple.com/downloads/macosx/home_learning/macgourmet.html MacGourmet] is software which allows creation, import (of other recipes and recipe formats), export of recipes, Publishing of recipes to MovableType, Blogger, TypePad, and Blojsom weblogs. Categorization and search features. It would be good to see how these recipes are formatted. MacGourmet - 'iTunes for recipes' and can create/export shopping lists for the recipes (including to PDA, iPod, etc.), Demo available at link. Also see wiki page [[recipe-formats#MacGourmet]]<br />
<br />
==== BigOven: Angel Hair with Tomatoes, Basil And Arugula recipe ====<br />
<br />
Recipe Example: [http://www.bigoven.com/152986_Angel-Hair-with-Tomatoes,-Basil-And-Arugula_recipe.html Angel Hair with Tomatoes, Basil And Arugula recipe (BigOven)].<br />
<br />
[http://bigoven.com/ BigOven] - recipe software application with an online collection of recipes which were submitted from registered site users or published, exported from its software users. Published recipes can be rated online, and additional tags/categories or ingredients can be applied to published recipes. Also see the [[recipe-formats#Big_Oven]] wiki page.<br />
<br />
Recipe output for the site uses span tags with id to format or link information. HTML format: ingredients are in table format. Uses br, no p tags.<br />
<br />
This is an example recipe format from the site:<br />
<br />
* Recipe Title - h1, span id="lblTitle" <br />
** Intro Line - span id="lblSubhead", br<br />
** Ratings - img id="img_rating"<br />
** Photo<br />
** Ingredients - h2, span id="Label1" <br />
*** Individual Ingredients - (2 column table, ingredient keyword is linked, link appended with id=ingredient name.)<br />
** Instructions - h2, span id="Label2" <br />
*** Directions (br, span id="lblInstructions", br) - instructions, nutritional info, author, date included.<br />
** Main ingredient tag - span id="Label7", span id="lblMainIngredient" , link to Main Ingredient)<br />
** ADD tags. Form submit buttons for additional tag categorization (related linking). - id="lblCategoriesLabel"<br />
<br />
==== Gopher: Fudge Recipe ====<br />
[gopher://hal3000.cx/0/Recipes/fudge.txt gopher://hal3000.cx/0/Recipes/fudge.txt]<br />
<br />
Note: this is '''gopher:''' (may not work in all browsers, will with Firefox)<br />
<br />
Format plain text -- formatting line breaks, sometimes dashes for ingredient lists, underlining of title. Whitespace preserved with pre tagset.<br />
<br />
Recipe consists of:<br />
* Introductory information<br />
* Recipe Title<br />
** Ingredients<br />
** Instructions<br />
<br />
Another Recipe collection on Gopher at the Online Book Initiative:<br />
<br />
[gopher://gopher.std.com/11/The%20Online%20Book%20Initiative/Recipes gopher://gopher.std.com/11/The%20Online%20Book%20Initiative/Recipes]<br />
<br />
==== DobrePrzepisy.org: Faworki ====<br />
Recipe example: [http://dobreprzepisy.org/przepis/255/faworki.html Faworki (dobreprzepisy.org)]<br />
<br />
* Composed of:<br />
** title of recipe (<code>&lt;h1&gt;</code>)<br />
** food category (links to the directory)<br />
** name of the submitter (links to profile) and date added<br />
** rating (stars, 1-5)<br />
** optional photo<br />
** additional info: (<code>&lt;h3&gt; and &lt;ul&gt;</code>)<br />
*** difficulty (3 levels: easy | intermediate | difficult)<br />
*** servings count<br />
*** preparation time<br />
*** overall cost<br />
*** suitable for vegetarians icon (added as <code>background-image</code>)<br />
** sequence of ingredients (<code>&lt;ul&gt;</code>)<br />
** preparation instructions (<code>&lt;p&gt;</code>)<br />
** user's comments<br />
<br />
==== W3.org Lists Example ====<br />
[http://www.w3.org/TR/html4/struct/lists.html#h-10.1 w3.org]<br />
<br />
* Composed of<br />
** <code>&lt;dl&gt;</code><br />
*** <code>&lt;dt&gt;</code> - ingredients heading<br />
*** <code>&lt;dd&gt;</code><br />
**** <code>&lt;ol&gt;</code> and <code>&lt;li&gt;</code> - ingredients<br />
*** <code>&lt;dt&gt;</code> - procedure heading<br />
*** <code>&lt;dd&gt;</code><br />
**** <code>&lt;ul&gt;</code> and <code>&lt;li&gt;</code> - procedure<br />
*** <code>&lt;dt&gt;</code> - notes heading<br />
*** <code>&lt;dd&gt;</code> - notes<br />
<br />
===Menus===<br />
<br />
==== The Crepe Vine ====<br />
<br />
See [http://www.thecrepevine.com/menu.html The Crepe Vine].<br />
<br />
*Item Name<br />
*Price<br />
*Ingredients/Description <br />
<br />
<pre><br />
<span class="menu2">APPETIZERS</span><br />
<p>IMPORTED CHEESE PLATE & BAGUETTE ..........13<br><br />
<br><br />
TUNA TARTARE ..........8<br><br />
fresh tuna with roasted shallot aioli, and lotus chips<br><br />
<br><br />
BRUSCHETTA ..........8<br />
<br><br />
tomato, garlic, basil, chevre, olive oil and balsamic on crostini<br> <br />
<br><br />
STEAK TARTARE .......... 12<br />
<br><br />
Horseradish aioli, caramelized shallots, and potato hash<br><br />
<br><br />
BABY BEET SALAD ..........11<br />
<br><br />
candy cane baby beets, sherry vinaigrette and herb goat cheese<br />
</pre><br />
<br />
==== Luigi Ortegas ====<br />
<br />
See [http://www.luigiortegas.com/menu/wood_fire_pies.html Luigi Ortegas]<br />
<br />
*Item Name<br />
*Price<br />
*Standard Ingredients<br />
*Optional Ingredients<br />
*Ingredient Price<br />
<br />
<pre><br />
<div id="e2" style="position: absolute; left: 212px; top: 500px; width: 596px; height: 39px;"><br />
<span class="text"><br />
<span style="font-size: 16px;"><br />
Cheese Pie ............ 6.99<br><br />
</span><br />
<span style="font-size: 12px;"><br />
Tomato Sauce and Mozzarella Cheese.<br><br />
</span><br />
</span><br />
</div><br />
<div id="e3" style="position: absolute; left: 212px; top: 544px; width: 596px; height: 135px;"><br />
<span class="text"><br />
<span style="font-size: 12px;"><br />
Meat Toppings:<br />
</span><br />
<span style="font-size: 12px;"><br />
ADD EXTRA $1.00 EACH<br><br />
</span><br />
<span style="font-size: 12px;"><br />
Giant Pepperoni, Sausage, Salami, Beef Meatballs, Canadian Bacon, Mortadella, Real Bacon, Chorizo and Anchovies.<br><br />
</span><br />
<span style="font-size: 12px;"><br />
Veggie Toppings: ADD EXTRA $1.00 EACH<br><br />
</span><br />
<span style="font-size: 12px;"><br />
Sauteed Mushrooms, Sauteed White Onions, Sauteed Green Bell Peppers, Black Olives, Grilled Eggplant, Sun Dried Tomatoes, <br />
Jalapenos, Fresh Basil, Fresh Cilantro, Grilled Zucchinis, Pineapple, Roma Tomatoes and Elephant Garlic.<br />
</span><br />
<span style="font-size: 12px;"><br />
Cheese: &nbsp;ADD EXTRA $1.50 EACH<br><br />
</span><br />
<span style="font-size: 12px;"><br />
Mozzarella, Feta, Cheddar, Fresh Mozzarella and Ricotta.<br><br />
</span><br />
</pre><br />
<br />
== Next Steps ==<br />
# Add more examples and analysis of their markup and implied schemas<br />
# Research existing [[recipe-formats]] ([http://home.comcast.net/~episoft/ Mealmaster], [http://www.formatdata.com/recipeml/ RecipeML], ...)<br />
# [[recipe-brainstorming]] on a minimal recipe schema that represents the 80/20 of common properties of the examples and reuses terms from existing widely implemented recipe formats.</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=recipe-examples&diff=25787recipe-examples2008-02-19T19:17:46Z<p>AndyMabbett: /* Luigi Ortegas */ rm some extraneous mark-up fr clarity</p>
<hr />
<div><h1> Recipe Examples </h1><br />
<br />
Per the microformats [[process]] this is an [[examples]] page documenting existing real world examples of actual ''tasty'' recipes published on the Web. Next steps are to research [[recipe-formats]] and then (only ''after'' that), proceed with [[recipe-brainstorming]]. Only URLs to actual recipes please.<br />
<br />
'''Please read both [[process]] and [[examples]] before editing this page.'''<br />
<br />
__TOC__<br />
<br />
== Contributors ==<br />
<br />
* [http://tantek.com/ Tantek Çelik]<br />
* [[User:RobertBachmann|Robert Bachmann]]<br />
* [[User:JeffMcNeill|jeffmcneill]]<br />
<br />
== Recipe Lists ==<br />
* [http://orens.com/stuff/recipes.html Steve and Aytek's recipes]. Note that they are simply using [[xoxo|XOXO]] for the lists. It doesn't appear that anything more is necessary for a list of recipes.<br />
* [http://www.myvegrecipes.com/category/main-dishes My Veg Recipes]. Also uses [[xoxo|XOXO]] for lists of recipes.<br />
* ...<br />
* ...<br />
<br />
== Recipes Examples ==<br />
<br />
=== Individuals ===<br />
<br />
==== Hamburger ====<br />
[http://en.wikibooks.org/wiki/Cookbook:Hamburger Wikibooks Cookbook:Hamburger]<br />
<br />
Composed of<br />
* Summary<br />
** Categories<br />
** Servings<br />
** Time<br />
** Rating<br />
** Energy<br />
** Image<br />
* Recipe<br />
** Description (text)<br />
** Ingredients (required/optional)<br />
** Procedure (OL)<br />
** Suggestions (text)<br />
** Notes, tips and variations (UL)<br />
** Categories<br />
<br />
==== Lentil Stew ====<br />
[http://1moon.com/recipes/mercimek.html Neriman’s Mercimek - Yummy Lentils]<br />
<br />
* Appears to be a simple BBEdit 5.0 conversion of a plain text file into HTML 3.2<br />
* Uses <code>&lt;br&gt;&lt;br&gt;</code> to delimit sections<br />
* Composed of:<br />
** author of recipe<br />
** title of recipe, with English translation<br />
** top level structure of time/instructions, with ingredients noted as necessary for each step<br />
** serving suggestion(s) (serve with ...)<br />
<br />
==== Mocha Brownie Cake ====<br />
[http://orens.com/stuff/recipe_data/mocha_brownie_cake.html Mocha Brownie Cake]<br />
<br />
* Composed of<br />
** title of recipe / food item (looks like a heading)<br />
** sequence of larger tasks (separated by subheadings), each of which has<br />
*** list of ingredients (uses <code>&lt;ul&gt;</code>) for a particular component of the dish<br />
*** preparation instructions for those ingredients<br />
*** OR a instructions for assembling components of the dish<br />
** contributing baker - perhaps someone who has modified the recipe?<br />
** source - citation of where recipe originally came from<br />
<br />
==== A Moroccan-ish Casserole ====<br />
[http://www.simonwheatley.co.uk/2006/03/26/a-moroccan-ish-casserole/ Simon Wheatley]<br />
<br />
* Structured semantic XHTML based, as well as possible, on hcard/review type principles<br />
* Composed of:<br />
** title<br />
** description<br />
** number of servings (quantity)<br />
** prep time<br />
** cooking time<br />
** approval rating (from hreview)<br />
** ingredients<br />
** preparation steps<br />
<br />
May expand to include: variation suggestions<br />
<br />
==== Fruit Salad ====<br />
<br />
[http://diveintomark.org/archives/2006/06/09/fruit-salad-recipe fruit salad (Mark Pilgrim)]<br />
<br />
Extremely detailed instructions.<br />
<br />
* Composed of (at least)<br />
** title of recipe<br />
** description<br />
** number of servings (quantity)<br />
** shopping instructions<br />
** ingredients<br />
** ingredients to avoid<br />
** preparation steps<br />
** left-over preservation instructions<br />
<br />
<br />
==== Perfect Flank Steak ====<br />
<br />
[http://www.dvorak.org/blog/?p=6283 John C. "CSS is a series of tubes" Dvorak]<br />
<br />
* Composed of<br />
** title of recipe<br />
** description<br />
** ingredients<br />
** preparation steps<br />
** suggested accompaniments<br />
<br />
==== Veggie Chicken Enchiladas ====<br />
<br />
[http://www.myvegrecipes.com/recipe/chicken-enchiladas Veggie Chicken Enchiladas]<br />
[http://www.myvegrecipes.com/recipe/xml/chicken-enchiladas.xml Veggie Chicken Enchiladas XML]<br />
<br />
* Attempts to use XOXO as a recipe microformat<br />
* Composed of<br />
** ingredients<br />
** instructions<br />
** servings<br />
** prep time<br />
** serving suggestions<br />
** cook's tips<br />
** variations<br />
** time saving tips<br />
<br />
====Spaghetti primavera====<br />
<br />
[http://blog.bumblepuppy.org.uk/2006/10/05/spaghetti-primavera/ Spaghetti-primavera]<br />
<br />
*Written as prose<br />
*Contains:<br />
** introduction - containing source of original recipe book inspiration<br />
** ingredients (in paragraph, comma separated)<br />
** instructions (paragraph)<br />
** observation (creates a lot of washing up!)<br />
<br />
=== Services ===<br />
<br />
==== cookingwithbooze.org ====<br />
*[http://cookingwithbooze.org/ Cooking with Booze] is a cookbook and associated free-access website. All the recipes are marked up in a combination of XOXO and microformat:<br />
* Composed of<br />
** title of recipe (as a heading)<br />
** note/introduction<br />
** unordered list of ingredients<br />
** ordered list of instructions<br />
* [http://cookingwithbooze.org/for-geeks#microformats More information about the microformat]<br />
* You can also download the whole recipe list as a dataset for your own experiments, in the form as a tagged XML file as output by InDesign. [http://cookingwithbooze.org/for-geeks#microformats]<br />
* Any questions: [http://shorttermmemoryloss.com http://shorttermmemoryloss.com]<br />
<br />
==== allrecipes.com - Sachertorte ====<br />
[http://cake.allrecipes.com/az/Sachertorte.asp Sachertorte (allrecipes.com)]<br />
<br />
* Composed of<br />
** title of recipe (as a heading)<br />
** name of the submitter<br />
** description of the food item (e.g: "Elegant chocolate cake.")<br />
** optional photo<br />
** servings count<br />
** sequence of ingredients (uses <code>&lt;ul&gt;</code>)<br />
** sequence of preperation instructions (uses <code>&lt;ol&gt;</code>)<br />
<br />
<br />
==== BBC Food - Marzipanned fruit cake ====<br />
<br />
[http://www.bbc.co.uk/food/recipes/database/marzipannedfruitcake_14581.shtml Marzipanned fruit cake] [http://www.bbc.co.uk/food/recipes/ BBC Food Recipes]<br />
<br />
* Composed of (all B&BR markup)<br />
** title of recipe<br />
** name of submitter/source<br />
** servings count/quanity<br />
** preparation time<br />
** cooking time<br />
** image<br />
** suitable for vegetarians icon<br />
** description of recipe<br />
** ingredients list<br />
** method steps<br />
** notes<br />
<br />
==== cooking.com - Jamaican Chicken Stew Recipe ====<br />
[http://www.cooking.com/recipes/rerecite.asp?No=8196 Jamaican Chicken Stew Recipe (cooking.com)]<br />
* Consists of<br />
** Recipe Title (<code>&lt;font&gt;</code><code>&lt;b&gt;</code> used for header)<br />
*** Source (Magazine, book, title, etc. with a link.)<br />
*** Serving Size<br />
** Photo area<br />
*** Recipe Email, Save, Print options<br />
*** Photo<br />
** Recipe Ingredients (heading uses <code>&lt;b&gt;</code> <code>&lt;br&gt;</code>, each ingredient in separate <code>&lt;td&gt;</code>, ingredient keywords linked to a glossary)<br />
** Recipe Method (no <code>&lt;p&gt;</code> used, uses <code>&lt;td&gt;</code>, <code>&lt;font&gt;</code> and <code>&lt;br&gt;</code>)<br />
*** Copyright reprint info appears at end of prep info.<br />
** Nutrition Facts (<code>&lt;font&gt;</code><code>&lt;b&gt;</code> used for header)<br />
*** Serving size info repeated<br />
*** Nutritional elements per serving (each item and value are in separate <code>&lt;td&gt;</code>)<br />
<br />
Notes: No meaningful markup used. Recipes use <code>&lt;table&gt;</code> for all layout/presentation. <code>&lt;b&gt;</code>, <code>&lt;br&gt;</code>, and nested <code>&lt;font&gt;</code> used throughout. Line images separate sections of recipe.<br />
<br />
==== cuzza.com - Chicken Jalfrezi Recipe ====<br />
[http://cuzza.com/recipes/jalfrezi/ Chicken Jalfrezi Recipe (cuzza.com)]<br />
* Consists of<br />
** Recipe Title (<code>&lt;h2&gt;</code>)<br />
*** Subheading/summary description (<code>&lt;h3&gt;</code>)<br />
*** Teaser text with photo (<code>&lt;div class="teaser"&gt;&lt;div class="mainImg"&gt;</code>)<br />
** Method steps (each step in a <code>&lt;div class="step"&gt;</code> with an image and text)<br />
** Number of servings (<code>&lt;h5&gt;</code>)<br />
** Ingredients list (in a definition list; quantities and units not marked up separately; some ingredients link to an explanatory page)<br />
** "Chef's notes". Explanatory notes offering advice and alternatives.<br />
<br />
==== epicurious.com - Moroccan Braised Beef ====<br />
[http://www.epicurious.com/recipes/recipe_views/views/230639 Moroccan Braised Beef (epicurious.com)]<br />
* Composed of<br />
** Recipe Intro Area<br />
*** Photo (uses <code>&lt;p&gt;</code>)<br />
*** Recipe Title (uses <code>&lt;h1&gt;</code>)<br />
*** Quick intro description (No <code>&lt;p&gt;</code>)<br />
** Ingredients * (uses <code>&lt;br&gt;</code>)<br />
** Preparation *<br />
*** Preparation instructions (some recipes offer Cooks' notes: - surrounded by *b* tagset, and uses <code>&lt;br&gt;</code> )<br />
*** Serving size<br />
*** Origin (span class = source, magazine title)<br />
*** Copyright info (span class = copyright: publication date and location if available)<br />
** Your notes * (user/visitor may add/submit notes to appear on their printed copy)<br />
** Reviews * (fork ratings, 1-4)<br />
<br />
Notes: Images are the secondary headings * (class = hdr) , no sub heading markup. Recipes do not use use <code>&lt;li&gt;</code> and use <code>&lt;br&gt;</code> instead of <code>&lt;p&gt;</code> often.<br />
<br />
==== extratasty.com - Cuba Libre ====<br />
[http://www.extratasty.com/recipe/46/cuba_libre Cuba Libre (extratasty.com)]<br />
<br />
* Composed of<br />
** title of recipe <br />
** name of the submitter<br />
** sequence of ingredients <br />
** preperation instructions (continuous text)<br />
** Recipe rating (US school grad system)<br />
<br />
<br />
==== recipesource.com - Cranberry Cherry Relish ====<br />
[http://www.recipesource.com/side-dishes/relishes/00/rec0053.html CRANBERRY CHERRY RELISH (recipesource.com)]<br />
* Consists of<br />
** Exported info (if from mastercook, mealmaster)<br />
** Title (in uppercase)<br />
** Recipe by: (source, author info)<br />
** Serving size: Preparation Time:<br />
** Categories:<br />
** Ingredients ( displayed in columns: Amount : Measure : Ingredient -- Preparation Method )<br />
** Cooking Instructions<br />
<br />
Note: Recipe is in text format using <code>&lt;pre&gt;</code> inside a <code>&lt;td&gt;</code>.<br />
<br />
==== www.cooker.net - Muffins Zucca e Radicchio ====<br />
[http://www.cooker.net/cooker/cooker.nsf/puid/9F1CF8E0983AC24186257286003C2277 Muffins Zucca e Radicchio (cooker.net)]<br />
<br />
*Consists of:<br />
**Yield<br />
**Unordered list of ingredients<br />
**Preparations<br />
**Photographs<br />
**Feedback<br />
**Classification (category recipe features in)<br />
<br />
==== asianfoodgrocer.com - Asian Rice Salad ====<br />
[http://www.asianfoodgrocer.com/recipes/77439.shtml Asian Rice Salad (AsianFoodGrocer.com)]<br />
<br />
*Consists of:<br />
**Title<br />
**Yield<br />
**Blurb<br />
**Ingredients (3 column table)<br />
**Instructions (numbered but not an ordered list)<br />
**Author or Source Credit<br />
<br />
b and br markup, no headings. Ingredients displayed in table, one ingredient per row - 3 columns: first for quantity or measurement number, second for measure type if there is one (c, ts, tb, etc.), third column for the ingredient type.<br />
<br />
==== Good Living: Sydney Morning Herald - Asparagus and herb frittata ====<br />
<br />
[http://www.smh.com.au/news/recipes/asparagus/2007/09/10/1189276601142.html Asparagus and herb frittata (smh.com.au/news/recipes/ Sydney Morning Herald: Recipes)]<br />
<br />
Note: An article about Asparagus contains this recipe.<br />
<br />
* Article Title (h1 markup)<br />
** Author<br />
** Date<br />
** Article content<br />
*** Recipe Title (h3 markup)<br />
**** Ingredients (1 paragraph, ingredients separated with br markup)<br />
**** Directions (method, p used for steps)<br />
**** Servings (p, b markup)<br />
<br />
Measurement units note: This recipe mixes, tbs, cm, ml, and g.<br />
<br />
==== Real Cajun Recipes: Chicken Fricassee ====<br />
[http://www.realcajunrecipes.com/recipes/cajun/chicken-fricassee/4.rcr Chicken Fricassee (RealCajunRecipes.com)]<br />
<br />
Recipe is formatted with table/nested table<br />
<br />
* Title (h3 heading)<br />
** Food Category (not linked)<br />
** Recipe Author<br />
** Author origin (location)<br />
** Date<br />
** Drag and Drop icon for MacGourmet* users<br />
** Ratings (up to 5 stars)<br />
** Ratings link (viewer can rate recipe)<br />
* The top section of the recipe is separated with an hr, rest of recipe in nested table.<br />
** servings<br />
** prep time<br />
** cook time<br />
** ready time<br />
** author note<br />
** Ingredients (appear in two columns, table)<br />
** Directions (paragraph format for steps)<br />
<br />
'''Special Note'''*<br />
[http://www.apple.com/downloads/macosx/home_learning/macgourmet.html MacGourmet] is software which allows creation, import (of other recipes and recipe formats), export of recipes, Publishing of recipes to MovableType, Blogger, TypePad, and Blojsom weblogs. Categorization and search features. It would be good to see how these recipes are formatted. MacGourmet - 'iTunes for recipes' and can create/export shopping lists for the recipes (including to PDA, iPod, etc.), Demo available at link. Also see wiki page [[recipe-formats#MacGourmet]]<br />
<br />
==== BigOven: Angel Hair with Tomatoes, Basil And Arugula recipe ====<br />
<br />
Recipe Example: [http://www.bigoven.com/152986_Angel-Hair-with-Tomatoes,-Basil-And-Arugula_recipe.html Angel Hair with Tomatoes, Basil And Arugula recipe (BigOven)].<br />
<br />
[http://bigoven.com/ BigOven] - recipe software application with an online collection of recipes which were submitted from registered site users or published, exported from its software users. Published recipes can be rated online, and additional tags/categories or ingredients can be applied to published recipes. Also see the [[recipe-formats#Big_Oven]] wiki page.<br />
<br />
Recipe output for the site uses span tags with id to format or link information. HTML format: ingredients are in table format. Uses br, no p tags.<br />
<br />
This is an example recipe format from the site:<br />
<br />
* Recipe Title - h1, span id="lblTitle" <br />
** Intro Line - span id="lblSubhead", br<br />
** Ratings - img id="img_rating"<br />
** Photo<br />
** Ingredients - h2, span id="Label1" <br />
*** Individual Ingredients - (2 column table, ingredient keyword is linked, link appended with id=ingredient name.)<br />
** Instructions - h2, span id="Label2" <br />
*** Directions (br, span id="lblInstructions", br) - instructions, nutritional info, author, date included.<br />
** Main ingredient tag - span id="Label7", span id="lblMainIngredient" , link to Main Ingredient)<br />
** ADD tags. Form submit buttons for additional tag categorization (related linking). - id="lblCategoriesLabel"<br />
<br />
==== Gopher: Fudge Recipe ====<br />
[gopher://hal3000.cx/0/Recipes/fudge.txt gopher://hal3000.cx/0/Recipes/fudge.txt]<br />
<br />
Note: this is '''gopher:''' (may not work in all browsers, will with Firefox)<br />
<br />
Format plain text -- formatting line breaks, sometimes dashes for ingredient lists, underlining of title. Whitespace preserved with pre tagset.<br />
<br />
Recipe consists of:<br />
* Introductory information<br />
* Recipe Title<br />
** Ingredients<br />
** Instructions<br />
<br />
Another Recipe collection on Gopher at the Online Book Initiative:<br />
<br />
[gopher://gopher.std.com/11/The%20Online%20Book%20Initiative/Recipes gopher://gopher.std.com/11/The%20Online%20Book%20Initiative/Recipes]<br />
<br />
==== DobrePrzepisy.org: Faworki ====<br />
Recipe example: [http://dobreprzepisy.org/przepis/255/faworki.html Faworki (dobreprzepisy.org)]<br />
<br />
* Composed of:<br />
** title of recipe (<code>&lt;h1&gt;</code>)<br />
** food category (links to the directory)<br />
** name of the submitter (links to profile) and date added<br />
** rating (stars, 1-5)<br />
** optional photo<br />
** additional info: (<code>&lt;h3&gt; and &lt;ul&gt;</code>)<br />
*** difficulty (3 levels: easy | intermediate | difficult)<br />
*** servings count<br />
*** preparation time<br />
*** overall cost<br />
*** suitable for vegetarians icon (added as <code>background-image</code>)<br />
** sequence of ingredients (<code>&lt;ul&gt;</code>)<br />
** preparation instructions (<code>&lt;p&gt;</code>)<br />
** user's comments<br />
<br />
==== W3.org Lists Example ====<br />
[http://www.w3.org/TR/html4/struct/lists.html#h-10.1 w3.org]<br />
<br />
* Composed of<br />
** <code>&lt;dl&gt;</code><br />
*** <code>&lt;dt&gt;</code> - ingredients heading<br />
*** <code>&lt;dd&gt;</code><br />
**** <code>&lt;ol&gt;</code> and <code>&lt;li&gt;</code> - ingredients<br />
*** <code>&lt;dt&gt;</code> - procedure heading<br />
*** <code>&lt;dd&gt;</code><br />
**** <code>&lt;ul&gt;</code> and <code>&lt;li&gt;</code> - procedure<br />
*** <code>&lt;dt&gt;</code> - notes heading<br />
*** <code>&lt;dd&gt;</code> - notes<br />
<br />
===Menus===<br />
<br />
==== The Crepe Vine ====<br />
<br />
See [http://www.thecrepevine.com/menu.html The Crepe Vine].<br />
<br />
*Item Name<br />
*Price<br />
*Ingredients/Description <br />
<br />
<pre><br />
<span class="menu2">APPETIZERS</span><br />
<p align="left">IMPORTED CHEESE PLATE & BAGUETTE ..........13<br><br />
<br><br />
TUNA TARTARE&nbsp; ..........8<br />
<br><br />
fresh tuna with roasted shallot aioli, and lotus chips<br />
<br><br />
<br><br />
BRUSCHETTA ..........8<br />
<br><br />
tomato, garlic, basil, chevre, olive oil and balsamic on crostini<br />
<br> <br />
<br><br />
STEAK TARTARE&nbsp; .......... 12<br />
<br><br />
Horseradish aioli, caramelized shallots, and potato hash<br />
<br><br />
<br><br />
BABY BEET SALAD&nbsp; ..........11<br />
<br><br />
candy cane baby beets, sherry vinaigrette and herb goat cheese<br />
</pre><br />
<br />
==== Luigi Ortegas ====<br />
<br />
See [http://www.luigiortegas.com/menu/wood_fire_pies.html Luigi Ortegas]<br />
<br />
*Item Name<br />
*Price<br />
*Standard Ingredients<br />
*Optional Ingredients<br />
*Ingredient Price<br />
<br />
<pre><br />
<div id="e2" style="position: absolute; left: 212px; top: 500px; width: 596px; height: 39px;"><br />
<span class="text"><br />
<span style="font-size: 16px;"><br />
Cheese Pie ............ 6.99<br><br />
</span><br />
<span style="font-size: 12px;"><br />
Tomato Sauce and Mozzarella Cheese.<br><br />
</span><br />
</span><br />
</div><br />
<div id="e3" style="position: absolute; left: 212px; top: 544px; width: 596px; height: 135px;"><br />
<span class="text"><br />
<span style="font-size: 12px;"><br />
Meat Toppings:<br />
</span><br />
<span style="font-size: 12px;"><br />
ADD EXTRA $1.00 EACH<br><br />
</span><br />
<span style="font-size: 12px;"><br />
Giant Pepperoni, Sausage, Salami, Beef Meatballs, Canadian Bacon, Mortadella, Real Bacon, Chorizo and Anchovies.<br><br />
</span><br />
<span style="font-size: 12px;"><br />
Veggie Toppings: ADD EXTRA $1.00 EACH<br><br />
</span><br />
<span style="font-size: 12px;"><br />
Sauteed Mushrooms, Sauteed White Onions, Sauteed Green Bell Peppers, Black Olives, Grilled Eggplant, Sun Dried Tomatoes, <br />
Jalapenos, Fresh Basil, Fresh Cilantro, Grilled Zucchinis, Pineapple, Roma Tomatoes and Elephant Garlic.<br />
</span><br />
<span style="font-size: 12px;"><br />
Cheese: &nbsp;ADD EXTRA $1.50 EACH<br><br />
</span><br />
<span style="font-size: 12px;"><br />
Mozzarella, Feta, Cheddar, Fresh Mozzarella and Ricotta.<br><br />
</span><br />
</pre><br />
<br />
== Next Steps ==<br />
# Add more examples and analysis of their markup and implied schemas<br />
# Research existing [[recipe-formats]] ([http://home.comcast.net/~episoft/ Mealmaster], [http://www.formatdata.com/recipeml/ RecipeML], ...)<br />
# [[recipe-brainstorming]] on a minimal recipe schema that represents the 80/20 of common properties of the examples and reuses terms from existing widely implemented recipe formats.</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=recipe-brainstorming&diff=26403recipe-brainstorming2008-02-19T10:39:18Z<p>AndyMabbett: /* Menus */ sign</p>
<hr />
<div>= Recipe Brainstorming =<br />
<br />
Towards a [[recipe|Recipe]] microformat. Please read the [[process]] before editing this page.<br />
<br />
==Format-In-Progress==<br />
<br />
This format-in-progress follows the restarting of Recipe development by [[User:Phae|Frances Berriman]] on 25th September 2007. Note that this Format-In-Progress section is intended to be edited to reflect the discussion that occurs on the microformats-new list, rather than being a free-form playground for schema.<br />
<br />
; Editors<br />
: [[User:BenWard|Ben Ward]] (Yahoo!, Inc.)<br />
: [[User:Phae|Frances Berriman]] (BBC)<br />
<br />
===Introduction===<br />
<br />
Recipe is based on [[recipe-examples|examples]] and fields in [[recipe-formats|existing formats]]. <br />
<br />
The recipe microformat is designed for the mark-up of instructions for creating meals, drinks or food-based items. <br />
<br />
===Root Class Name===<br />
<br />
To be decided. Likely ‘hrecipe’.<br />
<br />
===Property List===<br />
<br />
Recipe properties, with sub-properties listed in parentheses, like <em>(this)</em>, plurality indicated by square brackets, like <em>this[]</em>. Note that the draft property names may change, but their function should remain.<br />
<br />
Optional and required for each field is explicitly stated at this stage. Fields without have not been determined.<br />
<br />
* Title - Required.<br />
* Summary – A short introduction, accompanying statement about the recipe. Optional.<br />
* Author - An hCard for the author of the recipe. Optional.<br />
* Date Published - Optional<br />
* Photo[] - Accompanying image. Optional.<br />
* Ingredient[] (Quantity [Optional], Name [Required], ‘Optionality’ [Optional], Preparation Notes [Optional]) - 1 or more required.<br />
* Method - The block of text containing the method of the recipe. Required.<br />
<br />
Ingredient > ‘Optionality’. States that an ingredient is optional to the recipe. Its absence should imply that the ingredient is required. <br />
<br />
===Suggested fields for inclusion===<br />
<br />
* License - using rel-licence attribution<br />
* Tags - using rel-tag.<br />
* Method > Steps or Method-Step[] as a child of Method. Imply ordered steps from an HTML list or explicitly mark-up ordered steps respectively.<br />
* Yield – Quantity produced by this recipe<br />
* Calories – per serving. May be part of the [measure] microformat in future.<br />
<br />
===Known Issues===<br />
<br />
* Mark-up of quantity would be enhanced by use of a [measure] microformat. However, such a format does not yet exist outside of brainstorming. It must be decided whether quantity is useful/parsable _enough_ without explicit mark-up of values and units.<br />
<br />
==RecipeML-based Brainstorm==<br />
<br />
Excerpted from [http://conoroneill.com/2006/03/21/what-if-i-suggest-a-structured-recipe-format-and-you-critique-it/ Conor Bandon's Blog entry] and derived from The RecipeML Spec:<br />
*Recipe_Title<br />
*Summary Description (one liner)<br />
*Measurement System (U.S., Imperial etc)<br />
*Ingredients (each one a separate "item" rather than block text with count/amount/range/unit broken out too)<br />
**Some (e.g. meats, vegetables) could optionally be marked up with (elements of) the proposed [[species]] microformat. [[User:AndyMabbett|Andy Mabbett]] 06:41, 16 Nov 2006 (PST)<br />
** Ingredient importance (e.g. Main, Required, Optional) should be listed as an attribute of each entry. [[User:AlexanderShusta|α]]<br />
**Units need separate microformat: see [[measure]] <br />
**Ingredient Preparation: such as diced, chopped, sliced, grated, minced, etc. [[User:SteveL|Steve Lewis]] 18:55, 11 Feb 2007 (PST)<br />
*Preparation Time (overall time)<br />
*Yield Quantity and Unit (4 pancakes or 5 servings)<br />
**Calories per serving [[User:JohnLeMasney| John LeMasney]]<br />
**Calories per ounce [[User:JohnLeMasney| John LeMasney]] <br />
*Background Information - Optional section to encapsulate information that is useful but not necessarily required for a successful recipe. [[User:AlexanderShusta|α]]<br />
**Author (Person) ([[hcard]]?)<br />
**Submitter (Person) ([[hcard]]?)<br />
**Source (Book Title etc)<br />
*** could use the proposed [[citation]] microformat. [[User:AndyMabbett|Andy Mabbett]] 06:43, 16 Nov 2006 (PST)<br />
**Date (Of Creation or Publication)<br />
**Rights (Copyright or other)<br />
**Meal Category (Starter, entree, dessert )<br />
**Cuisine Category (Italian etc)<br />
*Instructions (text, but can contain:)<br />
**Steps (optional)<br />
***Should be an ordered list [[User:AndyMabbett|Andy Mabbett]] 14:46, 16 Nov 2006 (PST)<br />
***Another vote for an ordered list, perhaps in the [[XOXO]] format. [[User:AlexanderShusta|α]]<br />
*Photo (optional) [[User:IamCam|Cameron Perry]]<br />
**Could be one per dish, or one for each (or for some of the) step(s). [[User:AndyMabbett|Andy Mabbett]]<br />
<br />
== Additional Suggestions ==<br />
<br />
*Difficulty/Notes - Perhaps incorporation of [[hreview|hReview]] to describe difficulty (using rating) and general comments (review), as an optional field. [[User:Phae|Frances Berriman]]<br />
*Suitability (e.g. vegetarian, vegan, wheat-free, etc.). Possibly [[rel-tag]]. [[User:AndyMabbett|Andy Mabbett]] 14:57, 16 Nov 2006 (PST)<br />
*Ingredient Grouping - In baking you need to differentiate wet from dry ingredients. See also an [[recipe-examples|example recipe]] from [http://www.extratasty.com/recipe/46/cuba_libre extratasty.com] for useful grouping in cocktail mixing. [[SteveL|Steve Lewis]] 19:10, 11 Feb 2007<br />
** Maybe this ingredient grouping can be used to express some alternative ingredients, like "mayonnaise or cream cheese". [[EstevaoSamuel|Estêvão Samuel Procópio]] 15:33, 16 Dez 2007 (PDT)<br />
* Number of dishes or similary - often it's mentioned how many dishes (or breads in baking, etc) the ingredients are for. [[User:WilleRaab|WilleRaab]] 16:57, 20 Jul 2007 (PDT)<br />
* Suitable for occations - what occations are the dish suitable for? [[User:WilleRaab|WilleRaab]] 16:57, 20 Jul 2007 (PDT)<br />
* Category - many sites categorize their recipes. [[User:WilleRaab|WilleRaab]] 16:57, 20 Jul 2007 (PDT)<br />
<br />
Note: Comments added ''"[[User:WilleRaab|WilleRaab]] 16:57, 20 Jul 2007 (PDT)"'' are added after looking at http://tasteline.com, example: [http://www.tasteline.com/default.ns?strItemID=showRecipe&intChannelID=&lngRID=8045&tlfo=0 here].<br />
<br />
*Under what terms is the recipe licensed? Microformat: rel="license". Often a page is in the creative commons but the page author has taken some text from a copyrighted page and in theory re-published the work in violation to the terms of use, adding a rel="license" to each recipe on the page? [[User:Lee Jordan|Lee Jordan]] 20:55, 04 Feb 2008 (GMT)<br />
<br />
== Cookcamp brainstorming ==<br />
<br />
At [http://barcamp.org/CookCamp CookCamp] in February 2007, Tantek moderated a fairly free form discussion of how to publish/share recipes. Here is a [http://flickr.com/photos/tantek/422072573/ photo of the whiteboard]:<br />
<br />
[http://flickr.com/photos/tantek/422072573/ http://farm1.static.flickr.com/162/422072573_9956d93f61.jpg]<br />
<br />
'''To Do''': OCR this and enter rough notes here...<br />
<br />
<br />
==Issues==<br />
Please do feel to add your comments below. If this section grows too large, please create a seperate recipe-issues section. Thanks!<br />
<br />
===Scope===<br />
*Is this intended for only food recipes, or also recipes for, say, glue, paint, dyes and other chemicals? [[User:AndyMabbett|Andy Mabbett]] 14:53, 16 Nov 2006 (PST)<br />
** +1 Wondered the same. I'd like to see this extended as a general recipe for anything that can be created in a defined way/order, rather than just edible food.[[User:Phae|Frances Berriman]]<br />
** Agreed. This format could apply to a set of methods and materials, including cooking, science experiments, craft making, building, etc. - essentially any how-to or tutorial. [[User:IamCam|Cameron Perry]]<br />
** However, now I view my addition of 'calories per serving' as suspect, ;) though I guess it could still apply, since it's just a unit of energy. [[User:JohnLeMasney|John LeMasney]]<br />
***Recipe for Nitroglycerine (not recommended by Weight Watchers) ? [[User:AndyMabbett|Andy Mabbett]] 10:43, 1 Feb 2007 (PST)<br />
** The scope is determined by the [[recipe-examples]] research that is done, other musings are purely theoretical and thus discouraged. So far this means recipes means only food recipes. In addition, "recipe" in common vernacular applies primarily to food. Other uses are certainly outside the common 80/20 (note that 80/20 does note mean there are no non-food cases, merely that they are outside the 80). If you want to pursue other types of recipes, e.g. "chemical-recipes" - start that as a separate research effort per the [[process]]. [[User:Tantek|Tantek]] 07:39, 15 Mar 2007 (PDT)<br />
*** Work is continuing on the recipe format now with the scope limited to food-based items only. [[User:Phae|Phae]] 08:44, 3 Oct 2007 (PDT)<br />
*Is it possible to have special structure for the details of the operations in the cooking. For Eg. I invite you to have a look at the following Page [http://www.anthus.com/Recipes/CompCook.html]. Should it be possible to have special markup for the operations? Or is that going too far? Maybe we could keep this open ended so that it could be included when sites would actually be interested in including the same... Anyway the article makes for some interesting reading though it is from 1985 ;-) [[User:SudarshanP|SudarshanP]] 06:46, 26 Jun 2007 (PDT)<br />
** I think this could be considered out of scope. It's the sort of thing that would be detailed in the descriptive narrative, but I'm not sure there's evidence from the examples that this type of behaviour is common enough to warrant specific properties to hold it. [[User:Phae|Phae]] 08:44, 3 Oct 2007 (PDT)<br />
===Measure ===<br />
{{OpenIssue}}<br />
*Quantities play a key part in recipes, so do we feel the recipe format will rely on quantities so heavily that the measure microformat needs to be completed first, or do we feel it can exist without it and use of measure can be optional in the first version? [[User:Phae|Phae]] 08:44, 3 Oct 2007 (PDT)<br />
**The former. [[User:AndyMabbett|Andy Mabbett]] 13:10, 4 Feb 2008 (PST)<br />
<br />
*The abbr design pattern should be used to mark up measures, such as lbs and kg, measures are also not restricted to ingredients as they describe temperature too, as such should the sup element be used in the presentation of the degree symbol, within the abbr? See [http://www.bbc.co.uk/weather/5day.shtml?id=1081 BBC weather example] [[User:Lee Jordan|Lee Jordan]] 20:00, 4 Feb 2008 (GMT)<br />
<br />
*Conversion is tricky and is important, you've found a great recipe but it's measured in "cups". temperature is usually handled well by recipe authors, unless "gas mark" is used. The lang attribute (optional) could be used to denote the intentional language convention of the markup, to aid parsers "convert on the fly"? Is there currently a sematic way of marking up content as being metric or imperial? (complications come in mixed measure conventions in the same text section, so lang= on the abbr rather than the ul would help). A browser could then know the text was originally written in metric and convert to imperial if the user agent was en-GB, or a DOM script equally could aid conversion from cups to oz based on that? As an Englishman reading American text I find it hard to know what a "cup" is and then there are the Europeans to consider. Lang attributes might not be useful as for example en-US and en-GB measure distance in miles for example, rel="us-volume" (cups), rel="gb-volume" (tablespoons)? [[User:Lee Jordan|Lee Jordan]] 20:15, 4 Feb 2008 (GMT)<br />
<br />
==Single foodstuffs==<br />
<br />
If "method" is made optional, this could be used for marking up individual foodstuffs in prose. for example, "I like to eat cheese for supper." would become:<br />
<br />
<pre><nowiki><br />
I like to eat <span class="hRecipe"><span class="ingredient">cheese</span></span> for supper.<br />
</nowiki></pre><br />
<br />
or simply (if the proposed "[http://microformats.org/discuss/mail/microformats-discuss/2008-January/011199.html sub-microformat-pattern]" is adopted):<br />
<br />
<pre><nowiki><br />
I like to eat <span class="hRecipe-ingredient">cheese</span> for supper.<br />
</nowiki></pre><br />
<br />
: [[User:AndyMabbett|Andy Mabbett]] 08:16, 5 Jan 2008 (PST)<br />
<br />
==Menus==<br />
With the addition of a "price" field, and perhaps one or two others, and again making "method" optional, this microformat can also be used for menus. See [[recipe-examples#Menus|menu examples]].<br />
<br />
: [[User:AndyMabbett|Andy Mabbett]] 02:39, 19 Feb 2008 (PST)<br />
<br />
== See Also ==<br />
* [[recipe]]<br />
* [[recipe-examples]]<br />
* [[recipe-formats]]</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=recipe-brainstorming&diff=25778recipe-brainstorming2008-02-19T10:39:03Z<p>AndyMabbett: /* Menus */ method should be optional</p>
<hr />
<div>= Recipe Brainstorming =<br />
<br />
Towards a [[recipe|Recipe]] microformat. Please read the [[process]] before editing this page.<br />
<br />
==Format-In-Progress==<br />
<br />
This format-in-progress follows the restarting of Recipe development by [[User:Phae|Frances Berriman]] on 25th September 2007. Note that this Format-In-Progress section is intended to be edited to reflect the discussion that occurs on the microformats-new list, rather than being a free-form playground for schema.<br />
<br />
; Editors<br />
: [[User:BenWard|Ben Ward]] (Yahoo!, Inc.)<br />
: [[User:Phae|Frances Berriman]] (BBC)<br />
<br />
===Introduction===<br />
<br />
Recipe is based on [[recipe-examples|examples]] and fields in [[recipe-formats|existing formats]]. <br />
<br />
The recipe microformat is designed for the mark-up of instructions for creating meals, drinks or food-based items. <br />
<br />
===Root Class Name===<br />
<br />
To be decided. Likely ‘hrecipe’.<br />
<br />
===Property List===<br />
<br />
Recipe properties, with sub-properties listed in parentheses, like <em>(this)</em>, plurality indicated by square brackets, like <em>this[]</em>. Note that the draft property names may change, but their function should remain.<br />
<br />
Optional and required for each field is explicitly stated at this stage. Fields without have not been determined.<br />
<br />
* Title - Required.<br />
* Summary – A short introduction, accompanying statement about the recipe. Optional.<br />
* Author - An hCard for the author of the recipe. Optional.<br />
* Date Published - Optional<br />
* Photo[] - Accompanying image. Optional.<br />
* Ingredient[] (Quantity [Optional], Name [Required], ‘Optionality’ [Optional], Preparation Notes [Optional]) - 1 or more required.<br />
* Method - The block of text containing the method of the recipe. Required.<br />
<br />
Ingredient > ‘Optionality’. States that an ingredient is optional to the recipe. Its absence should imply that the ingredient is required. <br />
<br />
===Suggested fields for inclusion===<br />
<br />
* License - using rel-licence attribution<br />
* Tags - using rel-tag.<br />
* Method > Steps or Method-Step[] as a child of Method. Imply ordered steps from an HTML list or explicitly mark-up ordered steps respectively.<br />
* Yield – Quantity produced by this recipe<br />
* Calories – per serving. May be part of the [measure] microformat in future.<br />
<br />
===Known Issues===<br />
<br />
* Mark-up of quantity would be enhanced by use of a [measure] microformat. However, such a format does not yet exist outside of brainstorming. It must be decided whether quantity is useful/parsable _enough_ without explicit mark-up of values and units.<br />
<br />
==RecipeML-based Brainstorm==<br />
<br />
Excerpted from [http://conoroneill.com/2006/03/21/what-if-i-suggest-a-structured-recipe-format-and-you-critique-it/ Conor Bandon's Blog entry] and derived from The RecipeML Spec:<br />
*Recipe_Title<br />
*Summary Description (one liner)<br />
*Measurement System (U.S., Imperial etc)<br />
*Ingredients (each one a separate "item" rather than block text with count/amount/range/unit broken out too)<br />
**Some (e.g. meats, vegetables) could optionally be marked up with (elements of) the proposed [[species]] microformat. [[User:AndyMabbett|Andy Mabbett]] 06:41, 16 Nov 2006 (PST)<br />
** Ingredient importance (e.g. Main, Required, Optional) should be listed as an attribute of each entry. [[User:AlexanderShusta|α]]<br />
**Units need separate microformat: see [[measure]] <br />
**Ingredient Preparation: such as diced, chopped, sliced, grated, minced, etc. [[User:SteveL|Steve Lewis]] 18:55, 11 Feb 2007 (PST)<br />
*Preparation Time (overall time)<br />
*Yield Quantity and Unit (4 pancakes or 5 servings)<br />
**Calories per serving [[User:JohnLeMasney| John LeMasney]]<br />
**Calories per ounce [[User:JohnLeMasney| John LeMasney]] <br />
*Background Information - Optional section to encapsulate information that is useful but not necessarily required for a successful recipe. [[User:AlexanderShusta|α]]<br />
**Author (Person) ([[hcard]]?)<br />
**Submitter (Person) ([[hcard]]?)<br />
**Source (Book Title etc)<br />
*** could use the proposed [[citation]] microformat. [[User:AndyMabbett|Andy Mabbett]] 06:43, 16 Nov 2006 (PST)<br />
**Date (Of Creation or Publication)<br />
**Rights (Copyright or other)<br />
**Meal Category (Starter, entree, dessert )<br />
**Cuisine Category (Italian etc)<br />
*Instructions (text, but can contain:)<br />
**Steps (optional)<br />
***Should be an ordered list [[User:AndyMabbett|Andy Mabbett]] 14:46, 16 Nov 2006 (PST)<br />
***Another vote for an ordered list, perhaps in the [[XOXO]] format. [[User:AlexanderShusta|α]]<br />
*Photo (optional) [[User:IamCam|Cameron Perry]]<br />
**Could be one per dish, or one for each (or for some of the) step(s). [[User:AndyMabbett|Andy Mabbett]]<br />
<br />
== Additional Suggestions ==<br />
<br />
*Difficulty/Notes - Perhaps incorporation of [[hreview|hReview]] to describe difficulty (using rating) and general comments (review), as an optional field. [[User:Phae|Frances Berriman]]<br />
*Suitability (e.g. vegetarian, vegan, wheat-free, etc.). Possibly [[rel-tag]]. [[User:AndyMabbett|Andy Mabbett]] 14:57, 16 Nov 2006 (PST)<br />
*Ingredient Grouping - In baking you need to differentiate wet from dry ingredients. See also an [[recipe-examples|example recipe]] from [http://www.extratasty.com/recipe/46/cuba_libre extratasty.com] for useful grouping in cocktail mixing. [[SteveL|Steve Lewis]] 19:10, 11 Feb 2007<br />
** Maybe this ingredient grouping can be used to express some alternative ingredients, like "mayonnaise or cream cheese". [[EstevaoSamuel|Estêvão Samuel Procópio]] 15:33, 16 Dez 2007 (PDT)<br />
* Number of dishes or similary - often it's mentioned how many dishes (or breads in baking, etc) the ingredients are for. [[User:WilleRaab|WilleRaab]] 16:57, 20 Jul 2007 (PDT)<br />
* Suitable for occations - what occations are the dish suitable for? [[User:WilleRaab|WilleRaab]] 16:57, 20 Jul 2007 (PDT)<br />
* Category - many sites categorize their recipes. [[User:WilleRaab|WilleRaab]] 16:57, 20 Jul 2007 (PDT)<br />
<br />
Note: Comments added ''"[[User:WilleRaab|WilleRaab]] 16:57, 20 Jul 2007 (PDT)"'' are added after looking at http://tasteline.com, example: [http://www.tasteline.com/default.ns?strItemID=showRecipe&intChannelID=&lngRID=8045&tlfo=0 here].<br />
<br />
*Under what terms is the recipe licensed? Microformat: rel="license". Often a page is in the creative commons but the page author has taken some text from a copyrighted page and in theory re-published the work in violation to the terms of use, adding a rel="license" to each recipe on the page? [[User:Lee Jordan|Lee Jordan]] 20:55, 04 Feb 2008 (GMT)<br />
<br />
== Cookcamp brainstorming ==<br />
<br />
At [http://barcamp.org/CookCamp CookCamp] in February 2007, Tantek moderated a fairly free form discussion of how to publish/share recipes. Here is a [http://flickr.com/photos/tantek/422072573/ photo of the whiteboard]:<br />
<br />
[http://flickr.com/photos/tantek/422072573/ http://farm1.static.flickr.com/162/422072573_9956d93f61.jpg]<br />
<br />
'''To Do''': OCR this and enter rough notes here...<br />
<br />
<br />
==Issues==<br />
Please do feel to add your comments below. If this section grows too large, please create a seperate recipe-issues section. Thanks!<br />
<br />
===Scope===<br />
*Is this intended for only food recipes, or also recipes for, say, glue, paint, dyes and other chemicals? [[User:AndyMabbett|Andy Mabbett]] 14:53, 16 Nov 2006 (PST)<br />
** +1 Wondered the same. I'd like to see this extended as a general recipe for anything that can be created in a defined way/order, rather than just edible food.[[User:Phae|Frances Berriman]]<br />
** Agreed. This format could apply to a set of methods and materials, including cooking, science experiments, craft making, building, etc. - essentially any how-to or tutorial. [[User:IamCam|Cameron Perry]]<br />
** However, now I view my addition of 'calories per serving' as suspect, ;) though I guess it could still apply, since it's just a unit of energy. [[User:JohnLeMasney|John LeMasney]]<br />
***Recipe for Nitroglycerine (not recommended by Weight Watchers) ? [[User:AndyMabbett|Andy Mabbett]] 10:43, 1 Feb 2007 (PST)<br />
** The scope is determined by the [[recipe-examples]] research that is done, other musings are purely theoretical and thus discouraged. So far this means recipes means only food recipes. In addition, "recipe" in common vernacular applies primarily to food. Other uses are certainly outside the common 80/20 (note that 80/20 does note mean there are no non-food cases, merely that they are outside the 80). If you want to pursue other types of recipes, e.g. "chemical-recipes" - start that as a separate research effort per the [[process]]. [[User:Tantek|Tantek]] 07:39, 15 Mar 2007 (PDT)<br />
*** Work is continuing on the recipe format now with the scope limited to food-based items only. [[User:Phae|Phae]] 08:44, 3 Oct 2007 (PDT)<br />
*Is it possible to have special structure for the details of the operations in the cooking. For Eg. I invite you to have a look at the following Page [http://www.anthus.com/Recipes/CompCook.html]. Should it be possible to have special markup for the operations? Or is that going too far? Maybe we could keep this open ended so that it could be included when sites would actually be interested in including the same... Anyway the article makes for some interesting reading though it is from 1985 ;-) [[User:SudarshanP|SudarshanP]] 06:46, 26 Jun 2007 (PDT)<br />
** I think this could be considered out of scope. It's the sort of thing that would be detailed in the descriptive narrative, but I'm not sure there's evidence from the examples that this type of behaviour is common enough to warrant specific properties to hold it. [[User:Phae|Phae]] 08:44, 3 Oct 2007 (PDT)<br />
===Measure ===<br />
{{OpenIssue}}<br />
*Quantities play a key part in recipes, so do we feel the recipe format will rely on quantities so heavily that the measure microformat needs to be completed first, or do we feel it can exist without it and use of measure can be optional in the first version? [[User:Phae|Phae]] 08:44, 3 Oct 2007 (PDT)<br />
**The former. [[User:AndyMabbett|Andy Mabbett]] 13:10, 4 Feb 2008 (PST)<br />
<br />
*The abbr design pattern should be used to mark up measures, such as lbs and kg, measures are also not restricted to ingredients as they describe temperature too, as such should the sup element be used in the presentation of the degree symbol, within the abbr? See [http://www.bbc.co.uk/weather/5day.shtml?id=1081 BBC weather example] [[User:Lee Jordan|Lee Jordan]] 20:00, 4 Feb 2008 (GMT)<br />
<br />
*Conversion is tricky and is important, you've found a great recipe but it's measured in "cups". temperature is usually handled well by recipe authors, unless "gas mark" is used. The lang attribute (optional) could be used to denote the intentional language convention of the markup, to aid parsers "convert on the fly"? Is there currently a sematic way of marking up content as being metric or imperial? (complications come in mixed measure conventions in the same text section, so lang= on the abbr rather than the ul would help). A browser could then know the text was originally written in metric and convert to imperial if the user agent was en-GB, or a DOM script equally could aid conversion from cups to oz based on that? As an Englishman reading American text I find it hard to know what a "cup" is and then there are the Europeans to consider. Lang attributes might not be useful as for example en-US and en-GB measure distance in miles for example, rel="us-volume" (cups), rel="gb-volume" (tablespoons)? [[User:Lee Jordan|Lee Jordan]] 20:15, 4 Feb 2008 (GMT)<br />
<br />
==Single foodstuffs==<br />
<br />
If "method" is made optional, this could be used for marking up individual foodstuffs in prose. for example, "I like to eat cheese for supper." would become:<br />
<br />
<pre><nowiki><br />
I like to eat <span class="hRecipe"><span class="ingredient">cheese</span></span> for supper.<br />
</nowiki></pre><br />
<br />
or simply (if the proposed "[http://microformats.org/discuss/mail/microformats-discuss/2008-January/011199.html sub-microformat-pattern]" is adopted):<br />
<br />
<pre><nowiki><br />
I like to eat <span class="hRecipe-ingredient">cheese</span> for supper.<br />
</nowiki></pre><br />
<br />
: [[User:AndyMabbett|Andy Mabbett]] 08:16, 5 Jan 2008 (PST)<br />
<br />
==Menus==<br />
With the addition of a "price" field, and perhaps one or two others, and again making "method" optional, this microformat can also be used for menus. See [[recipe-examples#Menus|menu examples]].<br />
<br />
== See Also ==<br />
* [[recipe]]<br />
* [[recipe-examples]]<br />
* [[recipe-formats]]</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=recipe-examples&diff=25779recipe-examples2008-02-19T10:37:42Z<p>AndyMabbett: /* Menus */ fmt</p>
<hr />
<div><h1> Recipe Examples </h1><br />
<br />
Per the microformats [[process]] this is an [[examples]] page documenting existing real world examples of actual ''tasty'' recipes published on the Web. Next steps are to research [[recipe-formats]] and then (only ''after'' that), proceed with [[recipe-brainstorming]]. Only URLs to actual recipes please.<br />
<br />
'''Please read both [[process]] and [[examples]] before editing this page.'''<br />
<br />
__TOC__<br />
<br />
== Contributors ==<br />
<br />
* [http://tantek.com/ Tantek Çelik]<br />
* [[User:RobertBachmann|Robert Bachmann]]<br />
* [[User:JeffMcNeill|jeffmcneill]]<br />
<br />
== Recipe Lists ==<br />
* [http://orens.com/stuff/recipes.html Steve and Aytek's recipes]. Note that they are simply using [[xoxo|XOXO]] for the lists. It doesn't appear that anything more is necessary for a list of recipes.<br />
* [http://www.myvegrecipes.com/category/main-dishes My Veg Recipes]. Also uses [[xoxo|XOXO]] for lists of recipes.<br />
* ...<br />
* ...<br />
<br />
== Recipes Examples ==<br />
<br />
=== Individuals ===<br />
<br />
==== Hamburger ====<br />
[http://en.wikibooks.org/wiki/Cookbook:Hamburger Wikibooks Cookbook:Hamburger]<br />
<br />
Composed of<br />
* Summary<br />
** Categories<br />
** Servings<br />
** Time<br />
** Rating<br />
** Energy<br />
** Image<br />
* Recipe<br />
** Description (text)<br />
** Ingredients (required/optional)<br />
** Procedure (OL)<br />
** Suggestions (text)<br />
** Notes, tips and variations (UL)<br />
** Categories<br />
<br />
==== Lentil Stew ====<br />
[http://1moon.com/recipes/mercimek.html Neriman’s Mercimek - Yummy Lentils]<br />
<br />
* Appears to be a simple BBEdit 5.0 conversion of a plain text file into HTML 3.2<br />
* Uses <code>&lt;br&gt;&lt;br&gt;</code> to delimit sections<br />
* Composed of:<br />
** author of recipe<br />
** title of recipe, with English translation<br />
** top level structure of time/instructions, with ingredients noted as necessary for each step<br />
** serving suggestion(s) (serve with ...)<br />
<br />
==== Mocha Brownie Cake ====<br />
[http://orens.com/stuff/recipe_data/mocha_brownie_cake.html Mocha Brownie Cake]<br />
<br />
* Composed of<br />
** title of recipe / food item (looks like a heading)<br />
** sequence of larger tasks (separated by subheadings), each of which has<br />
*** list of ingredients (uses <code>&lt;ul&gt;</code>) for a particular component of the dish<br />
*** preparation instructions for those ingredients<br />
*** OR a instructions for assembling components of the dish<br />
** contributing baker - perhaps someone who has modified the recipe?<br />
** source - citation of where recipe originally came from<br />
<br />
==== A Moroccan-ish Casserole ====<br />
[http://www.simonwheatley.co.uk/2006/03/26/a-moroccan-ish-casserole/ Simon Wheatley]<br />
<br />
* Structured semantic XHTML based, as well as possible, on hcard/review type principles<br />
* Composed of:<br />
** title<br />
** description<br />
** number of servings (quantity)<br />
** prep time<br />
** cooking time<br />
** approval rating (from hreview)<br />
** ingredients<br />
** preparation steps<br />
<br />
May expand to include: variation suggestions<br />
<br />
==== Fruit Salad ====<br />
<br />
[http://diveintomark.org/archives/2006/06/09/fruit-salad-recipe fruit salad (Mark Pilgrim)]<br />
<br />
Extremely detailed instructions.<br />
<br />
* Composed of (at least)<br />
** title of recipe<br />
** description<br />
** number of servings (quantity)<br />
** shopping instructions<br />
** ingredients<br />
** ingredients to avoid<br />
** preparation steps<br />
** left-over preservation instructions<br />
<br />
<br />
==== Perfect Flank Steak ====<br />
<br />
[http://www.dvorak.org/blog/?p=6283 John C. "CSS is a series of tubes" Dvorak]<br />
<br />
* Composed of<br />
** title of recipe<br />
** description<br />
** ingredients<br />
** preparation steps<br />
** suggested accompaniments<br />
<br />
==== Veggie Chicken Enchiladas ====<br />
<br />
[http://www.myvegrecipes.com/recipe/chicken-enchiladas Veggie Chicken Enchiladas]<br />
[http://www.myvegrecipes.com/recipe/xml/chicken-enchiladas.xml Veggie Chicken Enchiladas XML]<br />
<br />
* Attempts to use XOXO as a recipe microformat<br />
* Composed of<br />
** ingredients<br />
** instructions<br />
** servings<br />
** prep time<br />
** serving suggestions<br />
** cook's tips<br />
** variations<br />
** time saving tips<br />
<br />
====Spaghetti primavera====<br />
<br />
[http://blog.bumblepuppy.org.uk/2006/10/05/spaghetti-primavera/ Spaghetti-primavera]<br />
<br />
*Written as prose<br />
*Contains:<br />
** introduction - containing source of original recipe book inspiration<br />
** ingredients (in paragraph, comma separated)<br />
** instructions (paragraph)<br />
** observation (creates a lot of washing up!)<br />
<br />
=== Services ===<br />
<br />
==== cookingwithbooze.org ====<br />
*[http://cookingwithbooze.org/ Cooking with Booze] is a cookbook and associated free-access website. All the recipes are marked up in a combination of XOXO and microformat:<br />
* Composed of<br />
** title of recipe (as a heading)<br />
** note/introduction<br />
** unordered list of ingredients<br />
** ordered list of instructions<br />
* [http://cookingwithbooze.org/for-geeks#microformats More information about the microformat]<br />
* You can also download the whole recipe list as a dataset for your own experiments, in the form as a tagged XML file as output by InDesign. [http://cookingwithbooze.org/for-geeks#microformats]<br />
* Any questions: [http://shorttermmemoryloss.com http://shorttermmemoryloss.com]<br />
<br />
==== allrecipes.com - Sachertorte ====<br />
[http://cake.allrecipes.com/az/Sachertorte.asp Sachertorte (allrecipes.com)]<br />
<br />
* Composed of<br />
** title of recipe (as a heading)<br />
** name of the submitter<br />
** description of the food item (e.g: "Elegant chocolate cake.")<br />
** optional photo<br />
** servings count<br />
** sequence of ingredients (uses <code>&lt;ul&gt;</code>)<br />
** sequence of preperation instructions (uses <code>&lt;ol&gt;</code>)<br />
<br />
<br />
==== BBC Food - Marzipanned fruit cake ====<br />
<br />
[http://www.bbc.co.uk/food/recipes/database/marzipannedfruitcake_14581.shtml Marzipanned fruit cake] [http://www.bbc.co.uk/food/recipes/ BBC Food Recipes]<br />
<br />
* Composed of (all B&BR markup)<br />
** title of recipe<br />
** name of submitter/source<br />
** servings count/quanity<br />
** preparation time<br />
** cooking time<br />
** image<br />
** suitable for vegetarians icon<br />
** description of recipe<br />
** ingredients list<br />
** method steps<br />
** notes<br />
<br />
==== cooking.com - Jamaican Chicken Stew Recipe ====<br />
[http://www.cooking.com/recipes/rerecite.asp?No=8196 Jamaican Chicken Stew Recipe (cooking.com)]<br />
* Consists of<br />
** Recipe Title (<code>&lt;font&gt;</code><code>&lt;b&gt;</code> used for header)<br />
*** Source (Magazine, book, title, etc. with a link.)<br />
*** Serving Size<br />
** Photo area<br />
*** Recipe Email, Save, Print options<br />
*** Photo<br />
** Recipe Ingredients (heading uses <code>&lt;b&gt;</code> <code>&lt;br&gt;</code>, each ingredient in separate <code>&lt;td&gt;</code>, ingredient keywords linked to a glossary)<br />
** Recipe Method (no <code>&lt;p&gt;</code> used, uses <code>&lt;td&gt;</code>, <code>&lt;font&gt;</code> and <code>&lt;br&gt;</code>)<br />
*** Copyright reprint info appears at end of prep info.<br />
** Nutrition Facts (<code>&lt;font&gt;</code><code>&lt;b&gt;</code> used for header)<br />
*** Serving size info repeated<br />
*** Nutritional elements per serving (each item and value are in separate <code>&lt;td&gt;</code>)<br />
<br />
Notes: No meaningful markup used. Recipes use <code>&lt;table&gt;</code> for all layout/presentation. <code>&lt;b&gt;</code>, <code>&lt;br&gt;</code>, and nested <code>&lt;font&gt;</code> used throughout. Line images separate sections of recipe.<br />
<br />
==== cuzza.com - Chicken Jalfrezi Recipe ====<br />
[http://cuzza.com/recipes/jalfrezi/ Chicken Jalfrezi Recipe (cuzza.com)]<br />
* Consists of<br />
** Recipe Title (<code>&lt;h2&gt;</code>)<br />
*** Subheading/summary description (<code>&lt;h3&gt;</code>)<br />
*** Teaser text with photo (<code>&lt;div class="teaser"&gt;&lt;div class="mainImg"&gt;</code>)<br />
** Method steps (each step in a <code>&lt;div class="step"&gt;</code> with an image and text)<br />
** Number of servings (<code>&lt;h5&gt;</code>)<br />
** Ingredients list (in a definition list; quantities and units not marked up separately; some ingredients link to an explanatory page)<br />
** "Chef's notes". Explanatory notes offering advice and alternatives.<br />
<br />
==== epicurious.com - Moroccan Braised Beef ====<br />
[http://www.epicurious.com/recipes/recipe_views/views/230639 Moroccan Braised Beef (epicurious.com)]<br />
* Composed of<br />
** Recipe Intro Area<br />
*** Photo (uses <code>&lt;p&gt;</code>)<br />
*** Recipe Title (uses <code>&lt;h1&gt;</code>)<br />
*** Quick intro description (No <code>&lt;p&gt;</code>)<br />
** Ingredients * (uses <code>&lt;br&gt;</code>)<br />
** Preparation *<br />
*** Preparation instructions (some recipes offer Cooks' notes: - surrounded by *b* tagset, and uses <code>&lt;br&gt;</code> )<br />
*** Serving size<br />
*** Origin (span class = source, magazine title)<br />
*** Copyright info (span class = copyright: publication date and location if available)<br />
** Your notes * (user/visitor may add/submit notes to appear on their printed copy)<br />
** Reviews * (fork ratings, 1-4)<br />
<br />
Notes: Images are the secondary headings * (class = hdr) , no sub heading markup. Recipes do not use use <code>&lt;li&gt;</code> and use <code>&lt;br&gt;</code> instead of <code>&lt;p&gt;</code> often.<br />
<br />
==== extratasty.com - Cuba Libre ====<br />
[http://www.extratasty.com/recipe/46/cuba_libre Cuba Libre (extratasty.com)]<br />
<br />
* Composed of<br />
** title of recipe <br />
** name of the submitter<br />
** sequence of ingredients <br />
** preperation instructions (continuous text)<br />
** Recipe rating (US school grad system)<br />
<br />
<br />
==== recipesource.com - Cranberry Cherry Relish ====<br />
[http://www.recipesource.com/side-dishes/relishes/00/rec0053.html CRANBERRY CHERRY RELISH (recipesource.com)]<br />
* Consists of<br />
** Exported info (if from mastercook, mealmaster)<br />
** Title (in uppercase)<br />
** Recipe by: (source, author info)<br />
** Serving size: Preparation Time:<br />
** Categories:<br />
** Ingredients ( displayed in columns: Amount : Measure : Ingredient -- Preparation Method )<br />
** Cooking Instructions<br />
<br />
Note: Recipe is in text format using <code>&lt;pre&gt;</code> inside a <code>&lt;td&gt;</code>.<br />
<br />
==== www.cooker.net - Muffins Zucca e Radicchio ====<br />
[http://www.cooker.net/cooker/cooker.nsf/puid/9F1CF8E0983AC24186257286003C2277 Muffins Zucca e Radicchio (cooker.net)]<br />
<br />
*Consists of:<br />
**Yield<br />
**Unordered list of ingredients<br />
**Preparations<br />
**Photographs<br />
**Feedback<br />
**Classification (category recipe features in)<br />
<br />
==== asianfoodgrocer.com - Asian Rice Salad ====<br />
[http://www.asianfoodgrocer.com/recipes/77439.shtml Asian Rice Salad (AsianFoodGrocer.com)]<br />
<br />
*Consists of:<br />
**Title<br />
**Yield<br />
**Blurb<br />
**Ingredients (3 column table)<br />
**Instructions (numbered but not an ordered list)<br />
**Author or Source Credit<br />
<br />
b and br markup, no headings. Ingredients displayed in table, one ingredient per row - 3 columns: first for quantity or measurement number, second for measure type if there is one (c, ts, tb, etc.), third column for the ingredient type.<br />
<br />
==== Good Living: Sydney Morning Herald - Asparagus and herb frittata ====<br />
<br />
[http://www.smh.com.au/news/recipes/asparagus/2007/09/10/1189276601142.html Asparagus and herb frittata (smh.com.au/news/recipes/ Sydney Morning Herald: Recipes)]<br />
<br />
Note: An article about Asparagus contains this recipe.<br />
<br />
* Article Title (h1 markup)<br />
** Author<br />
** Date<br />
** Article content<br />
*** Recipe Title (h3 markup)<br />
**** Ingredients (1 paragraph, ingredients separated with br markup)<br />
**** Directions (method, p used for steps)<br />
**** Servings (p, b markup)<br />
<br />
Measurement units note: This recipe mixes, tbs, cm, ml, and g.<br />
<br />
==== Real Cajun Recipes: Chicken Fricassee ====<br />
[http://www.realcajunrecipes.com/recipes/cajun/chicken-fricassee/4.rcr Chicken Fricassee (RealCajunRecipes.com)]<br />
<br />
Recipe is formatted with table/nested table<br />
<br />
* Title (h3 heading)<br />
** Food Category (not linked)<br />
** Recipe Author<br />
** Author origin (location)<br />
** Date<br />
** Drag and Drop icon for MacGourmet* users<br />
** Ratings (up to 5 stars)<br />
** Ratings link (viewer can rate recipe)<br />
* The top section of the recipe is separated with an hr, rest of recipe in nested table.<br />
** servings<br />
** prep time<br />
** cook time<br />
** ready time<br />
** author note<br />
** Ingredients (appear in two columns, table)<br />
** Directions (paragraph format for steps)<br />
<br />
'''Special Note'''*<br />
[http://www.apple.com/downloads/macosx/home_learning/macgourmet.html MacGourmet] is software which allows creation, import (of other recipes and recipe formats), export of recipes, Publishing of recipes to MovableType, Blogger, TypePad, and Blojsom weblogs. Categorization and search features. It would be good to see how these recipes are formatted. MacGourmet - 'iTunes for recipes' and can create/export shopping lists for the recipes (including to PDA, iPod, etc.), Demo available at link. Also see wiki page [[recipe-formats#MacGourmet]]<br />
<br />
==== BigOven: Angel Hair with Tomatoes, Basil And Arugula recipe ====<br />
<br />
Recipe Example: [http://www.bigoven.com/152986_Angel-Hair-with-Tomatoes,-Basil-And-Arugula_recipe.html Angel Hair with Tomatoes, Basil And Arugula recipe (BigOven)].<br />
<br />
[http://bigoven.com/ BigOven] - recipe software application with an online collection of recipes which were submitted from registered site users or published, exported from its software users. Published recipes can be rated online, and additional tags/categories or ingredients can be applied to published recipes. Also see the [[recipe-formats#Big_Oven]] wiki page.<br />
<br />
Recipe output for the site uses span tags with id to format or link information. HTML format: ingredients are in table format. Uses br, no p tags.<br />
<br />
This is an example recipe format from the site:<br />
<br />
* Recipe Title - h1, span id="lblTitle" <br />
** Intro Line - span id="lblSubhead", br<br />
** Ratings - img id="img_rating"<br />
** Photo<br />
** Ingredients - h2, span id="Label1" <br />
*** Individual Ingredients - (2 column table, ingredient keyword is linked, link appended with id=ingredient name.)<br />
** Instructions - h2, span id="Label2" <br />
*** Directions (br, span id="lblInstructions", br) - instructions, nutritional info, author, date included.<br />
** Main ingredient tag - span id="Label7", span id="lblMainIngredient" , link to Main Ingredient)<br />
** ADD tags. Form submit buttons for additional tag categorization (related linking). - id="lblCategoriesLabel"<br />
<br />
==== Gopher: Fudge Recipe ====<br />
[gopher://hal3000.cx/0/Recipes/fudge.txt gopher://hal3000.cx/0/Recipes/fudge.txt]<br />
<br />
Note: this is '''gopher:''' (may not work in all browsers, will with Firefox)<br />
<br />
Format plain text -- formatting line breaks, sometimes dashes for ingredient lists, underlining of title. Whitespace preserved with pre tagset.<br />
<br />
Recipe consists of:<br />
* Introductory information<br />
* Recipe Title<br />
** Ingredients<br />
** Instructions<br />
<br />
Another Recipe collection on Gopher at the Online Book Initiative:<br />
<br />
[gopher://gopher.std.com/11/The%20Online%20Book%20Initiative/Recipes gopher://gopher.std.com/11/The%20Online%20Book%20Initiative/Recipes]<br />
<br />
==== DobrePrzepisy.org: Faworki ====<br />
Recipe example: [http://dobreprzepisy.org/przepis/255/faworki.html Faworki (dobreprzepisy.org)]<br />
<br />
* Composed of:<br />
** title of recipe (<code>&lt;h1&gt;</code>)<br />
** food category (links to the directory)<br />
** name of the submitter (links to profile) and date added<br />
** rating (stars, 1-5)<br />
** optional photo<br />
** additional info: (<code>&lt;h3&gt; and &lt;ul&gt;</code>)<br />
*** difficulty (3 levels: easy | intermediate | difficult)<br />
*** servings count<br />
*** preparation time<br />
*** overall cost<br />
*** suitable for vegetarians icon (added as <code>background-image</code>)<br />
** sequence of ingredients (<code>&lt;ul&gt;</code>)<br />
** preparation instructions (<code>&lt;p&gt;</code>)<br />
** user's comments<br />
<br />
==== W3.org Lists Example ====<br />
[http://www.w3.org/TR/html4/struct/lists.html#h-10.1 w3.org]<br />
<br />
* Composed of<br />
** <code>&lt;dl&gt;</code><br />
*** <code>&lt;dt&gt;</code> - ingredients heading<br />
*** <code>&lt;dd&gt;</code><br />
**** <code>&lt;ol&gt;</code> and <code>&lt;li&gt;</code> - ingredients<br />
*** <code>&lt;dt&gt;</code> - procedure heading<br />
*** <code>&lt;dd&gt;</code><br />
**** <code>&lt;ul&gt;</code> and <code>&lt;li&gt;</code> - procedure<br />
*** <code>&lt;dt&gt;</code> - notes heading<br />
*** <code>&lt;dd&gt;</code> - notes<br />
<br />
===Menus===<br />
<br />
==== The Crepe Vine ====<br />
<br />
See [http://www.thecrepevine.com/menu.html The Crepe Vine].<br />
<br />
<pre><br />
<span class="menu2">APPETIZERS</span><br />
<p align="left">IMPORTED CHEESE PLATE & BAGUETTE ..........13<br><br />
<br><br />
TUNA TARTARE&nbsp; ..........8<br />
<br><br />
fresh tuna with roasted shallot aioli, and lotus chips<br />
<br><br />
<br><br />
BRUSCHETTA ..........8<br />
<br><br />
tomato, garlic, basil, chevre, olive oil and balsamic on crostini<br />
<br> <br />
<br><br />
STEAK TARTARE&nbsp; .......... 12<br />
<br><br />
Horseradish aioli, caramelized shallots, and potato hash<br />
<br><br />
<br><br />
BABY BEET SALAD&nbsp; ..........11<br />
<br><br />
candy cane baby beets, sherry vinaigrette and herb goat cheese<br />
</pre><br />
<br />
== Next Steps ==<br />
# Add more examples and analysis of their markup and implied schemas<br />
# Research existing [[recipe-formats]] ([http://home.comcast.net/~episoft/ Mealmaster], [http://www.formatdata.com/recipeml/ RecipeML], ...)<br />
# [[recipe-brainstorming]] on a minimal recipe schema that represents the 80/20 of common properties of the examples and reuses terms from existing widely implemented recipe formats.</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=User_talk:AngeloGladding&diff=25797User talk:AngeloGladding2008-02-19T10:36:23Z<p>AndyMabbett: Welcome; food examples</p>
<hr />
<div>==Welcome==<br />
{{welcome}}<br />
<br />
: [[User:AndyMabbett|Andy Mabbett]] 02:36, 19 Feb 2008 (PST)<br />
<br />
==Food==<br />
I've moved the content from the recently-created ''food-item-examples'' to the already-existing page at [[recipe-examples]].<br />
<br />
: [[User:AndyMabbett|Andy Mabbett]] 02:36, 19 Feb 2008 (PST)</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=User_talk:DavidNeudorfer&diff=25798User talk:DavidNeudorfer2008-02-19T10:36:05Z<p>AndyMabbett: Welcome; food examples</p>
<hr />
<div>==Welcome==<br />
{{welcome}}<br />
<br />
: [[User:AndyMabbett|Andy Mabbett]] 02:36, 19 Feb 2008 (PST)<br />
<br />
==Food==<br />
I've moved the content from the recently-created ''food-item-examples'' to the already-existing page at [[recipe-examples]].<br />
<br />
: [[User:AndyMabbett|Andy Mabbett]] 02:36, 19 Feb 2008 (PST)</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=recipe-examples&diff=25776recipe-examples2008-02-19T10:33:34Z<p>AndyMabbett: fmt</p>
<hr />
<div><h1> Recipe Examples </h1><br />
<br />
Per the microformats [[process]] this is an [[examples]] page documenting existing real world examples of actual ''tasty'' recipes published on the Web. Next steps are to research [[recipe-formats]] and then (only ''after'' that), proceed with [[recipe-brainstorming]]. Only URLs to actual recipes please.<br />
<br />
'''Please read both [[process]] and [[examples]] before editing this page.'''<br />
<br />
__TOC__<br />
<br />
== Contributors ==<br />
<br />
* [http://tantek.com/ Tantek Çelik]<br />
* [[User:RobertBachmann|Robert Bachmann]]<br />
* [[User:JeffMcNeill|jeffmcneill]]<br />
<br />
== Recipe Lists ==<br />
* [http://orens.com/stuff/recipes.html Steve and Aytek's recipes]. Note that they are simply using [[xoxo|XOXO]] for the lists. It doesn't appear that anything more is necessary for a list of recipes.<br />
* [http://www.myvegrecipes.com/category/main-dishes My Veg Recipes]. Also uses [[xoxo|XOXO]] for lists of recipes.<br />
* ...<br />
* ...<br />
<br />
== Recipes Examples ==<br />
<br />
=== Individuals ===<br />
<br />
==== Hamburger ====<br />
[http://en.wikibooks.org/wiki/Cookbook:Hamburger Wikibooks Cookbook:Hamburger]<br />
<br />
Composed of<br />
* Summary<br />
** Categories<br />
** Servings<br />
** Time<br />
** Rating<br />
** Energy<br />
** Image<br />
* Recipe<br />
** Description (text)<br />
** Ingredients (required/optional)<br />
** Procedure (OL)<br />
** Suggestions (text)<br />
** Notes, tips and variations (UL)<br />
** Categories<br />
<br />
==== Lentil Stew ====<br />
[http://1moon.com/recipes/mercimek.html Neriman’s Mercimek - Yummy Lentils]<br />
<br />
* Appears to be a simple BBEdit 5.0 conversion of a plain text file into HTML 3.2<br />
* Uses <code>&lt;br&gt;&lt;br&gt;</code> to delimit sections<br />
* Composed of:<br />
** author of recipe<br />
** title of recipe, with English translation<br />
** top level structure of time/instructions, with ingredients noted as necessary for each step<br />
** serving suggestion(s) (serve with ...)<br />
<br />
==== Mocha Brownie Cake ====<br />
[http://orens.com/stuff/recipe_data/mocha_brownie_cake.html Mocha Brownie Cake]<br />
<br />
* Composed of<br />
** title of recipe / food item (looks like a heading)<br />
** sequence of larger tasks (separated by subheadings), each of which has<br />
*** list of ingredients (uses <code>&lt;ul&gt;</code>) for a particular component of the dish<br />
*** preparation instructions for those ingredients<br />
*** OR a instructions for assembling components of the dish<br />
** contributing baker - perhaps someone who has modified the recipe?<br />
** source - citation of where recipe originally came from<br />
<br />
==== A Moroccan-ish Casserole ====<br />
[http://www.simonwheatley.co.uk/2006/03/26/a-moroccan-ish-casserole/ Simon Wheatley]<br />
<br />
* Structured semantic XHTML based, as well as possible, on hcard/review type principles<br />
* Composed of:<br />
** title<br />
** description<br />
** number of servings (quantity)<br />
** prep time<br />
** cooking time<br />
** approval rating (from hreview)<br />
** ingredients<br />
** preparation steps<br />
<br />
May expand to include: variation suggestions<br />
<br />
==== Fruit Salad ====<br />
<br />
[http://diveintomark.org/archives/2006/06/09/fruit-salad-recipe fruit salad (Mark Pilgrim)]<br />
<br />
Extremely detailed instructions.<br />
<br />
* Composed of (at least)<br />
** title of recipe<br />
** description<br />
** number of servings (quantity)<br />
** shopping instructions<br />
** ingredients<br />
** ingredients to avoid<br />
** preparation steps<br />
** left-over preservation instructions<br />
<br />
<br />
==== Perfect Flank Steak ====<br />
<br />
[http://www.dvorak.org/blog/?p=6283 John C. "CSS is a series of tubes" Dvorak]<br />
<br />
* Composed of<br />
** title of recipe<br />
** description<br />
** ingredients<br />
** preparation steps<br />
** suggested accompaniments<br />
<br />
==== Veggie Chicken Enchiladas ====<br />
<br />
[http://www.myvegrecipes.com/recipe/chicken-enchiladas Veggie Chicken Enchiladas]<br />
[http://www.myvegrecipes.com/recipe/xml/chicken-enchiladas.xml Veggie Chicken Enchiladas XML]<br />
<br />
* Attempts to use XOXO as a recipe microformat<br />
* Composed of<br />
** ingredients<br />
** instructions<br />
** servings<br />
** prep time<br />
** serving suggestions<br />
** cook's tips<br />
** variations<br />
** time saving tips<br />
<br />
====Spaghetti primavera====<br />
<br />
[http://blog.bumblepuppy.org.uk/2006/10/05/spaghetti-primavera/ Spaghetti-primavera]<br />
<br />
*Written as prose<br />
*Contains:<br />
** introduction - containing source of original recipe book inspiration<br />
** ingredients (in paragraph, comma separated)<br />
** instructions (paragraph)<br />
** observation (creates a lot of washing up!)<br />
<br />
=== Services ===<br />
<br />
==== cookingwithbooze.org ====<br />
*[http://cookingwithbooze.org/ Cooking with Booze] is a cookbook and associated free-access website. All the recipes are marked up in a combination of XOXO and microformat:<br />
* Composed of<br />
** title of recipe (as a heading)<br />
** note/introduction<br />
** unordered list of ingredients<br />
** ordered list of instructions<br />
* [http://cookingwithbooze.org/for-geeks#microformats More information about the microformat]<br />
* You can also download the whole recipe list as a dataset for your own experiments, in the form as a tagged XML file as output by InDesign. [http://cookingwithbooze.org/for-geeks#microformats]<br />
* Any questions: [http://shorttermmemoryloss.com http://shorttermmemoryloss.com]<br />
<br />
==== allrecipes.com - Sachertorte ====<br />
[http://cake.allrecipes.com/az/Sachertorte.asp Sachertorte (allrecipes.com)]<br />
<br />
* Composed of<br />
** title of recipe (as a heading)<br />
** name of the submitter<br />
** description of the food item (e.g: "Elegant chocolate cake.")<br />
** optional photo<br />
** servings count<br />
** sequence of ingredients (uses <code>&lt;ul&gt;</code>)<br />
** sequence of preperation instructions (uses <code>&lt;ol&gt;</code>)<br />
<br />
<br />
==== BBC Food - Marzipanned fruit cake ====<br />
<br />
[http://www.bbc.co.uk/food/recipes/database/marzipannedfruitcake_14581.shtml Marzipanned fruit cake] [http://www.bbc.co.uk/food/recipes/ BBC Food Recipes]<br />
<br />
* Composed of (all B&BR markup)<br />
** title of recipe<br />
** name of submitter/source<br />
** servings count/quanity<br />
** preparation time<br />
** cooking time<br />
** image<br />
** suitable for vegetarians icon<br />
** description of recipe<br />
** ingredients list<br />
** method steps<br />
** notes<br />
<br />
==== cooking.com - Jamaican Chicken Stew Recipe ====<br />
[http://www.cooking.com/recipes/rerecite.asp?No=8196 Jamaican Chicken Stew Recipe (cooking.com)]<br />
* Consists of<br />
** Recipe Title (<code>&lt;font&gt;</code><code>&lt;b&gt;</code> used for header)<br />
*** Source (Magazine, book, title, etc. with a link.)<br />
*** Serving Size<br />
** Photo area<br />
*** Recipe Email, Save, Print options<br />
*** Photo<br />
** Recipe Ingredients (heading uses <code>&lt;b&gt;</code> <code>&lt;br&gt;</code>, each ingredient in separate <code>&lt;td&gt;</code>, ingredient keywords linked to a glossary)<br />
** Recipe Method (no <code>&lt;p&gt;</code> used, uses <code>&lt;td&gt;</code>, <code>&lt;font&gt;</code> and <code>&lt;br&gt;</code>)<br />
*** Copyright reprint info appears at end of prep info.<br />
** Nutrition Facts (<code>&lt;font&gt;</code><code>&lt;b&gt;</code> used for header)<br />
*** Serving size info repeated<br />
*** Nutritional elements per serving (each item and value are in separate <code>&lt;td&gt;</code>)<br />
<br />
Notes: No meaningful markup used. Recipes use <code>&lt;table&gt;</code> for all layout/presentation. <code>&lt;b&gt;</code>, <code>&lt;br&gt;</code>, and nested <code>&lt;font&gt;</code> used throughout. Line images separate sections of recipe.<br />
<br />
==== cuzza.com - Chicken Jalfrezi Recipe ====<br />
[http://cuzza.com/recipes/jalfrezi/ Chicken Jalfrezi Recipe (cuzza.com)]<br />
* Consists of<br />
** Recipe Title (<code>&lt;h2&gt;</code>)<br />
*** Subheading/summary description (<code>&lt;h3&gt;</code>)<br />
*** Teaser text with photo (<code>&lt;div class="teaser"&gt;&lt;div class="mainImg"&gt;</code>)<br />
** Method steps (each step in a <code>&lt;div class="step"&gt;</code> with an image and text)<br />
** Number of servings (<code>&lt;h5&gt;</code>)<br />
** Ingredients list (in a definition list; quantities and units not marked up separately; some ingredients link to an explanatory page)<br />
** "Chef's notes". Explanatory notes offering advice and alternatives.<br />
<br />
==== epicurious.com - Moroccan Braised Beef ====<br />
[http://www.epicurious.com/recipes/recipe_views/views/230639 Moroccan Braised Beef (epicurious.com)]<br />
* Composed of<br />
** Recipe Intro Area<br />
*** Photo (uses <code>&lt;p&gt;</code>)<br />
*** Recipe Title (uses <code>&lt;h1&gt;</code>)<br />
*** Quick intro description (No <code>&lt;p&gt;</code>)<br />
** Ingredients * (uses <code>&lt;br&gt;</code>)<br />
** Preparation *<br />
*** Preparation instructions (some recipes offer Cooks' notes: - surrounded by *b* tagset, and uses <code>&lt;br&gt;</code> )<br />
*** Serving size<br />
*** Origin (span class = source, magazine title)<br />
*** Copyright info (span class = copyright: publication date and location if available)<br />
** Your notes * (user/visitor may add/submit notes to appear on their printed copy)<br />
** Reviews * (fork ratings, 1-4)<br />
<br />
Notes: Images are the secondary headings * (class = hdr) , no sub heading markup. Recipes do not use use <code>&lt;li&gt;</code> and use <code>&lt;br&gt;</code> instead of <code>&lt;p&gt;</code> often.<br />
<br />
==== extratasty.com - Cuba Libre ====<br />
[http://www.extratasty.com/recipe/46/cuba_libre Cuba Libre (extratasty.com)]<br />
<br />
* Composed of<br />
** title of recipe <br />
** name of the submitter<br />
** sequence of ingredients <br />
** preperation instructions (continuous text)<br />
** Recipe rating (US school grad system)<br />
<br />
<br />
==== recipesource.com - Cranberry Cherry Relish ====<br />
[http://www.recipesource.com/side-dishes/relishes/00/rec0053.html CRANBERRY CHERRY RELISH (recipesource.com)]<br />
* Consists of<br />
** Exported info (if from mastercook, mealmaster)<br />
** Title (in uppercase)<br />
** Recipe by: (source, author info)<br />
** Serving size: Preparation Time:<br />
** Categories:<br />
** Ingredients ( displayed in columns: Amount : Measure : Ingredient -- Preparation Method )<br />
** Cooking Instructions<br />
<br />
Note: Recipe is in text format using <code>&lt;pre&gt;</code> inside a <code>&lt;td&gt;</code>.<br />
<br />
==== www.cooker.net - Muffins Zucca e Radicchio ====<br />
[http://www.cooker.net/cooker/cooker.nsf/puid/9F1CF8E0983AC24186257286003C2277 Muffins Zucca e Radicchio (cooker.net)]<br />
<br />
*Consists of:<br />
**Yield<br />
**Unordered list of ingredients<br />
**Preparations<br />
**Photographs<br />
**Feedback<br />
**Classification (category recipe features in)<br />
<br />
==== asianfoodgrocer.com - Asian Rice Salad ====<br />
[http://www.asianfoodgrocer.com/recipes/77439.shtml Asian Rice Salad (AsianFoodGrocer.com)]<br />
<br />
*Consists of:<br />
**Title<br />
**Yield<br />
**Blurb<br />
**Ingredients (3 column table)<br />
**Instructions (numbered but not an ordered list)<br />
**Author or Source Credit<br />
<br />
b and br markup, no headings. Ingredients displayed in table, one ingredient per row - 3 columns: first for quantity or measurement number, second for measure type if there is one (c, ts, tb, etc.), third column for the ingredient type.<br />
<br />
==== Good Living: Sydney Morning Herald - Asparagus and herb frittata ====<br />
<br />
[http://www.smh.com.au/news/recipes/asparagus/2007/09/10/1189276601142.html Asparagus and herb frittata (smh.com.au/news/recipes/ Sydney Morning Herald: Recipes)]<br />
<br />
Note: An article about Asparagus contains this recipe.<br />
<br />
* Article Title (h1 markup)<br />
** Author<br />
** Date<br />
** Article content<br />
*** Recipe Title (h3 markup)<br />
**** Ingredients (1 paragraph, ingredients separated with br markup)<br />
**** Directions (method, p used for steps)<br />
**** Servings (p, b markup)<br />
<br />
Measurement units note: This recipe mixes, tbs, cm, ml, and g.<br />
<br />
==== Real Cajun Recipes: Chicken Fricassee ====<br />
[http://www.realcajunrecipes.com/recipes/cajun/chicken-fricassee/4.rcr Chicken Fricassee (RealCajunRecipes.com)]<br />
<br />
Recipe is formatted with table/nested table<br />
<br />
* Title (h3 heading)<br />
** Food Category (not linked)<br />
** Recipe Author<br />
** Author origin (location)<br />
** Date<br />
** Drag and Drop icon for MacGourmet* users<br />
** Ratings (up to 5 stars)<br />
** Ratings link (viewer can rate recipe)<br />
* The top section of the recipe is separated with an hr, rest of recipe in nested table.<br />
** servings<br />
** prep time<br />
** cook time<br />
** ready time<br />
** author note<br />
** Ingredients (appear in two columns, table)<br />
** Directions (paragraph format for steps)<br />
<br />
'''Special Note'''*<br />
[http://www.apple.com/downloads/macosx/home_learning/macgourmet.html MacGourmet] is software which allows creation, import (of other recipes and recipe formats), export of recipes, Publishing of recipes to MovableType, Blogger, TypePad, and Blojsom weblogs. Categorization and search features. It would be good to see how these recipes are formatted. MacGourmet - 'iTunes for recipes' and can create/export shopping lists for the recipes (including to PDA, iPod, etc.), Demo available at link. Also see wiki page [[recipe-formats#MacGourmet]]<br />
<br />
==== BigOven: Angel Hair with Tomatoes, Basil And Arugula recipe ====<br />
<br />
Recipe Example: [http://www.bigoven.com/152986_Angel-Hair-with-Tomatoes,-Basil-And-Arugula_recipe.html Angel Hair with Tomatoes, Basil And Arugula recipe (BigOven)].<br />
<br />
[http://bigoven.com/ BigOven] - recipe software application with an online collection of recipes which were submitted from registered site users or published, exported from its software users. Published recipes can be rated online, and additional tags/categories or ingredients can be applied to published recipes. Also see the [[recipe-formats#Big_Oven]] wiki page.<br />
<br />
Recipe output for the site uses span tags with id to format or link information. HTML format: ingredients are in table format. Uses br, no p tags.<br />
<br />
This is an example recipe format from the site:<br />
<br />
* Recipe Title - h1, span id="lblTitle" <br />
** Intro Line - span id="lblSubhead", br<br />
** Ratings - img id="img_rating"<br />
** Photo<br />
** Ingredients - h2, span id="Label1" <br />
*** Individual Ingredients - (2 column table, ingredient keyword is linked, link appended with id=ingredient name.)<br />
** Instructions - h2, span id="Label2" <br />
*** Directions (br, span id="lblInstructions", br) - instructions, nutritional info, author, date included.<br />
** Main ingredient tag - span id="Label7", span id="lblMainIngredient" , link to Main Ingredient)<br />
** ADD tags. Form submit buttons for additional tag categorization (related linking). - id="lblCategoriesLabel"<br />
<br />
==== Gopher: Fudge Recipe ====<br />
[gopher://hal3000.cx/0/Recipes/fudge.txt gopher://hal3000.cx/0/Recipes/fudge.txt]<br />
<br />
Note: this is '''gopher:''' (may not work in all browsers, will with Firefox)<br />
<br />
Format plain text -- formatting line breaks, sometimes dashes for ingredient lists, underlining of title. Whitespace preserved with pre tagset.<br />
<br />
Recipe consists of:<br />
* Introductory information<br />
* Recipe Title<br />
** Ingredients<br />
** Instructions<br />
<br />
Another Recipe collection on Gopher at the Online Book Initiative:<br />
<br />
[gopher://gopher.std.com/11/The%20Online%20Book%20Initiative/Recipes gopher://gopher.std.com/11/The%20Online%20Book%20Initiative/Recipes]<br />
<br />
==== DobrePrzepisy.org: Faworki ====<br />
Recipe example: [http://dobreprzepisy.org/przepis/255/faworki.html Faworki (dobreprzepisy.org)]<br />
<br />
* Composed of:<br />
** title of recipe (<code>&lt;h1&gt;</code>)<br />
** food category (links to the directory)<br />
** name of the submitter (links to profile) and date added<br />
** rating (stars, 1-5)<br />
** optional photo<br />
** additional info: (<code>&lt;h3&gt; and &lt;ul&gt;</code>)<br />
*** difficulty (3 levels: easy | intermediate | difficult)<br />
*** servings count<br />
*** preparation time<br />
*** overall cost<br />
*** suitable for vegetarians icon (added as <code>background-image</code>)<br />
** sequence of ingredients (<code>&lt;ul&gt;</code>)<br />
** preparation instructions (<code>&lt;p&gt;</code>)<br />
** user's comments<br />
<br />
==== W3.org Lists Example ====<br />
[http://www.w3.org/TR/html4/struct/lists.html#h-10.1 w3.org]<br />
<br />
* Composed of<br />
** <code>&lt;dl&gt;</code><br />
*** <code>&lt;dt&gt;</code> - ingredients heading<br />
*** <code>&lt;dd&gt;</code><br />
**** <code>&lt;ol&gt;</code> and <code>&lt;li&gt;</code> - ingredients<br />
*** <code>&lt;dt&gt;</code> - procedure heading<br />
*** <code>&lt;dd&gt;</code><br />
**** <code>&lt;ul&gt;</code> and <code>&lt;li&gt;</code> - procedure<br />
*** <code>&lt;dt&gt;</code> - notes heading<br />
*** <code>&lt;dd&gt;</code> - notes<br />
<br />
===Menus===<br />
<br />
==== [http://www.thecrepevine.com/menu.html The Crepe Vine] ====<br />
<pre><br />
<span class="menu2">APPETIZERS</span><br />
<p align="left">IMPORTED CHEESE PLATE & BAGUETTE ..........13<br><br />
<br><br />
TUNA TARTARE&nbsp; ..........8<br />
<br><br />
fresh tuna with roasted shallot aioli, and lotus chips<br />
<br><br />
<br><br />
BRUSCHETTA ..........8<br />
<br><br />
tomato, garlic, basil, chevre, olive oil and balsamic on crostini<br />
<br> <br />
<br><br />
STEAK TARTARE&nbsp; .......... 12<br />
<br><br />
Horseradish aioli, caramelized shallots, and potato hash<br />
<br><br />
<br><br />
BABY BEET SALAD&nbsp; ..........11<br />
<br><br />
candy cane baby beets, sherry vinaigrette and herb goat cheese<br />
</pre><br />
<br />
== Next Steps ==<br />
# Add more examples and analysis of their markup and implied schemas<br />
# Research existing [[recipe-formats]] ([http://home.comcast.net/~episoft/ Mealmaster], [http://www.formatdata.com/recipeml/ RecipeML], ...)<br />
# [[recipe-brainstorming]] on a minimal recipe schema that represents the 80/20 of common properties of the examples and reuses terms from existing widely implemented recipe formats.</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=recipe-brainstorming&diff=25777recipe-brainstorming2008-02-19T10:33:00Z<p>AndyMabbett: menus</p>
<hr />
<div>= Recipe Brainstorming =<br />
<br />
Towards a [[recipe|Recipe]] microformat. Please read the [[process]] before editing this page.<br />
<br />
==Format-In-Progress==<br />
<br />
This format-in-progress follows the restarting of Recipe development by [[User:Phae|Frances Berriman]] on 25th September 2007. Note that this Format-In-Progress section is intended to be edited to reflect the discussion that occurs on the microformats-new list, rather than being a free-form playground for schema.<br />
<br />
; Editors<br />
: [[User:BenWard|Ben Ward]] (Yahoo!, Inc.)<br />
: [[User:Phae|Frances Berriman]] (BBC)<br />
<br />
===Introduction===<br />
<br />
Recipe is based on [[recipe-examples|examples]] and fields in [[recipe-formats|existing formats]]. <br />
<br />
The recipe microformat is designed for the mark-up of instructions for creating meals, drinks or food-based items. <br />
<br />
===Root Class Name===<br />
<br />
To be decided. Likely ‘hrecipe’.<br />
<br />
===Property List===<br />
<br />
Recipe properties, with sub-properties listed in parentheses, like <em>(this)</em>, plurality indicated by square brackets, like <em>this[]</em>. Note that the draft property names may change, but their function should remain.<br />
<br />
Optional and required for each field is explicitly stated at this stage. Fields without have not been determined.<br />
<br />
* Title - Required.<br />
* Summary – A short introduction, accompanying statement about the recipe. Optional.<br />
* Author - An hCard for the author of the recipe. Optional.<br />
* Date Published - Optional<br />
* Photo[] - Accompanying image. Optional.<br />
* Ingredient[] (Quantity [Optional], Name [Required], ‘Optionality’ [Optional], Preparation Notes [Optional]) - 1 or more required.<br />
* Method - The block of text containing the method of the recipe. Required.<br />
<br />
Ingredient > ‘Optionality’. States that an ingredient is optional to the recipe. Its absence should imply that the ingredient is required. <br />
<br />
===Suggested fields for inclusion===<br />
<br />
* License - using rel-licence attribution<br />
* Tags - using rel-tag.<br />
* Method > Steps or Method-Step[] as a child of Method. Imply ordered steps from an HTML list or explicitly mark-up ordered steps respectively.<br />
* Yield – Quantity produced by this recipe<br />
* Calories – per serving. May be part of the [measure] microformat in future.<br />
<br />
===Known Issues===<br />
<br />
* Mark-up of quantity would be enhanced by use of a [measure] microformat. However, such a format does not yet exist outside of brainstorming. It must be decided whether quantity is useful/parsable _enough_ without explicit mark-up of values and units.<br />
<br />
==RecipeML-based Brainstorm==<br />
<br />
Excerpted from [http://conoroneill.com/2006/03/21/what-if-i-suggest-a-structured-recipe-format-and-you-critique-it/ Conor Bandon's Blog entry] and derived from The RecipeML Spec:<br />
*Recipe_Title<br />
*Summary Description (one liner)<br />
*Measurement System (U.S., Imperial etc)<br />
*Ingredients (each one a separate "item" rather than block text with count/amount/range/unit broken out too)<br />
**Some (e.g. meats, vegetables) could optionally be marked up with (elements of) the proposed [[species]] microformat. [[User:AndyMabbett|Andy Mabbett]] 06:41, 16 Nov 2006 (PST)<br />
** Ingredient importance (e.g. Main, Required, Optional) should be listed as an attribute of each entry. [[User:AlexanderShusta|α]]<br />
**Units need separate microformat: see [[measure]] <br />
**Ingredient Preparation: such as diced, chopped, sliced, grated, minced, etc. [[User:SteveL|Steve Lewis]] 18:55, 11 Feb 2007 (PST)<br />
*Preparation Time (overall time)<br />
*Yield Quantity and Unit (4 pancakes or 5 servings)<br />
**Calories per serving [[User:JohnLeMasney| John LeMasney]]<br />
**Calories per ounce [[User:JohnLeMasney| John LeMasney]] <br />
*Background Information - Optional section to encapsulate information that is useful but not necessarily required for a successful recipe. [[User:AlexanderShusta|α]]<br />
**Author (Person) ([[hcard]]?)<br />
**Submitter (Person) ([[hcard]]?)<br />
**Source (Book Title etc)<br />
*** could use the proposed [[citation]] microformat. [[User:AndyMabbett|Andy Mabbett]] 06:43, 16 Nov 2006 (PST)<br />
**Date (Of Creation or Publication)<br />
**Rights (Copyright or other)<br />
**Meal Category (Starter, entree, dessert )<br />
**Cuisine Category (Italian etc)<br />
*Instructions (text, but can contain:)<br />
**Steps (optional)<br />
***Should be an ordered list [[User:AndyMabbett|Andy Mabbett]] 14:46, 16 Nov 2006 (PST)<br />
***Another vote for an ordered list, perhaps in the [[XOXO]] format. [[User:AlexanderShusta|α]]<br />
*Photo (optional) [[User:IamCam|Cameron Perry]]<br />
**Could be one per dish, or one for each (or for some of the) step(s). [[User:AndyMabbett|Andy Mabbett]]<br />
<br />
== Additional Suggestions ==<br />
<br />
*Difficulty/Notes - Perhaps incorporation of [[hreview|hReview]] to describe difficulty (using rating) and general comments (review), as an optional field. [[User:Phae|Frances Berriman]]<br />
*Suitability (e.g. vegetarian, vegan, wheat-free, etc.). Possibly [[rel-tag]]. [[User:AndyMabbett|Andy Mabbett]] 14:57, 16 Nov 2006 (PST)<br />
*Ingredient Grouping - In baking you need to differentiate wet from dry ingredients. See also an [[recipe-examples|example recipe]] from [http://www.extratasty.com/recipe/46/cuba_libre extratasty.com] for useful grouping in cocktail mixing. [[SteveL|Steve Lewis]] 19:10, 11 Feb 2007<br />
** Maybe this ingredient grouping can be used to express some alternative ingredients, like "mayonnaise or cream cheese". [[EstevaoSamuel|Estêvão Samuel Procópio]] 15:33, 16 Dez 2007 (PDT)<br />
* Number of dishes or similary - often it's mentioned how many dishes (or breads in baking, etc) the ingredients are for. [[User:WilleRaab|WilleRaab]] 16:57, 20 Jul 2007 (PDT)<br />
* Suitable for occations - what occations are the dish suitable for? [[User:WilleRaab|WilleRaab]] 16:57, 20 Jul 2007 (PDT)<br />
* Category - many sites categorize their recipes. [[User:WilleRaab|WilleRaab]] 16:57, 20 Jul 2007 (PDT)<br />
<br />
Note: Comments added ''"[[User:WilleRaab|WilleRaab]] 16:57, 20 Jul 2007 (PDT)"'' are added after looking at http://tasteline.com, example: [http://www.tasteline.com/default.ns?strItemID=showRecipe&intChannelID=&lngRID=8045&tlfo=0 here].<br />
<br />
*Under what terms is the recipe licensed? Microformat: rel="license". Often a page is in the creative commons but the page author has taken some text from a copyrighted page and in theory re-published the work in violation to the terms of use, adding a rel="license" to each recipe on the page? [[User:Lee Jordan|Lee Jordan]] 20:55, 04 Feb 2008 (GMT)<br />
<br />
== Cookcamp brainstorming ==<br />
<br />
At [http://barcamp.org/CookCamp CookCamp] in February 2007, Tantek moderated a fairly free form discussion of how to publish/share recipes. Here is a [http://flickr.com/photos/tantek/422072573/ photo of the whiteboard]:<br />
<br />
[http://flickr.com/photos/tantek/422072573/ http://farm1.static.flickr.com/162/422072573_9956d93f61.jpg]<br />
<br />
'''To Do''': OCR this and enter rough notes here...<br />
<br />
<br />
==Issues==<br />
Please do feel to add your comments below. If this section grows too large, please create a seperate recipe-issues section. Thanks!<br />
<br />
===Scope===<br />
*Is this intended for only food recipes, or also recipes for, say, glue, paint, dyes and other chemicals? [[User:AndyMabbett|Andy Mabbett]] 14:53, 16 Nov 2006 (PST)<br />
** +1 Wondered the same. I'd like to see this extended as a general recipe for anything that can be created in a defined way/order, rather than just edible food.[[User:Phae|Frances Berriman]]<br />
** Agreed. This format could apply to a set of methods and materials, including cooking, science experiments, craft making, building, etc. - essentially any how-to or tutorial. [[User:IamCam|Cameron Perry]]<br />
** However, now I view my addition of 'calories per serving' as suspect, ;) though I guess it could still apply, since it's just a unit of energy. [[User:JohnLeMasney|John LeMasney]]<br />
***Recipe for Nitroglycerine (not recommended by Weight Watchers) ? [[User:AndyMabbett|Andy Mabbett]] 10:43, 1 Feb 2007 (PST)<br />
** The scope is determined by the [[recipe-examples]] research that is done, other musings are purely theoretical and thus discouraged. So far this means recipes means only food recipes. In addition, "recipe" in common vernacular applies primarily to food. Other uses are certainly outside the common 80/20 (note that 80/20 does note mean there are no non-food cases, merely that they are outside the 80). If you want to pursue other types of recipes, e.g. "chemical-recipes" - start that as a separate research effort per the [[process]]. [[User:Tantek|Tantek]] 07:39, 15 Mar 2007 (PDT)<br />
*** Work is continuing on the recipe format now with the scope limited to food-based items only. [[User:Phae|Phae]] 08:44, 3 Oct 2007 (PDT)<br />
*Is it possible to have special structure for the details of the operations in the cooking. For Eg. I invite you to have a look at the following Page [http://www.anthus.com/Recipes/CompCook.html]. Should it be possible to have special markup for the operations? Or is that going too far? Maybe we could keep this open ended so that it could be included when sites would actually be interested in including the same... Anyway the article makes for some interesting reading though it is from 1985 ;-) [[User:SudarshanP|SudarshanP]] 06:46, 26 Jun 2007 (PDT)<br />
** I think this could be considered out of scope. It's the sort of thing that would be detailed in the descriptive narrative, but I'm not sure there's evidence from the examples that this type of behaviour is common enough to warrant specific properties to hold it. [[User:Phae|Phae]] 08:44, 3 Oct 2007 (PDT)<br />
===Measure ===<br />
{{OpenIssue}}<br />
*Quantities play a key part in recipes, so do we feel the recipe format will rely on quantities so heavily that the measure microformat needs to be completed first, or do we feel it can exist without it and use of measure can be optional in the first version? [[User:Phae|Phae]] 08:44, 3 Oct 2007 (PDT)<br />
**The former. [[User:AndyMabbett|Andy Mabbett]] 13:10, 4 Feb 2008 (PST)<br />
<br />
*The abbr design pattern should be used to mark up measures, such as lbs and kg, measures are also not restricted to ingredients as they describe temperature too, as such should the sup element be used in the presentation of the degree symbol, within the abbr? See [http://www.bbc.co.uk/weather/5day.shtml?id=1081 BBC weather example] [[User:Lee Jordan|Lee Jordan]] 20:00, 4 Feb 2008 (GMT)<br />
<br />
*Conversion is tricky and is important, you've found a great recipe but it's measured in "cups". temperature is usually handled well by recipe authors, unless "gas mark" is used. The lang attribute (optional) could be used to denote the intentional language convention of the markup, to aid parsers "convert on the fly"? Is there currently a sematic way of marking up content as being metric or imperial? (complications come in mixed measure conventions in the same text section, so lang= on the abbr rather than the ul would help). A browser could then know the text was originally written in metric and convert to imperial if the user agent was en-GB, or a DOM script equally could aid conversion from cups to oz based on that? As an Englishman reading American text I find it hard to know what a "cup" is and then there are the Europeans to consider. Lang attributes might not be useful as for example en-US and en-GB measure distance in miles for example, rel="us-volume" (cups), rel="gb-volume" (tablespoons)? [[User:Lee Jordan|Lee Jordan]] 20:15, 4 Feb 2008 (GMT)<br />
<br />
==Single foodstuffs==<br />
<br />
If "method" is made optional, this could be used for marking up individual foodstuffs in prose. for example, "I like to eat cheese for supper." would become:<br />
<br />
<pre><nowiki><br />
I like to eat <span class="hRecipe"><span class="ingredient">cheese</span></span> for supper.<br />
</nowiki></pre><br />
<br />
or simply (if the proposed "[http://microformats.org/discuss/mail/microformats-discuss/2008-January/011199.html sub-microformat-pattern]" is adopted):<br />
<br />
<pre><nowiki><br />
I like to eat <span class="hRecipe-ingredient">cheese</span> for supper.<br />
</nowiki></pre><br />
<br />
: [[User:AndyMabbett|Andy Mabbett]] 08:16, 5 Jan 2008 (PST)<br />
<br />
==Menus==<br />
With the addition of a "price" field, and perhaps one or two others, this microformat can also be used for menus. See [[recipe-examples#Menus|menu examples]].<br />
<br />
== See Also ==<br />
* [[recipe]]<br />
* [[recipe-examples]]<br />
* [[recipe-formats]]</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=recipe-examples&diff=25775recipe-examples2008-02-19T10:31:03Z<p>AndyMabbett: moved from "food item" page (which now redirects here)</p>
<hr />
<div><h1> Recipe Examples </h1><br />
<br />
Per the microformats [[process]] this is an [[examples]] page documenting existing real world examples of actual ''tasty'' recipes published on the Web. Next steps are to research [[recipe-formats]] and then (only ''after'' that), proceed with [[recipe-brainstorming]]. Only URLs to actual recipes please.<br />
<br />
'''Please read both [[process]] and [[examples]] before editing this page.'''<br />
<br />
__TOC__<br />
<br />
== Contributors ==<br />
<br />
* [http://tantek.com/ Tantek Çelik]<br />
* [[User:RobertBachmann|Robert Bachmann]]<br />
* [[User:JeffMcNeill|jeffmcneill]]<br />
<br />
== Recipe Lists ==<br />
* [http://orens.com/stuff/recipes.html Steve and Aytek's recipes]. Note that they are simply using [[xoxo|XOXO]] for the lists. It doesn't appear that anything more is necessary for a list of recipes.<br />
* [http://www.myvegrecipes.com/category/main-dishes My Veg Recipes]. Also uses [[xoxo|XOXO]] for lists of recipes.<br />
* ...<br />
* ...<br />
<br />
== Recipes Examples ==<br />
<br />
=== Individuals ===<br />
<br />
==== Hamburger ====<br />
[http://en.wikibooks.org/wiki/Cookbook:Hamburger Wikibooks Cookbook:Hamburger]<br />
<br />
Composed of<br />
* Summary<br />
** Categories<br />
** Servings<br />
** Time<br />
** Rating<br />
** Energy<br />
** Image<br />
* Recipe<br />
** Description (text)<br />
** Ingredients (required/optional)<br />
** Procedure (OL)<br />
** Suggestions (text)<br />
** Notes, tips and variations (UL)<br />
** Categories<br />
<br />
==== Lentil Stew ====<br />
[http://1moon.com/recipes/mercimek.html Neriman’s Mercimek - Yummy Lentils]<br />
<br />
* Appears to be a simple BBEdit 5.0 conversion of a plain text file into HTML 3.2<br />
* Uses <code>&lt;br&gt;&lt;br&gt;</code> to delimit sections<br />
* Composed of:<br />
** author of recipe<br />
** title of recipe, with English translation<br />
** top level structure of time/instructions, with ingredients noted as necessary for each step<br />
** serving suggestion(s) (serve with ...)<br />
<br />
==== Mocha Brownie Cake ====<br />
[http://orens.com/stuff/recipe_data/mocha_brownie_cake.html Mocha Brownie Cake]<br />
<br />
* Composed of<br />
** title of recipe / food item (looks like a heading)<br />
** sequence of larger tasks (separated by subheadings), each of which has<br />
*** list of ingredients (uses <code>&lt;ul&gt;</code>) for a particular component of the dish<br />
*** preparation instructions for those ingredients<br />
*** OR a instructions for assembling components of the dish<br />
** contributing baker - perhaps someone who has modified the recipe?<br />
** source - citation of where recipe originally came from<br />
<br />
==== A Moroccan-ish Casserole ====<br />
[http://www.simonwheatley.co.uk/2006/03/26/a-moroccan-ish-casserole/ Simon Wheatley]<br />
<br />
* Structured semantic XHTML based, as well as possible, on hcard/review type principles<br />
* Composed of:<br />
** title<br />
** description<br />
** number of servings (quantity)<br />
** prep time<br />
** cooking time<br />
** approval rating (from hreview)<br />
** ingredients<br />
** preparation steps<br />
<br />
May expand to include: variation suggestions<br />
<br />
==== Fruit Salad ====<br />
<br />
[http://diveintomark.org/archives/2006/06/09/fruit-salad-recipe fruit salad (Mark Pilgrim)]<br />
<br />
Extremely detailed instructions.<br />
<br />
* Composed of (at least)<br />
** title of recipe<br />
** description<br />
** number of servings (quantity)<br />
** shopping instructions<br />
** ingredients<br />
** ingredients to avoid<br />
** preparation steps<br />
** left-over preservation instructions<br />
<br />
<br />
==== Perfect Flank Steak ====<br />
<br />
[http://www.dvorak.org/blog/?p=6283 John C. "CSS is a series of tubes" Dvorak]<br />
<br />
* Composed of<br />
** title of recipe<br />
** description<br />
** ingredients<br />
** preparation steps<br />
** suggested accompaniments<br />
<br />
==== Veggie Chicken Enchiladas ====<br />
<br />
[http://www.myvegrecipes.com/recipe/chicken-enchiladas Veggie Chicken Enchiladas]<br />
[http://www.myvegrecipes.com/recipe/xml/chicken-enchiladas.xml Veggie Chicken Enchiladas XML]<br />
<br />
* Attempts to use XOXO as a recipe microformat<br />
* Composed of<br />
** ingredients<br />
** instructions<br />
** servings<br />
** prep time<br />
** serving suggestions<br />
** cook's tips<br />
** variations<br />
** time saving tips<br />
<br />
====Spaghetti primavera====<br />
<br />
[http://blog.bumblepuppy.org.uk/2006/10/05/spaghetti-primavera/ Spaghetti-primavera]<br />
<br />
*Written as prose<br />
*Contains:<br />
** introduction - containing source of original recipe book inspiration<br />
** ingredients (in paragraph, comma separated)<br />
** instructions (paragraph)<br />
** observation (creates a lot of washing up!)<br />
<br />
=== Services ===<br />
<br />
==== cookingwithbooze.org ====<br />
*[http://cookingwithbooze.org/ Cooking with Booze] is a cookbook and associated free-access website. All the recipes are marked up in a combination of XOXO and microformat:<br />
* Composed of<br />
** title of recipe (as a heading)<br />
** note/introduction<br />
** unordered list of ingredients<br />
** ordered list of instructions<br />
* [http://cookingwithbooze.org/for-geeks#microformats More information about the microformat]<br />
* You can also download the whole recipe list as a dataset for your own experiments, in the form as a tagged XML file as output by InDesign. [http://cookingwithbooze.org/for-geeks#microformats]<br />
* Any questions: [http://shorttermmemoryloss.com http://shorttermmemoryloss.com]<br />
<br />
==== allrecipes.com - Sachertorte ====<br />
[http://cake.allrecipes.com/az/Sachertorte.asp Sachertorte (allrecipes.com)]<br />
<br />
* Composed of<br />
** title of recipe (as a heading)<br />
** name of the submitter<br />
** description of the food item (e.g: "Elegant chocolate cake.")<br />
** optional photo<br />
** servings count<br />
** sequence of ingredients (uses <code>&lt;ul&gt;</code>)<br />
** sequence of preperation instructions (uses <code>&lt;ol&gt;</code>)<br />
<br />
<br />
==== BBC Food - Marzipanned fruit cake ====<br />
<br />
[http://www.bbc.co.uk/food/recipes/database/marzipannedfruitcake_14581.shtml Marzipanned fruit cake] [http://www.bbc.co.uk/food/recipes/ BBC Food Recipes]<br />
<br />
* Composed of (all B&BR markup)<br />
** title of recipe<br />
** name of submitter/source<br />
** servings count/quanity<br />
** preparation time<br />
** cooking time<br />
** image<br />
** suitable for vegetarians icon<br />
** description of recipe<br />
** ingredients list<br />
** method steps<br />
** notes<br />
<br />
==== cooking.com - Jamaican Chicken Stew Recipe ====<br />
[http://www.cooking.com/recipes/rerecite.asp?No=8196 Jamaican Chicken Stew Recipe (cooking.com)]<br />
* Consists of<br />
** Recipe Title (<code>&lt;font&gt;</code><code>&lt;b&gt;</code> used for header)<br />
*** Source (Magazine, book, title, etc. with a link.)<br />
*** Serving Size<br />
** Photo area<br />
*** Recipe Email, Save, Print options<br />
*** Photo<br />
** Recipe Ingredients (heading uses <code>&lt;b&gt;</code> <code>&lt;br&gt;</code>, each ingredient in separate <code>&lt;td&gt;</code>, ingredient keywords linked to a glossary)<br />
** Recipe Method (no <code>&lt;p&gt;</code> used, uses <code>&lt;td&gt;</code>, <code>&lt;font&gt;</code> and <code>&lt;br&gt;</code>)<br />
*** Copyright reprint info appears at end of prep info.<br />
** Nutrition Facts (<code>&lt;font&gt;</code><code>&lt;b&gt;</code> used for header)<br />
*** Serving size info repeated<br />
*** Nutritional elements per serving (each item and value are in separate <code>&lt;td&gt;</code>)<br />
<br />
Notes: No meaningful markup used. Recipes use <code>&lt;table&gt;</code> for all layout/presentation. <code>&lt;b&gt;</code>, <code>&lt;br&gt;</code>, and nested <code>&lt;font&gt;</code> used throughout. Line images separate sections of recipe.<br />
<br />
==== cuzza.com - Chicken Jalfrezi Recipe ====<br />
[http://cuzza.com/recipes/jalfrezi/ Chicken Jalfrezi Recipe (cuzza.com)]<br />
* Consists of<br />
** Recipe Title (<code>&lt;h2&gt;</code>)<br />
*** Subheading/summary description (<code>&lt;h3&gt;</code>)<br />
*** Teaser text with photo (<code>&lt;div class="teaser"&gt;&lt;div class="mainImg"&gt;</code>)<br />
** Method steps (each step in a <code>&lt;div class="step"&gt;</code> with an image and text)<br />
** Number of servings (<code>&lt;h5&gt;</code>)<br />
** Ingredients list (in a definition list; quantities and units not marked up separately; some ingredients link to an explanatory page)<br />
** "Chef's notes". Explanatory notes offering advice and alternatives.<br />
<br />
==== epicurious.com - Moroccan Braised Beef ====<br />
[http://www.epicurious.com/recipes/recipe_views/views/230639 Moroccan Braised Beef (epicurious.com)]<br />
* Composed of<br />
** Recipe Intro Area<br />
*** Photo (uses <code>&lt;p&gt;</code>)<br />
*** Recipe Title (uses <code>&lt;h1&gt;</code>)<br />
*** Quick intro description (No <code>&lt;p&gt;</code>)<br />
** Ingredients * (uses <code>&lt;br&gt;</code>)<br />
** Preparation *<br />
*** Preparation instructions (some recipes offer Cooks' notes: - surrounded by *b* tagset, and uses <code>&lt;br&gt;</code> )<br />
*** Serving size<br />
*** Origin (span class = source, magazine title)<br />
*** Copyright info (span class = copyright: publication date and location if available)<br />
** Your notes * (user/visitor may add/submit notes to appear on their printed copy)<br />
** Reviews * (fork ratings, 1-4)<br />
<br />
Notes: Images are the secondary headings * (class = hdr) , no sub heading markup. Recipes do not use use <code>&lt;li&gt;</code> and use <code>&lt;br&gt;</code> instead of <code>&lt;p&gt;</code> often.<br />
<br />
==== extratasty.com - Cuba Libre ====<br />
[http://www.extratasty.com/recipe/46/cuba_libre Cuba Libre (extratasty.com)]<br />
<br />
* Composed of<br />
** title of recipe <br />
** name of the submitter<br />
** sequence of ingredients <br />
** preperation instructions (continuous text)<br />
** Recipe rating (US school grad system)<br />
<br />
<br />
==== recipesource.com - Cranberry Cherry Relish ====<br />
[http://www.recipesource.com/side-dishes/relishes/00/rec0053.html CRANBERRY CHERRY RELISH (recipesource.com)]<br />
* Consists of<br />
** Exported info (if from mastercook, mealmaster)<br />
** Title (in uppercase)<br />
** Recipe by: (source, author info)<br />
** Serving size: Preparation Time:<br />
** Categories:<br />
** Ingredients ( displayed in columns: Amount : Measure : Ingredient -- Preparation Method )<br />
** Cooking Instructions<br />
<br />
Note: Recipe is in text format using <code>&lt;pre&gt;</code> inside a <code>&lt;td&gt;</code>.<br />
<br />
==== www.cooker.net - Muffins Zucca e Radicchio ====<br />
[http://www.cooker.net/cooker/cooker.nsf/puid/9F1CF8E0983AC24186257286003C2277 Muffins Zucca e Radicchio (cooker.net)]<br />
<br />
*Consists of:<br />
**Yield<br />
**Unordered list of ingredients<br />
**Preparations<br />
**Photographs<br />
**Feedback<br />
**Classification (category recipe features in)<br />
<br />
==== asianfoodgrocer.com - Asian Rice Salad ====<br />
[http://www.asianfoodgrocer.com/recipes/77439.shtml Asian Rice Salad (AsianFoodGrocer.com)]<br />
<br />
*Consists of:<br />
**Title<br />
**Yield<br />
**Blurb<br />
**Ingredients (3 column table)<br />
**Instructions (numbered but not an ordered list)<br />
**Author or Source Credit<br />
<br />
b and br markup, no headings. Ingredients displayed in table, one ingredient per row - 3 columns: first for quantity or measurement number, second for measure type if there is one (c, ts, tb, etc.), third column for the ingredient type.<br />
<br />
==== Good Living: Sydney Morning Herald - Asparagus and herb frittata ====<br />
<br />
[http://www.smh.com.au/news/recipes/asparagus/2007/09/10/1189276601142.html Asparagus and herb frittata (smh.com.au/news/recipes/ Sydney Morning Herald: Recipes)]<br />
<br />
Note: An article about Asparagus contains this recipe.<br />
<br />
* Article Title (h1 markup)<br />
** Author<br />
** Date<br />
** Article content<br />
*** Recipe Title (h3 markup)<br />
**** Ingredients (1 paragraph, ingredients separated with br markup)<br />
**** Directions (method, p used for steps)<br />
**** Servings (p, b markup)<br />
<br />
Measurement units note: This recipe mixes, tbs, cm, ml, and g.<br />
<br />
==== Real Cajun Recipes: Chicken Fricassee ====<br />
[http://www.realcajunrecipes.com/recipes/cajun/chicken-fricassee/4.rcr Chicken Fricassee (RealCajunRecipes.com)]<br />
<br />
Recipe is formatted with table/nested table<br />
<br />
* Title (h3 heading)<br />
** Food Category (not linked)<br />
** Recipe Author<br />
** Author origin (location)<br />
** Date<br />
** Drag and Drop icon for MacGourmet* users<br />
** Ratings (up to 5 stars)<br />
** Ratings link (viewer can rate recipe)<br />
* The top section of the recipe is separated with an hr, rest of recipe in nested table.<br />
** servings<br />
** prep time<br />
** cook time<br />
** ready time<br />
** author note<br />
** Ingredients (appear in two columns, table)<br />
** Directions (paragraph format for steps)<br />
<br />
'''Special Note'''*<br />
[http://www.apple.com/downloads/macosx/home_learning/macgourmet.html MacGourmet] is software which allows creation, import (of other recipes and recipe formats), export of recipes, Publishing of recipes to MovableType, Blogger, TypePad, and Blojsom weblogs. Categorization and search features. It would be good to see how these recipes are formatted. MacGourmet - 'iTunes for recipes' and can create/export shopping lists for the recipes (including to PDA, iPod, etc.), Demo available at link. Also see wiki page [[recipe-formats#MacGourmet]]<br />
<br />
==== BigOven: Angel Hair with Tomatoes, Basil And Arugula recipe ====<br />
<br />
Recipe Example: [http://www.bigoven.com/152986_Angel-Hair-with-Tomatoes,-Basil-And-Arugula_recipe.html Angel Hair with Tomatoes, Basil And Arugula recipe (BigOven)].<br />
<br />
[http://bigoven.com/ BigOven] - recipe software application with an online collection of recipes which were submitted from registered site users or published, exported from its software users. Published recipes can be rated online, and additional tags/categories or ingredients can be applied to published recipes. Also see the [[recipe-formats#Big_Oven]] wiki page.<br />
<br />
Recipe output for the site uses span tags with id to format or link information. HTML format: ingredients are in table format. Uses br, no p tags.<br />
<br />
This is an example recipe format from the site:<br />
<br />
* Recipe Title - h1, span id="lblTitle" <br />
** Intro Line - span id="lblSubhead", br<br />
** Ratings - img id="img_rating"<br />
** Photo<br />
** Ingredients - h2, span id="Label1" <br />
*** Individual Ingredients - (2 column table, ingredient keyword is linked, link appended with id=ingredient name.)<br />
** Instructions - h2, span id="Label2" <br />
*** Directions (br, span id="lblInstructions", br) - instructions, nutritional info, author, date included.<br />
** Main ingredient tag - span id="Label7", span id="lblMainIngredient" , link to Main Ingredient)<br />
** ADD tags. Form submit buttons for additional tag categorization (related linking). - id="lblCategoriesLabel"<br />
<br />
==== Gopher: Fudge Recipe ====<br />
[gopher://hal3000.cx/0/Recipes/fudge.txt gopher://hal3000.cx/0/Recipes/fudge.txt]<br />
<br />
Note: this is '''gopher:''' (may not work in all browsers, will with Firefox)<br />
<br />
Format plain text -- formatting line breaks, sometimes dashes for ingredient lists, underlining of title. Whitespace preserved with pre tagset.<br />
<br />
Recipe consists of:<br />
* Introductory information<br />
* Recipe Title<br />
** Ingredients<br />
** Instructions<br />
<br />
Another Recipe collection on Gopher at the Online Book Initiative:<br />
<br />
[gopher://gopher.std.com/11/The%20Online%20Book%20Initiative/Recipes gopher://gopher.std.com/11/The%20Online%20Book%20Initiative/Recipes]<br />
<br />
==== DobrePrzepisy.org: Faworki ====<br />
Recipe example: [http://dobreprzepisy.org/przepis/255/faworki.html Faworki (dobreprzepisy.org)]<br />
<br />
* Composed of:<br />
** title of recipe (<code>&lt;h1&gt;</code>)<br />
** food category (links to the directory)<br />
** name of the submitter (links to profile) and date added<br />
** rating (stars, 1-5)<br />
** optional photo<br />
** additional info: (<code>&lt;h3&gt; and &lt;ul&gt;</code>)<br />
*** difficulty (3 levels: easy | intermediate | difficult)<br />
*** servings count<br />
*** preparation time<br />
*** overall cost<br />
*** suitable for vegetarians icon (added as <code>background-image</code>)<br />
** sequence of ingredients (<code>&lt;ul&gt;</code>)<br />
** preparation instructions (<code>&lt;p&gt;</code>)<br />
** user's comments<br />
<br />
==== W3.org Lists Example ====<br />
[http://www.w3.org/TR/html4/struct/lists.html#h-10.1 w3.org]<br />
<br />
* Composed of<br />
** <code>&lt;dl&gt;</code><br />
*** <code>&lt;dt&gt;</code> - ingredients heading<br />
*** <code>&lt;dd&gt;</code><br />
**** <code>&lt;ol&gt;</code> and <code>&lt;li&gt;</code> - ingredients<br />
*** <code>&lt;dt&gt;</code> - procedure heading<br />
*** <code>&lt;dd&gt;</code><br />
**** <code>&lt;ul&gt;</code> and <code>&lt;li&gt;</code> - procedure<br />
*** <code>&lt;dt&gt;</code> - notes heading<br />
*** <code>&lt;dd&gt;</code> - notes<br />
<br />
==Menus==<br />
<br />
=== [http://www.thecrepevine.com/menu.html The Crepe Vine] ===<br />
<pre><br />
<span class="menu2">APPETIZERS</span><br />
<p align="left">IMPORTED CHEESE PLATE & BAGUETTE ..........13<br><br />
<br><br />
TUNA TARTARE&nbsp; ..........8<br />
<br><br />
fresh tuna with roasted shallot aioli, and lotus chips<br />
<br><br />
<br><br />
BRUSCHETTA ..........8<br />
<br><br />
tomato, garlic, basil, chevre, olive oil and balsamic on crostini<br />
<br> <br />
<br><br />
STEAK TARTARE&nbsp; .......... 12<br />
<br><br />
Horseradish aioli, caramelized shallots, and potato hash<br />
<br><br />
<br><br />
BABY BEET SALAD&nbsp; ..........11<br />
<br><br />
candy cane baby beets, sherry vinaigrette and herb goat cheese<br />
</pre><br />
<br />
<br />
== Next Steps ==<br />
# Add more examples and analysis of their markup and implied schemas<br />
# Research existing [[recipe-formats]] ([http://home.comcast.net/~episoft/ Mealmaster], [http://www.formatdata.com/recipeml/ RecipeML], ...)<br />
# [[recipe-brainstorming]] on a minimal recipe schema that represents the 80/20 of common properties of the examples and reuses terms from existing widely implemented recipe formats.</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=food-item-examples&diff=34078food-item-examples2008-02-19T10:29:31Z<p>AndyMabbett: redirect duplicate effort</p>
<hr />
<div>#REDIRECT:[[recipe-examples]]</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=articles&diff=25804articles2008-02-18T23:03:20Z<p>AndyMabbett: last one dated & sorted</p>
<hr />
<div><h1>Articles</h1><br />
{{TOC-right}}<br />
<br />
<!--<br />
Template:<br />
<br />
*<span class="vevent"><span class="dtstart">YYYY-MM-DD</span>: <span class="description">''<span class="summary">TITLE</span>'' by <span class="vcard"><span class="fn">AUTHOR</span></span>: <span class="url">http://example.com</span></span></span><br />
<br />
--><br />
<br />
== 2008 ==<br />
*<span class="vevent"><span class="dtstart">2008-01-24</span>: <span class="description">''<span class="summary">Microformats introduction to content and user experience</span>'' by <span class="vcard"><span class="fn">Sarven Capadisli</span></span>: <span class="url">http://www.csarven.ca/microformats-introduction</span></span></span><br />
<br />
== 2007 ==<br />
<br />
*<span class="vevent"><span class="dtstart">2007-12-05</span>: <span class="description">''<span class="summary">The Magical Minimalism of Microformats</span>'' by <span class="vcard"><span class="fn">Jacob Harris</span></span> in The New York Times blog: <span class="url">http://open.blogs.nytimes.com/2007/12/05/the-magical-minimalism-of-microformats/</span></span></span><br />
<br />
*<span class="vevent"><span class="dtstart">2007-11-21</span>: <span class="description">''<span class="summary">Portable Social Networks: Take Your Friends with You</span>'' by <span class="vcard"><span class="fn">Brian Suda</span></span>: <span class="url">http://www.sitepoint.com/article/social-networks-take-friends/</span></span></span><br />
<br />
*<span class="vevent"><span class="dtstart">2007-07-24</span>: <span class="description">''<span class="summary">Microformats: More Meaning from Your Markup</span>'' by <span class="vcard"><span class="fn">Brian Suda</span></span>: <span class="url">http://www.sitepoint.com/article/microformats-meaning-markup</span></span></span><br />
<br />
==2006==<br />
<br />
*<span class="vevent"><span class="dtstart">2006-04-02</span>: <span class="description">''<span class="summary">Blog Business Summit: Microformats in Plain English: the Promise of Simple Business to Business Data Exchange</span>'' by <span class="vcard"><span class="fn">Steve Broback</span></span>: <span class="url">http://blogbusinesssummit.com/2006/04/microformats_in.htm</span></span></span><br />
<br />
*<span class="vevent"><span class="dtstart">2006-01-29</span>: <span class="description">''<span class="summary">How Microformats Affect Seearch Engine Optimization</span>'' by <span class="vcard"><span class="fn">Shaun Shull</span></span>: <span class="url">http://blog.usweb.com/archives/how-microformats-affect-search-engine-optimization-seo</span></span></span><br />
<br />
*<span class="vevent"><span class="dtstart">2006-01-27</span>: <span class="description">''<span class="summary">Introduction to hCard</span>'' by <span class="vcard"><span class="fn">Jesse Skinner</span></span>: <span class="url">http://www.thefutureoftheweb.com/blog/2006/1/hcard</span></span></span><br />
<br />
==2005==<br />
<br />
*<span class="vevent"><span class="dtstart">2005-12-06</span>: <span class="description">''<span class="summary">Practical Microformats with hCard</span>'' by <span class="vcard"><span class="fn">Drew McLellan</span></span>: <span class="url">http://24ways.org/advent/practical-microformats-with-hcard</span></span></span> <br />
<br />
*<span class="vevent"><span class="dtstart">2005-11-17</span>: <span class="description">''<span class="summary">An Extra SIDE to Web Standards Based Design - How Semantic Information Design Ethics (SIDE) and a few readily available techniques can help heal the Web</span>'' by <span class="vcard"><span class="fn">Jon Tan</span></span>: <span class="url">http://www.gr0w.com/articles/design/an_extra_side_to_web_standards_based_design/</span></span></span><br />
**See also his [http://www.csszengarden.com/?cssfile=/193/193.css&page=0 CSS Zen Garden "Leggo my ego" entry].<br />
<br />
*<span class="vevent"><span class="dtstart">2005-11-14</span>: <span class="description">''<span class="summary">Microformats Primer</span>'' by <span class="vcard"><span class="fn">Garrett Dimon</span></span> in Digital Web Magazine: <span class="url">http://www.digital-web.com/articles/microformats_primer/</span></span></span><br />
<br />
*<span class="vevent"><span class="dtstart">2005-07-24</span>: <span class="description">''<span class="summary">Usable Microformats</span>'' by <span class="vcard"><span class="fn">Andrew D. Hume</span></span>: <span class="url">http://usabletype.com/weblog/usable-microformats/</span></span></span><br />
<br />
*<span class="vevent"><span class="dtstart">2005-06-03</span>: <span class="description">''<span class="summary">Introducing microformats</span>'' by <span class="vcard"><span class="fn">Andrew D. Hume</span></span>: <span class="url">http://thedredge.org/2005/07/introducing-microformats/</span></span></span><br />
<br />
== Miscellaneous Reference ==<br />
<br />
These are various intro-related links/articles which we haven't figured out yet how to incorporate. You may find them of interest.<br />
<br />
* [http://www.betaversion.org/~stefano/linotype/news/93/ Data First vs. Structure First]<br />
** [http://tantek.com/log/ Tantek] says: In many ways it is actually *far* worse than that post conveys. The "typical" programmer literally loves spending far more time worrying about and designing the structure for structure's sake, than data, and even less so, "real world" data (current behaviors etc.). Hence we have taken the directly opposite tack with microformats when looking to solve a problem.<br />
*** Zeroeth, define the real-world problem. If you can't do this, then stop.<br />
*** First, look at real-world usage (data).<br />
*** Second, what previous standards are people actually using today? If there is more than one, then lean towards those with the better adoption.<br />
***And only after those first two do we bother to pay attention to theoretical standards, those that have been invented (whether by individuals, committees), but haven't seen much if any actual adoption.<br />
* [http://lists.w3.org/Archives/Public/www-rdf-interest/2000Mar/0103 2000-03-21 Dan Connolly on human-consumable information]: ('''strong emphasis''' added)<br />
** I believe that one of the best ways to transition into RDF, if not a long-term deployment strategy for RDF, is to '''manage the information in human-consumable form (XHTML) annotated with just enough info to extract''' the RDF statements that the human info is intended to convey. In other words: using a relational database or some sort of native RDF data store, and spitting out HTML dynamically, is a lot of infrastructure to operate and probably not worth it for lots of interesting cases. '''We all know that we have to produce a human-readable version of the thing... why not use that as the primary source?'''<br />
<br />
== See Also ==<br />
* [[press]]</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=articles&diff=25764articles2008-02-18T23:00:29Z<p>AndyMabbett: date & sort</p>
<hr />
<div><h1>Articles</h1><br />
{{TOC-right}}<br />
== to be sorted by date ==<br />
<br />
* [http://www.gr0w.com/articles/design/an_extra_side_to_web_standards_based_design/ An Extra SIDE to Web Standards Based Design] - How Semantic Information Design Ethics (SIDE) and a few readily available techniques can help heal the Web, by Jon Tan. See also his [http://www.csszengarden.com/?cssfile=/193/193.css&page=0 CSS Zen Garden "Leggo my ego" entry].<br />
<br />
<!--<br />
Template:<br />
<br />
*<span class="vevent"><span class="dtstart">YYYY-MM-DD</span>: <span class="description">''<span class="summary">TITLE</span>'' by <span class="vcard"><span class="fn">AUTHOR</span></span>: <span class="url">http://example.com</span></span></span><br />
<br />
--><br />
<br />
== 2008 ==<br />
*<span class="vevent"><span class="dtstart">2008-01-24</span>: <span class="description">''<span class="summary">Microformats introduction to content and user experience</span>'' by <span class="vcard"><span class="fn">Sarven Capadisli</span></span>: <span class="url">http://www.csarven.ca/microformats-introduction</span></span></span><br />
<br />
== 2007 ==<br />
<br />
*<span class="vevent"><span class="dtstart">2007-12-05</span>: <span class="description">''<span class="summary">The Magical Minimalism of Microformats</span>'' by <span class="vcard"><span class="fn">Jacob Harris</span></span> in The New York Times blog: <span class="url">http://open.blogs.nytimes.com/2007/12/05/the-magical-minimalism-of-microformats/</span></span></span><br />
<br />
*<span class="vevent"><span class="dtstart">2007-11-21</span>: <span class="description">''<span class="summary">Portable Social Networks: Take Your Friends with You</span>'' by <span class="vcard"><span class="fn">Brian Suda</span></span>: <span class="url">http://www.sitepoint.com/article/social-networks-take-friends/</span></span></span><br />
<br />
*<span class="vevent"><span class="dtstart">2007-07-24</span>: <span class="description">''<span class="summary">Microformats: More Meaning from Your Markup</span>'' by <span class="vcard"><span class="fn">Brian Suda</span></span>: <span class="url">http://www.sitepoint.com/article/microformats-meaning-markup</span></span></span><br />
<br />
==2006==<br />
<br />
*<span class="vevent"><span class="dtstart">2006-04-02</span>: <span class="description">''<span class="summary">Blog Business Summit: Microformats in Plain English: the Promise of Simple Business to Business Data Exchange</span>'' by <span class="vcard"><span class="fn">Steve Broback</span></span>: <span class="url">http://blogbusinesssummit.com/2006/04/microformats_in.htm</span></span></span><br />
<br />
*<span class="vevent"><span class="dtstart">2006-01-29</span>: <span class="description">''<span class="summary">How Microformats Affect Seearch Engine Optimization</span>'' by <span class="vcard"><span class="fn">Shaun Shull</span></span>: <span class="url">http://blog.usweb.com/archives/how-microformats-affect-search-engine-optimization-seo</span></span></span><br />
<br />
*<span class="vevent"><span class="dtstart">2006-01-27</span>: <span class="description">''<span class="summary">Introduction to hCard</span>'' by <span class="vcard"><span class="fn">Jesse Skinner</span></span>: <span class="url">http://www.thefutureoftheweb.com/blog/2006/1/hcard</span></span></span><br />
<br />
==2005==<br />
<br />
*<span class="vevent"><span class="dtstart">2005-12-06</span>: <span class="description">''<span class="summary">Practical Microformats with hCard</span>'' by <span class="vcard"><span class="fn">Drew McLellan</span></span>: <span class="url">http://24ways.org/advent/practical-microformats-with-hcard</span></span></span> <br />
<br />
*<span class="vevent"><span class="dtstart">2005-11-14</span>: <span class="description">''<span class="summary">Microformats Primer</span>'' by <span class="vcard"><span class="fn">Garrett Dimon</span></span> in Digital Web Magazine: <span class="url">http://www.digital-web.com/articles/microformats_primer/</span></span></span><br />
<br />
*<span class="vevent"><span class="dtstart">2005-07-24</span>: <span class="description">''<span class="summary">Usable Microformats</span>'' by <span class="vcard"><span class="fn">Andrew D. Hume</span></span>: <span class="url">http://usabletype.com/weblog/usable-microformats/</span></span></span><br />
<br />
*<span class="vevent"><span class="dtstart">2005-06-03</span>: <span class="description">''<span class="summary">Introducing microformats</span>'' by <span class="vcard"><span class="fn">Andrew D. Hume</span></span>: <span class="url">http://thedredge.org/2005/07/introducing-microformats/</span></span></span><br />
<br />
== Miscellaneous Reference ==<br />
<br />
These are various intro-related links/articles which we haven't figured out yet how to incorporate. You may find them of interest.<br />
<br />
* [http://www.betaversion.org/~stefano/linotype/news/93/ Data First vs. Structure First]<br />
** [http://tantek.com/log/ Tantek] says: In many ways it is actually *far* worse than that post conveys. The "typical" programmer literally loves spending far more time worrying about and designing the structure for structure's sake, than data, and even less so, "real world" data (current behaviors etc.). Hence we have taken the directly opposite tack with microformats when looking to solve a problem.<br />
*** Zeroeth, define the real-world problem. If you can't do this, then stop.<br />
*** First, look at real-world usage (data).<br />
*** Second, what previous standards are people actually using today? If there is more than one, then lean towards those with the better adoption.<br />
***And only after those first two do we bother to pay attention to theoretical standards, those that have been invented (whether by individuals, committees), but haven't seen much if any actual adoption.<br />
* [http://lists.w3.org/Archives/Public/www-rdf-interest/2000Mar/0103 2000-03-21 Dan Connolly on human-consumable information]: ('''strong emphasis''' added)<br />
** I believe that one of the best ways to transition into RDF, if not a long-term deployment strategy for RDF, is to '''manage the information in human-consumable form (XHTML) annotated with just enough info to extract''' the RDF statements that the human info is intended to convey. In other words: using a relational database or some sort of native RDF data store, and spitting out HTML dynamically, is a lot of infrastructure to operate and probably not worth it for lots of interesting cases. '''We all know that we have to produce a human-readable version of the thing... why not use that as the primary source?'''<br />
<br />
== See Also ==<br />
* [[press]]</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=articles&diff=25763articles2008-02-18T22:58:13Z<p>AndyMabbett: found missing post</p>
<hr />
<div><h1>Articles</h1><br />
{{TOC-right}}<br />
== to be sorted by date ==<br />
* [http://www.digital-web.com/articles/microformats_primer/ Digital Web Magazine: Microformats Primer] by Garrett Dimon<br />
* [http://www.gr0w.com/articles/design/an_extra_side_to_web_standards_based_design/ An Extra SIDE to Web Standards Based Design] - How Semantic Information Design Ethics (SIDE) and a few readily available techniques can help heal the Web, by Jon Tan. See also his [http://www.csszengarden.com/?cssfile=/193/193.css&page=0 CSS Zen Garden "Leggo my ego" entry].<br />
<br />
==MIA==<br />
<br />
<br />
<br />
<!--<br />
Template:<br />
<br />
*<span class="vevent"><span class="dtstart">YYYY-MM-DD</span>: <span class="description">''<span class="summary">TITLE</span>'' by <span class="vcard"><span class="fn">AUTHOR</span></span>: <span class="url">http://example.com</span></span></span><br />
<br />
--><br />
<br />
== 2008 ==<br />
*<span class="vevent"><span class="dtstart">2008-01-24</span>: <span class="description">''<span class="summary">Microformats introduction to content and user experience</span>'' by <span class="vcard"><span class="fn">Sarven Capadisli</span></span>: <span class="url">http://www.csarven.ca/microformats-introduction</span></span></span><br />
<br />
== 2007 ==<br />
<br />
*<span class="vevent"><span class="dtstart">2007-12-05</span>: <span class="description">''<span class="summary">The Magical Minimalism of Microformats</span>'' by <span class="vcard"><span class="fn">Jacob Harris</span></span> in The New York Times blog: <span class="url">http://open.blogs.nytimes.com/2007/12/05/the-magical-minimalism-of-microformats/</span></span></span><br />
<br />
*<span class="vevent"><span class="dtstart">2007-11-21</span>: <span class="description">''<span class="summary">Portable Social Networks: Take Your Friends with You</span>'' by <span class="vcard"><span class="fn">Brian Suda</span></span>: <span class="url">http://www.sitepoint.com/article/social-networks-take-friends/</span></span></span><br />
<br />
*<span class="vevent"><span class="dtstart">2007-07-24</span>: <span class="description">''<span class="summary">Microformats: More Meaning from Your Markup</span>'' by <span class="vcard"><span class="fn">Brian Suda</span></span>: <span class="url">http://www.sitepoint.com/article/microformats-meaning-markup</span></span></span><br />
<br />
==2006==<br />
<br />
*<span class="vevent"><span class="dtstart">2006-04-02</span>: <span class="description">''<span class="summary">Blog Business Summit: Microformats in Plain English: the Promise of Simple Business to Business Data Exchange</span>'' by <span class="vcard"><span class="fn">Steve Broback</span></span>: <span class="url">http://blogbusinesssummit.com/2006/04/microformats_in.htm</span></span></span><br />
<br />
*<span class="vevent"><span class="dtstart">2006-01-29</span>: <span class="description">''<span class="summary">How Microformats Affect Seearch Engine Optimization</span>'' by <span class="vcard"><span class="fn">Shaun Shull</span></span>: <span class="url">http://blog.usweb.com/archives/how-microformats-affect-search-engine-optimization-seo</span></span></span><br />
<br />
*<span class="vevent"><span class="dtstart">2006-01-27</span>: <span class="description">''<span class="summary">Introduction to hCard</span>'' by <span class="vcard"><span class="fn">Jesse Skinner</span></span>: <span class="url">http://www.thefutureoftheweb.com/blog/2006/1/hcard</span></span></span><br />
<br />
==2005==<br />
*<span class="vevent"><span class="dtstart">2005-12-06</span>: <span class="description">''<span class="summary">Practical Microformats with hCard</span>'' by <span class="vcard"><span class="fn">Drew McLellan</span></span>: <span class="url">http://24ways.org/advent/practical-microformats-with-hcard</span></span></span><br />
<br />
*<span class="vevent"><span class="dtstart">2005-07-24</span>: <span class="description">''<span class="summary">Usable Microformats</span>'' by <span class="vcard"><span class="fn">Andrew D. Hume</span></span>: <span class="url">http://usabletype.com/weblog/usable-microformats/</span></span></span><br />
<br />
<br />
*<span class="vevent"><span class="dtstart">2005-06-03</span>: <span class="description">''<span class="summary">Introducing microformats</span>'' by <span class="vcard"><span class="fn">Andrew D. Hume</span></span>: <span class="url">http://thedredge.org/2005/07/introducing-microformats/</span></span></span><br />
<br />
== Miscellaneous Reference ==<br />
<br />
These are various intro-related links/articles which we haven't figured out yet how to incorporate. You may find them of interest.<br />
<br />
* [http://www.betaversion.org/~stefano/linotype/news/93/ Data First vs. Structure First]<br />
** [http://tantek.com/log/ Tantek] says: In many ways it is actually *far* worse than that post conveys. The "typical" programmer literally loves spending far more time worrying about and designing the structure for structure's sake, than data, and even less so, "real world" data (current behaviors etc.). Hence we have taken the directly opposite tack with microformats when looking to solve a problem.<br />
*** Zeroeth, define the real-world problem. If you can't do this, then stop.<br />
*** First, look at real-world usage (data).<br />
*** Second, what previous standards are people actually using today? If there is more than one, then lean towards those with the better adoption.<br />
***And only after those first two do we bother to pay attention to theoretical standards, those that have been invented (whether by individuals, committees), but haven't seen much if any actual adoption.<br />
* [http://lists.w3.org/Archives/Public/www-rdf-interest/2000Mar/0103 2000-03-21 Dan Connolly on human-consumable information]: ('''strong emphasis''' added)<br />
** I believe that one of the best ways to transition into RDF, if not a long-term deployment strategy for RDF, is to '''manage the information in human-consumable form (XHTML) annotated with just enough info to extract''' the RDF statements that the human info is intended to convey. In other words: using a relational database or some sort of native RDF data store, and spitting out HTML dynamically, is a lot of infrastructure to operate and probably not worth it for lots of interesting cases. '''We all know that we have to produce a human-readable version of the thing... why not use that as the primary source?'''<br />
<br />
== See Also ==<br />
* [[press]]</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=articles&diff=25762articles2008-02-18T22:55:34Z<p>AndyMabbett: date & sort</p>
<hr />
<div><h1>Articles</h1><br />
{{TOC-right}}<br />
== to be sorted by date ==<br />
* [http://www.digital-web.com/articles/microformats_primer/ Digital Web Magazine: Microformats Primer] by Garrett Dimon<br />
* [http://www.gr0w.com/articles/design/an_extra_side_to_web_standards_based_design/ An Extra SIDE to Web Standards Based Design] - How Semantic Information Design Ethics (SIDE) and a few readily available techniques can help heal the Web, by Jon Tan. See also his [http://www.csszengarden.com/?cssfile=/193/193.css&page=0 CSS Zen Garden "Leggo my ego" entry].<br />
<br />
==MIA==<br />
<br />
* [http://thedredge.org/ Andrew D. Hume]'s post on usable microformats - was at <nowiki>http://usabletype.com/articles/2005/usable-microformats/</nowiki>.<br />
<br />
<!--<br />
Template:<br />
<br />
*<span class="vevent"><span class="dtstart">YYYY-MM-DD</span>: <span class="description">''<span class="summary">TITLE</span>'' by <span class="vcard"><span class="fn">AUTHOR</span></span>: <span class="url">http://example.com</span></span></span><br />
<br />
--><br />
<br />
== 2008 ==<br />
*<span class="vevent"><span class="dtstart">2008-01-24</span>: <span class="description">''<span class="summary">Microformats introduction to content and user experience</span>'' by <span class="vcard"><span class="fn">Sarven Capadisli</span></span>: <span class="url">http://www.csarven.ca/microformats-introduction</span></span></span><br />
<br />
== 2007 ==<br />
<br />
*<span class="vevent"><span class="dtstart">2007-12-05</span>: <span class="description">''<span class="summary">The Magical Minimalism of Microformats</span>'' by <span class="vcard"><span class="fn">Jacob Harris</span></span> in The New York Times blog: <span class="url">http://open.blogs.nytimes.com/2007/12/05/the-magical-minimalism-of-microformats/</span></span></span><br />
<br />
*<span class="vevent"><span class="dtstart">2007-11-21</span>: <span class="description">''<span class="summary">Portable Social Networks: Take Your Friends with You</span>'' by <span class="vcard"><span class="fn">Brian Suda</span></span>: <span class="url">http://www.sitepoint.com/article/social-networks-take-friends/</span></span></span><br />
<br />
*<span class="vevent"><span class="dtstart">2007-07-24</span>: <span class="description">''<span class="summary">Microformats: More Meaning from Your Markup</span>'' by <span class="vcard"><span class="fn">Brian Suda</span></span>: <span class="url">http://www.sitepoint.com/article/microformats-meaning-markup</span></span></span><br />
<br />
==2006==<br />
<br />
*<span class="vevent"><span class="dtstart">2006-04-02</span>: <span class="description">''<span class="summary">Blog Business Summit: Microformats in Plain English: the Promise of Simple Business to Business Data Exchange</span>'' by <span class="vcard"><span class="fn">Steve Broback</span></span>: <span class="url">http://blogbusinesssummit.com/2006/04/microformats_in.htm</span></span></span><br />
<br />
*<span class="vevent"><span class="dtstart">2006-01-29</span>: <span class="description">''<span class="summary">How Microformats Affect Seearch Engine Optimization</span>'' by <span class="vcard"><span class="fn">Shaun Shull</span></span>: <span class="url">http://blog.usweb.com/archives/how-microformats-affect-search-engine-optimization-seo</span></span></span><br />
<br />
*<span class="vevent"><span class="dtstart">2006-01-27</span>: <span class="description">''<span class="summary">Introduction to hCard</span>'' by <span class="vcard"><span class="fn">Jesse Skinner</span></span>: <span class="url">http://www.thefutureoftheweb.com/blog/2006/1/hcard</span></span></span><br />
<br />
==2005==<br />
*<span class="vevent"><span class="dtstart">2005-12-06</span>: <span class="description">''<span class="summary">Practical Microformats with hCard</span>'' by <span class="vcard"><span class="fn">Drew McLellan</span></span>: <span class="url">http://24ways.org/advent/practical-microformats-with-hcard</span></span></span><br />
<br />
*<span class="vevent"><span class="dtstart">2005-06-03</span>: <span class="description">''<span class="summary">Introducing microformats</span>'' by <span class="vcard"><span class="fn">Andrew D. Hume</span></span>: <span class="url">http://thedredge.org/2005/07/introducing-microformats/</span></span></span><br />
<br />
== Miscellaneous Reference ==<br />
<br />
These are various intro-related links/articles which we haven't figured out yet how to incorporate. You may find them of interest.<br />
<br />
* [http://www.betaversion.org/~stefano/linotype/news/93/ Data First vs. Structure First]<br />
** [http://tantek.com/log/ Tantek] says: In many ways it is actually *far* worse than that post conveys. The "typical" programmer literally loves spending far more time worrying about and designing the structure for structure's sake, than data, and even less so, "real world" data (current behaviors etc.). Hence we have taken the directly opposite tack with microformats when looking to solve a problem.<br />
*** Zeroeth, define the real-world problem. If you can't do this, then stop.<br />
*** First, look at real-world usage (data).<br />
*** Second, what previous standards are people actually using today? If there is more than one, then lean towards those with the better adoption.<br />
***And only after those first two do we bother to pay attention to theoretical standards, those that have been invented (whether by individuals, committees), but haven't seen much if any actual adoption.<br />
* [http://lists.w3.org/Archives/Public/www-rdf-interest/2000Mar/0103 2000-03-21 Dan Connolly on human-consumable information]: ('''strong emphasis''' added)<br />
** I believe that one of the best ways to transition into RDF, if not a long-term deployment strategy for RDF, is to '''manage the information in human-consumable form (XHTML) annotated with just enough info to extract''' the RDF statements that the human info is intended to convey. In other words: using a relational database or some sort of native RDF data store, and spitting out HTML dynamically, is a lot of infrastructure to operate and probably not worth it for lots of interesting cases. '''We all know that we have to produce a human-readable version of the thing... why not use that as the primary source?'''<br />
<br />
== See Also ==<br />
* [[press]]</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=articles&diff=25761articles2008-02-18T22:52:30Z<p>AndyMabbett: date & sort</p>
<hr />
<div><h1>Articles</h1><br />
{{TOC-right}}<br />
== to be sorted by date ==<br />
* [http://www.digital-web.com/articles/microformats_primer/ Digital Web Magazine: Microformats Primer] by Garrett Dimon<br />
* [http://www.gr0w.com/articles/design/an_extra_side_to_web_standards_based_design/ An Extra SIDE to Web Standards Based Design] - How Semantic Information Design Ethics (SIDE) and a few readily available techniques can help heal the Web, by Jon Tan. See also his [http://www.csszengarden.com/?cssfile=/193/193.css&page=0 CSS Zen Garden "Leggo my ego" entry].<br />
* [http://thedredge.org/ Andrew D. Hume] has written a blog post [http://thedredge.org/2005/07/introducing-microformats/ introducing microformats] and another one on [http://usabletype.com/articles/2005/usable-microformats/ usable microformats].<br />
<br />
<!--<br />
Template:<br />
<br />
*<span class="vevent"><span class="dtstart">YYYY-MM-DD</span>: <span class="description">''<span class="summary">TITLE</span>'' by <span class="vcard"><span class="fn">AUTHOR</span></span>: <span class="url">http://example.com</span></span></span><br />
<br />
--><br />
<br />
== 2008 ==<br />
*<span class="vevent"><span class="dtstart">2008-01-24</span>: <span class="description">''<span class="summary">Microformats introduction to content and user experience</span>'' by <span class="vcard"><span class="fn">Sarven Capadisli</span></span>: <span class="url">http://www.csarven.ca/microformats-introduction</span></span></span><br />
<br />
== 2007 ==<br />
<br />
*<span class="vevent"><span class="dtstart">2007-12-05</span>: <span class="description">''<span class="summary">The Magical Minimalism of Microformats</span>'' by <span class="vcard"><span class="fn">Jacob Harris</span></span> in The New York Times blog: <span class="url">http://open.blogs.nytimes.com/2007/12/05/the-magical-minimalism-of-microformats/</span></span></span><br />
<br />
*<span class="vevent"><span class="dtstart">2007-11-21</span>: <span class="description">''<span class="summary">Portable Social Networks: Take Your Friends with You</span>'' by <span class="vcard"><span class="fn">Brian Suda</span></span>: <span class="url">http://www.sitepoint.com/article/social-networks-take-friends/</span></span></span><br />
<br />
*<span class="vevent"><span class="dtstart">2007-07-24</span>: <span class="description">''<span class="summary">Microformats: More Meaning from Your Markup</span>'' by <span class="vcard"><span class="fn">Brian Suda</span></span>: <span class="url">http://www.sitepoint.com/article/microformats-meaning-markup</span></span></span><br />
<br />
==2006==<br />
<br />
*<span class="vevent"><span class="dtstart">2006-04-02</span>: <span class="description">''<span class="summary">Blog Business Summit: Microformats in Plain English: the Promise of Simple Business to Business Data Exchange</span>'' by <span class="vcard"><span class="fn">Steve Broback</span></span>: <span class="url">http://blogbusinesssummit.com/2006/04/microformats_in.htm</span></span></span><br />
<br />
*<span class="vevent"><span class="dtstart">2006-01-29</span>: <span class="description">''<span class="summary">How Microformats Affect Seearch Engine Optimization</span>'' by <span class="vcard"><span class="fn">Shaun Shull</span></span>: <span class="url">http://blog.usweb.com/archives/how-microformats-affect-search-engine-optimization-seo</span></span></span><br />
<br />
*<span class="vevent"><span class="dtstart">2006-01-27</span>: <span class="description">''<span class="summary">Introduction to hCard</span>'' by <span class="vcard"><span class="fn">Jesse Skinner</span></span>: <span class="url">http://www.thefutureoftheweb.com/blog/2006/1/hcard</span></span></span><br />
<br />
==2005==<br />
*<span class="vevent"><span class="dtstart">2005-12-06</span>: <span class="description">''<span class="summary">Practical Microformats with hCard</span>'' by <span class="vcard"><span class="fn">Drew McLellan</span></span>: <span class="url">http://24ways.org/advent/practical-microformats-with-hcard</span></span></span><br />
<br />
== Miscellaneous Reference ==<br />
<br />
These are various intro-related links/articles which we haven't figured out yet how to incorporate. You may find them of interest.<br />
<br />
* [http://www.betaversion.org/~stefano/linotype/news/93/ Data First vs. Structure First]<br />
** [http://tantek.com/log/ Tantek] says: In many ways it is actually *far* worse than that post conveys. The "typical" programmer literally loves spending far more time worrying about and designing the structure for structure's sake, than data, and even less so, "real world" data (current behaviors etc.). Hence we have taken the directly opposite tack with microformats when looking to solve a problem.<br />
*** Zeroeth, define the real-world problem. If you can't do this, then stop.<br />
*** First, look at real-world usage (data).<br />
*** Second, what previous standards are people actually using today? If there is more than one, then lean towards those with the better adoption.<br />
***And only after those first two do we bother to pay attention to theoretical standards, those that have been invented (whether by individuals, committees), but haven't seen much if any actual adoption.<br />
* [http://lists.w3.org/Archives/Public/www-rdf-interest/2000Mar/0103 2000-03-21 Dan Connolly on human-consumable information]: ('''strong emphasis''' added)<br />
** I believe that one of the best ways to transition into RDF, if not a long-term deployment strategy for RDF, is to '''manage the information in human-consumable form (XHTML) annotated with just enough info to extract''' the RDF statements that the human info is intended to convey. In other words: using a relational database or some sort of native RDF data store, and spitting out HTML dynamically, is a lot of infrastructure to operate and probably not worth it for lots of interesting cases. '''We all know that we have to produce a human-readable version of the thing... why not use that as the primary source?'''<br />
<br />
== See Also ==<br />
* [[press]]</div>AndyMabbetthttp://microformats.org/wiki/index.php?title=articles&diff=25760articles2008-02-18T22:50:05Z<p>AndyMabbett: </p>
<hr />
<div><h1>Articles</h1><br />
{{TOC-right}}<br />
== to be sorted by date ==<br />
* [http://www.digital-web.com/articles/microformats_primer/ Digital Web Magazine: Microformats Primer] by Garrett Dimon<br />
* [http://www.gr0w.com/articles/design/an_extra_side_to_web_standards_based_design/ An Extra SIDE to Web Standards Based Design] - How Semantic Information Design Ethics (SIDE) and a few readily available techniques can help heal the Web, by Jon Tan. See also his [http://www.csszengarden.com/?cssfile=/193/193.css&page=0 CSS Zen Garden "Leggo my ego" entry].<br />
* [http://thedredge.org/ Andrew D. Hume] has written a blog post [http://thedredge.org/2005/07/introducing-microformats/ introducing microformats] and another one on [http://usabletype.com/articles/2005/usable-microformats/ usable microformats].<br />
* [http://24ways.org/advent/practical-microformats-with-hcard Practical Microformats with hCard] by Drew McLellan<br />
<br />
<!--<br />
Template:<br />
<br />
*<span class="vevent"><span class="dtstart">YYYY-MM-DD</span>: <span class="description">''<span class="summary">TITLE</span>'' by <span class="vcard"><span class="fn">AUTHOR</span></span>: <span class="url">http://example.com</span></span></span><br />
<br />
--><br />
<br />
== 2008 ==<br />
*<span class="vevent"><span class="dtstart">2008-01-24</span>: <span class="description">''<span class="summary">Microformats introduction to content and user experience</span>'' by <span class="vcard"><span class="fn">Sarven Capadisli</span></span>: <span class="url">http://www.csarven.ca/microformats-introduction</span></span></span><br />
<br />
== 2007 ==<br />
<br />
*<span class="vevent"><span class="dtstart">2007-12-05</span>: <span class="description">''<span class="summary">The Magical Minimalism of Microformats</span>'' by <span class="vcard"><span class="fn">Jacob Harris</span></span> in The New York Times blog: <span class="url">http://open.blogs.nytimes.com/2007/12/05/the-magical-minimalism-of-microformats/</span></span></span><br />
<br />
*<span class="vevent"><span class="dtstart">2007-11-21</span>: <span class="description">''<span class="summary">Portable Social Networks: Take Your Friends with You</span>'' by <span class="vcard"><span class="fn">Brian Suda</span></span>: <span class="url">http://www.sitepoint.com/article/social-networks-take-friends/</span></span></span><br />
<br />
*<span class="vevent"><span class="dtstart">2007-07-24</span>: <span class="description">''<span class="summary">Microformats: More Meaning from Your Markup</span>'' by <span class="vcard"><span class="fn">Brian Suda</span></span>: <span class="url">http://www.sitepoint.com/article/microformats-meaning-markup</span></span></span><br />
<br />
==2006==<br />
<br />
*<span class="vevent"><span class="dtstart">2006-04-02</span>: <span class="description">''<span class="summary">Blog Business Summit: Microformats in Plain English: the Promise of Simple Business to Business Data Exchange</span>'' by <span class="vcard"><span class="fn">Steve Broback</span></span>: <span class="url">http://blogbusinesssummit.com/2006/04/microformats_in.htm</span></span></span><br />
<br />
*<span class="vevent"><span class="dtstart">2006-01-29</span>: <span class="description">''<span class="summary">How Microformats Affect Seearch Engine Optimization</span>'' by <span class="vcard"><span class="fn">Shaun Shull</span></span>: <span class="url">http://blog.usweb.com/archives/how-microformats-affect-search-engine-optimization-seo</span></span></span><br />
<br />
*<span class="vevent"><span class="dtstart">2006-01-27</span>: <span class="description">''<span class="summary">Introduction to hCard</span>'' by <span class="vcard"><span class="fn">Jesse Skinner</span></span>: <span class="url">http://www.thefutureoftheweb.com/blog/2006/1/hcard</span></span></span><br />
<br />
== Miscellaneous Reference ==<br />
<br />
These are various intro-related links/articles which we haven't figured out yet how to incorporate. You may find them of interest.<br />
<br />
* [http://www.betaversion.org/~stefano/linotype/news/93/ Data First vs. Structure First]<br />
** [http://tantek.com/log/ Tantek] says: In many ways it is actually *far* worse than that post conveys. The "typical" programmer literally loves spending far more time worrying about and designing the structure for structure's sake, than data, and even less so, "real world" data (current behaviors etc.). Hence we have taken the directly opposite tack with microformats when looking to solve a problem.<br />
*** Zeroeth, define the real-world problem. If you can't do this, then stop.<br />
*** First, look at real-world usage (data).<br />
*** Second, what previous standards are people actually using today? If there is more than one, then lean towards those with the better adoption.<br />
***And only after those first two do we bother to pay attention to theoretical standards, those that have been invented (whether by individuals, committees), but haven't seen much if any actual adoption.<br />
* [http://lists.w3.org/Archives/Public/www-rdf-interest/2000Mar/0103 2000-03-21 Dan Connolly on human-consumable information]: ('''strong emphasis''' added)<br />
** I believe that one of the best ways to transition into RDF, if not a long-term deployment strategy for RDF, is to '''manage the information in human-consumable form (XHTML) annotated with just enough info to extract''' the RDF statements that the human info is intended to convey. In other words: using a relational database or some sort of native RDF data store, and spitting out HTML dynamically, is a lot of infrastructure to operate and probably not worth it for lots of interesting cases. '''We all know that we have to produce a human-readable version of the thing... why not use that as the primary source?'''<br />
<br />
== See Also ==<br />
* [[press]]</div>AndyMabbett