[uf-discuss] hCard SOURCE

Scott Reynen scott at randomchaos.com
Mon Feb 26 07:12:51 PST 2007

On Feb 24, 2007, at 5:43 PM, Joe Andrieu wrote:

> Brian Suda wrote:
>> --- this has managed to span several threads and lots of
>> messages. I have completely lost track of what people are
>> TRYING to do, what this actually accomplishes? There is a
>> pretty intereting application that already does an excellent
>> job of identity consolidation using the tools we have today.
>> http://webdd.backnetwork.com/
>> This is an excellent example for anyone lucky enough to have
>> been at a conference and played with it. There is some
>> discussion and slides of how it works[1,2]
> Brian, from what I could get from the links provided, webdd is  
> using rel=me and XFN, rather than SOURCE. One potential hurdle with
> that is the rel applies to full pages only, and can't point to  
> individual hCards.

Yeah, even if we could get around the full-page semantics of rel,  
rel="me" only indicates identity, which is only half of what I'm  
looking for.  I agree with Ryan that we should stick with existing  
vCard properties for this, specifically UID.  But even if we used  
rel="me" for that, we'd still have the problem of figuring out which  
hCards should be preferred (by applications that want to give  
preferential treatment to certain hCards) among a set of hCards all  
describing the same person.  I think SOURCE is useful for  
communicating this, and was intended for exactly that purpose.  I'm  
not suggesting changing it at all, only including some examples of  
how to use it in the hCard spec.

> The main thing I would like to be able to do is simply provide a  
> "brief" hCard that links back to a "full" hCard so that when I show
> up where only my name is appropriate, a consuming application (or  
> individual) can dereference to the full hCard to get my complete
> contact information.

Me too.

