[uf-discuss] Authoritative hCards [was RE: Canonical hCards)]

Jeremy Keith jeremy at adactio.com
Wed Jan 24 03:43:45 PST 2007

I'd like to bring up a real world example here.

Tantek wrote:
> I'd even advocate looking for
> the first <address> that is or contains an hCard on the page, since  
> that's
> following prescribed behavior from HTML4.

On every page of my site (http://adactio.com/), I have an hCard that  
uses the address element:

<address class="vcard">
<a href="http://adactio.com/" class="url org">Adactio</a>
is the online home of
<a href="mailto:jeremy at adactio.com" class="email fn">Jeremy Keith</a>, a
<span class="title">web developer</span>
living and working in
<span class="adr">
<span class="locality">Brighton</span>,
<span class="country-name">England</span>

I believe this is the correct use of the address element. Whichever  
page of the site you find yourself on, the address element contains  
the contact details of the site owner: me.

On my contact page, I have a longer hCard:

<div class="vcard">
<h3>Contact Details</h3>
<a class="fn url" href="http://adactio.com/">
<span class="given-name">Jeremy</span>
<span class="family-name">Keith</span>
<div class="adr">
<span class="street-address">Flat 7, <br />57/58 Brunswick Road</ 
span><br />
<span class="locality">Hove</span>
<a class="postal-code" href="http://maps.google.co.uk/maps?q=bn3+1dh"  
title="map">BN3 1DH</a><br />
<span class="country-name">England</span>
<p><abbr title="Telephone">Tel</abbr>/<abbr title="Telefax">Fax</ 
abbr>: <a class="tel" href="callto:+44-1273-771485">+44 1273 771485</ 
<p class="tel"><span class="type">Mobile</span>: <a class="value"  
href="callto:+44-7792-069292">+44 7792 069292</a></p>

Here, I'm not using the address element (though I could) but this  
longer hCard should probably be considered the authoritative one (or  
it should be merged with any other hCard data collected).

I *could* use rel="me" on the first hCard (the one that appears on  
every page) to point to the contact page:

<a class="url" href="http://adactio.com/contact/" rel="me">

But that feels a little uncomfortable: usually, I would point  
rel="me" to the front page of my site (and that's exactly what I have  
done with hCards in other places like http://bulletproofajax.com/ )

So although I have a single location for an authoritative hCard, none  
of my "lesser" hCards are connected to the authoritative version.

David suggested:
> - if there is no fragment in the non-canonical hCard url, a <link>  
> is required

To which, Tantek replied:
> <link> should never be required, and should be avoided.

And I tend to agree.

I have a feeling that the answer lies with rel="me".

In my case, if I were to update just the address element that appears  
on the home page with a link of rel="me" pointing to my contact page,  
then all roads would (eventually) lead to my authoritative hCard:

* Every page of adactio.com has an hCard with a "url" value pointing  
to the front page,
* All of my hCards on other sites (e.g. the Bulletproof Ajax site,  
blog comments etc.) points to the front page of adactio.com, again  
using the "url" value,
* The front page of my site points to my authoritative hCard using  

Brian described the behaviour of spidering tools and wrote:
> By doing this, we introduce NO new technology or mark-up to find
> authoritative data. We are using already existing microformats (XFN),
> the data is visible using @rel instead of <link> it allows for the
> market to compete and build better spiders.

I agree. And I think I'll go and update the front page of my site  
right now. :-)

But Brian also raised another point:
> The problem arrises when multiple hCards are
> encountered on a page - which is the authorative hCard?

This is the case with http://adactio.com/contact/
As well as the "global" hCard (in the address element), the page also  
contains the authoritative one.

So what I may need to do is expand the href I use in a rel="me" link  
to point not just to my contact page, but specifically to a page  

<a class="url" href="http://adactio.com/contact/#vcard" rel="me">

As long as I uniquely identify my authoritative hCard with that  
unique identifier (id="vcard") then, at least in theory, a spider  
should be able to tell which hCard is authoritative even if more than  
one hCard is on the page.

Note that I'm not suggesting a *specific* value like "vcard" for the  
fragment identifier, just that the fragment identifier corresponds to  
the rel="me" url. So I could just as easily use:

<a class="url" href="http://adactio.com/contact/#foobar" rel="me">

...as long as I then markup my authoritative hCard within id="foobar".


I started this email just to throw a real-world example out there,  
but talking through it has helped me clarify what I think I need to do.

Before I finally shut up, I wanted to make sure that this link gets  
mentioned at least once in this discussion:




Jeremy Keith

a d a c t i o


More information about the microformats-discuss mailing list