[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>
</span>.
</address>
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>
</a>
<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>
</div>
<p><abbr title="Telephone">Tel</abbr>/<abbr title="Telefax">Fax</
abbr>: <a class="tel" href="callto:+44-1273-771485">+44 1273 771485</
a></p>
<p class="tel"><span class="type">Mobile</span>: <a class="value"
href="callto:+44-7792-069292">+44 7792 069292</a></p>
</div>
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
rel="me".
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
fragment:
<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".
Anyway...
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:
http://gmpg.org/xfn/and/#idconsolidation
Bye,
Jeremy
--
Jeremy Keith
a d a c t i o
http://adactio.com/
More information about the microformats-discuss
mailing list