rel-profile
rel profile
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 <head>
element.
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.
processing model
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.
advantages
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) <head>
and <link>
elements and are based on the microformats principles.
visibility
The idea is that a document that uses a particular microformat, e.g. hCard, 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.
modularity
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.