>> -- ok, i think i see you point in that each hCard uses SOURCE 
>> to say where they got the information from, but each time you
>> add something to the chain, the SOURCE is the previous link.
>> 'A' gets the data from 'B' (so A uses B's URL as the SOURCE)
>> 'B' got the data from 'C' (so B uses C's URL as the SOURCE).
>> Are people publishing in this way already? We want to model
>> user-behavior that already exists.
> Yes.  For a single-link chain, look at my example on http:// 
> projectvrm.org/Blogs; others have also stated that they do this  
> sort of
> thing.  Following a chain to its "conclusion" would be one way to  
> discover the "most authoritative", but I'd be happy with just one
> dereference for now.

It seems to me that whether one or a chain is followed should be up  
to a consuming application, and makes no difference for publishers,  
who can only point the hCards we're publishing to better hCards  
(regardless of how far the chain continues from there).

> For a multi-link chain not hCard encoded, see http:// 
> microformats.org/wiki/irc-people

Or any blog with comments, which generally point to other blogs,  
which generally point to author profiles.  I think names linking to  
better contact information for a person is one of the most common  
publishing behaviors on the web.  Here's a thousand examples of the  
behavior to get us started:


That class of link is what I want to model, and I think "source" is a  
good name for the class.  (I don't really have any problem with  
rel="via" either, as I think the semantic of "via" is applicable to  
the entire document, as well as the individual abbreviated hCard.)

> Currently, this information is invisible to the semantic web.  I  
> think hCard with authoritative sources would make it easy to make
> it visible.


>> --- If we are citing where we got the data from, and each
>> link my previous example is citing (SOURCEing) where it got
>> the data from, then the X2V implementation does just this.
>> When it extracts a vCard from an hCard it uses the URL of the
>> current page as the SOURCE, even if that hCard used SOURCE
>> and pointed at a different URL. I'm not (and i don't think
>> you are) advocating following that chain to the end and using
>> that hCard. We don't do this with the include-pattern for
>> vairous reasons.
> Actually, I am advocating that, specifically for this use case.

I'm finding "advocating" unclear here.  In RFC-speak [1], I'm saying  
MAY, not SHOULD nor MUST.  Personally, I'd prefer consuming  
applications that see my hCard on someone else's blog to replace it  
with the SOURCEd hCard on my site.  But it's no problem if they  
don't, as I can always use other applications that do.

> The semantic I would like to see encoded is that when a "source"
> points to an hCard with the same UID, the source hCard is more  
> authoritative.

I'd rather not get into defining "authoritative."  For my purposes, a  
source is more authoritative.  But if you want to define  
authoritativeness by the length of the hCard, or the publication  
date, or whatever makes the most sense for your application, that's  
an implementation decision, not defined by the meaning of SOURCE as  
far as I can tell.

>> You could add <a href="/foobar/contact" class="url source">
>> but it would not get picked-up by extracting applications -
>> only specialized applications that WANT to follow that chain
>> to the end.

That's what I'm suggesting.

>> Which (IMHO) is not needed, we already have an
>> application, The backnetwork, that does all of this without
>> the need of UID or SOURCE or any other mark-up.
> Could you explain how that works?  I read through the slides, the  
> website, and the blog post, but didn't see how my brief hCard at
> http://projectvrm.com/Blogs would be connected back to my hCard at  
> http://www.switchbook.com.

Yeah, I'm not seeing this solution either.  As a publisher, how do I  
tell that application that one hCard is a better representation of me  
than another?  Or as a consumer application, how do I figure that out  
with no hints in the markup?  As a human, I figure that out by  
looking at complicated networks of links and contextual clues.  I  
know Brian's preferred hCard is here:


because the domain is his name and it contains more information than  
I find on any of these other hCards with the same name:


But that's very speculative, and I'd like to be able to make it  
explicit when incomplete representations of me are published  
throughout the web.

> Agreed. X2V already generates source so that one /could/  
> dereference from the vCard to get back to the hCard.
> What it doesn't do yet, is dereference down the chain to fill out a  
> brief hCard based on data at its source. And frankly, if X2V is
> at its core an XSLT file, it probably can't do this; please correct  
> me if I'm wrong.
> The bigger problem though, is that you destroy the SOURCE found in  
> the hCard, so that dereferencing through the source is no longer
> possible.

I think what X2V does currently is correct.  The hCard URL *is* the  
source of the vCard, so that's exactly what it should say.  The  
SOURCE of the vCard and the SOURCE of the SOURCE of the vCard (i.e.  
the hCard SOURCE) are not the same thing, and the hCard SOURCE  
shouldn't be used unless the contents of that SOURCE are used in the  
vCard, which they're not.

> In other words, as a consuming app, I couldn't use the X2V XSLT and  
> follow the dereferencing chain on my own, correct?

I don't see why you couldn't.  The vCard SOURCE tells you exactly  
where to start following that chain, by pointing back to the hCard.

> Would it be possible to simply /add/ another SOURCE rather than  
> replacing the one in the hCard?  It may seem odd, but I don't think
> the vCard standard requries SOURCE to be singular.  In other words,  
> retaining existing SOURCE values and adding one for the URL
> where X2V found the hCard seems reasonable and appropriate.

I think it would be inappropriate to claim a URL as a SOURCE that is  
not actually a source of the information in the vCard.  It doesn't  
really matter to me if X2V makes such misleading claims, but I'd  
certainly oppose mandating it in a spec.

> For the record, I'm ok with both URL and SOURCE being used for this  
> purpose:  If there is a UID, check SOURCE and URL for
> dereferencable links to hCards with a similar UID.  If an hCard  
> exists with the same UID at either the URL or SOURCE, consider that
> hCard "related".

If an hCards exists with the same UID *anywhere*, consider that hCard  
related.  Because UIDs are by definition unique to individuals, two  
hCards with the same UID can't possibly be unrelated.  But I think  
SOURCE gives us valuable information that URL does not, specifically  
which of two hCards considers the other a source.

> I would go further and say that "relatedness" in this context  
> implies that the dereferenced SOURCE is more authoritative.

I'd say it only implies that for applications that consider SOURCE  
more authoritative, and as noted above, there are several competing  
definitions of authoritativeness, which should be left to consuming  
applications to choose (or not choose) as an implementation decision.

> In particular, that SOURCE is a directed relationship from the less  
> authoritative to the more authoritative.

If you're defining authoritativeness by how recent something is, the  
SOURCE goes the opposite direction, from more authoritative to less  
authoritative.  I'd rather keep this simple and just say SOURCE is  
where information was originally found, and however consuming  
applications want to use that to determine (or ignore)  
authoritativeness is an implementation decision, not defined in the  

[1] http://www.ietf.org/rfc/rfc2119.txt


More information about the microformats-discuss mailing list