rel="profile" was originally introduced in a draft of XHTML 2.0 (citation needed) as a result of a proposal by Tantek Çelik during an early HTML Working Group meeting (sometime in the early 2000s, working group minutes citation needed) to solve the problem of profile URLs being limited to a single one-off invisible attribute of the
This same meaning, that of a link to a metadata profile for the current document, is being strongly considered for an update to XMDP. See XMDP Brainstorming, in particular, when microformats may be in use.
In brief: the head[profile] takes precedence per current XMDP description (for backward compat), and then the same first defined rules apply, that is in cases where more than one profile from an
<a rel="profile"> defines the same term, first definition wins.
Using rel="profile" has numerous advantages aside from the obvious and originally intended advantage of enabling a future version of HTML to depend less on the "profile" attribute of the
<head> element, and simply use the existing
<link> element instead.
Most of these advantages come from the ability to use
<a> hyperlinks instead of (or in addition to)
<link> elements and are based on the microformats principles.
The idea is that a document that uses a particular microformat, e.g. hCard 1.0, can explicitly link to the profile for that microformat and indicate the profile relationship, via existing visible content hyperlink text such as "This document uses hCard", or an hCard badge image, both of which have been seen in real world web content.
Hyperlinks with rel="profile" provide the potential for contextual definitions of terms. That is, we could define vocabularies included by a hyperlink with rel="profile" to apply only within the context of the hyperlink (either the parent element and all its descendants, or perhaps just the latter siblings of the hyperlinks and all their descendants).
These fragments of self-defining portable Semantic HTML would enable more modular HTML for transclusion and other purposes.
Cognition has supported
rel=profile since March 2008. Cognition has two microformat parsing modes:
- Strict mode: pages using microformats are required to include a well-known profile URI for each microformat they use, essentially as a "flag" to enable parsing of that microformat.
- Loose mode (default): most microformats will be parsed without a profile being explicitly included (though authors are still recommended to include profile URIs for any microformats they use). Some obscure microformats (e.g. XFN 1.0, XEN) still require a profile URI to work.