Use of profile attribute in HTML head tag

Often, the header of a document contains a number of <meta> tags used to convey additional information about the document to the browser. In the future, authors may use predefined profiles of standard document metadata to better describe their documents. The profile attribute supplies the URL of the profile associated with the current document.

The format of a profile and how a browser might use it are not yet defined; this attribute is primarily a placeholder for future development.

FROM:: HTML & XHTML: The Definitive Guide, Sixth Edition, by Chuck Musciano and Bill Kennedy. Copyright 2007 O’Reilly Media, Inc., 978-0-596-52732-7.


The actual HTML 4 specification as opposed to the background on name spaces in general explains it better. Check out: http://www.w3.org/TR/1999/REC-html401-19991224/struct/global.html#profiles

One real life use is to make it clear that your meta-data is not just an arbitrary system by you, but adheres to a system some one came up with.

So for example, you may want to use the Dublin Core specification for your meta data. On a web page you would state this in the HEAD element using the profile attribute and then your meta tags would use Dublin Core elements like so:

<head profile="http://dublincore.org/documents/2008/08/04/dc-html/">
<meta name="DC.date" content="2010-11-22">
<meta name="DC.format" content="text/html">
<meta name="DC.contributor" content="Dublin Core Metadata Initiative>
<meta name="DC.language" content="en">

HTML5 has dropped the profile attribute from the head element (details).
You could however, use a rel attribute to the links to achieve this.

So, instead of

    <HEAD profile="http://www.acme.com/profiles/core">

it is now

    <link rel="profile" href="http://gmpg.org/xfn/11" />

From W3,

The profile attribute of the HEAD specifies the location of a meta data profile. The value of the profile attribute is a URI. User agents may use this URI in two ways:

  1. As a globally unique name. User agents may be able to recognize the name (without actually retrieving the profile) and perform some activity based on known conventions for that profile. For instance, search engines could provide an interface for searching through catalogs of HTML documents, where these documents all use the same profile for representing catalog entries.
  2. As a link. User agents may dereference the URI and perform some activity based on the actual definitions within the profile (e.g., authorize the usage of the profile within the current HTML document). This specification does not define formats for profiles.

Simply put, XMDP introduced a simple way to define URLs and meanings used in an element, to read and write by both humans and machines as a dictionary of meta information. It was an initial attempt to achieve relations between elements.

To read more on this, find the references listed at the end of the answer.

IMO, things have really improved in the recent past to achieve semantic relations thanks to introduction and implementations of Rich Snippets, which allows multiple formats for implementing structured data.
More information is available at schema.org and FAQ.

Here is the list of supported markup formats

  1. Microdata
  2. Microformats
  3. RDFa

... More Details

With recent updates, there is also linking of author, and content published (Google+ only), by adding this :

<link href="https://plus.google.com/{+PageId}" rel="publisher" />

References / Further reading :

  1. http://www.w3.org/TR/html401/struct/global.html#profiles
  2. http://gmpg.org/xmdp/
  3. http://microformats.org/wiki/html5-profile#Section_7.4.1_-_The_HEAD_element
  4. http://microformats.org/wiki/profile-uris
  5. http://support.google.com/webmasters/bin/answer.py?hl=en&answer=99170&topic=1088472&ctx=topic

The URI in the profile attribute points to a document containing information regarding metadata. Profiles defines properties that may be used by the HTML meta tag and the HTML link tag. There are no prescribed formats for profiles. The profile attribute is no longer supported in HTML 5.