XFN: FAQ

Frequently asked questions about XFN.

Do you have questions?
We may have answers.
Do the XFN values have to be in a particular order?
Nope! You can list them in whatever order you like best, or mix it up randomly each time. So long as the values are separated by spaces, you're free to order them however you want.
How do I use XFN when I link to someone's blog post?
That's a great question and one which we've debated ourselves. A typical reference to a blog post might look like:

  <a href="//d.example.com/2003/11/08.html#T2134">
    David wrote about a new theory
  </a> 
  ...
 
At first it seems easy enough to simply put an XFN value directly on the hyperlink and be done:

  <a rel="colleague met" href="//d.example.com/2003/11/08.html#T2134">
    David wrote about a new theory
  </a> 
  ...
 
But the problem with this is that the hyperlink doesn't link to the person David, it links to a specific blog post. Thus what does it mean to be a "colleague" of a blog post, or for that matter, to have "met" a blog post? The first step is to separate the person from the post. It's already an established convention to treat blogs or personal sites as representing the person. Additionally, we can add some semantics with the use of the <cite> tag.

  <a href="//d.example.com">
   <cite>David</cite>
  </a>
  <a href="//d.example.com/2003/11/08.html#T2134">
    wrote about a new theory
  </a> 
  ...
 
and now it's much more obvious where to use XFN:

  <a rel="colleague met" href="//d.example.com">
   <cite>David</cite>
  </a>
  <a href="//d.example.com/2003/11/08.html#T2134">
    wrote about a new theory
  </a> 
  ...
 
Why should a weblogger bother?
You might as well ask: why do webloggers bother to blog? Or why do they bother to create and maintain a blogroll? Here is an attempt to briefly answer a question that several books have already been written about:

Bloggers like to share with others (hence they blog). Bloggers like to share with others the list of other blogs and news sources that they like to read — blog rolls. Some bloggers even like to annotate their blogrolls with an asterisk "*" next to the names of folks that they have met. XFN is the logical next step. A way to annotate the links in a blogroll according to whether you have met the person (and thus know they really exist), whether you think of them as a friend (and thus imply a stronger recommendation for their site) etc. XFN is easy (just add rel="met" to links to people you've met for starters), and helps you enrich what you've already built — no new languages or files needed. Edit your blogroll, type a few keystrokes, save/upload and you've joined the XHTML Friends Network. Welcome.

What do symmetry, transitivity and inverse mean in the context of the XFN profile?
They're actually defined in the profile itself, try hovering over the italicized first occurance of the terms in the XFN profile. For your convenience the definitions are repeated here:
symmetry
A symmetric relationship 'rel' is one where 'A rel B' implies 'B rel A' and vice versa.
transitivity
A transitive relationship 'rel' is one where 'A rel B' and 'B rel C' implies 'A rel C'
inverse
A relationship 'rel' has an inverse 'inv' when 'A rel B' implies 'B inv A'. A symmetrical relationship is its own inverse.
What do I do when my relationships change?
What do you do when your friends move websites or domains or otherwise change their URL?

It's all a matter of updating your hyperlinks. The easiest thing to do is to keep your personal links in one or two places (like your blogroll or links pages) and then just update those when your relationships change, just like you would update them if your friends changed where they host their blogs etc.

But what about all my old blog posts where I've used XFN in my links to people? If you moved to a different city would you worry about updating all your blog posts that talk about where you used to live as if it were home?

You don't need to worry about updating your old blog posts' XFN info at all. In fact, just like the example of where you used to live, your old blog posts simply reflect your relationships at the time that you wrote those posts. See the XFN Background document for more on mixing XFN and time based formats like blogs.

What about virtual relationships? I mean, I haven't met most of the people in my blogroll, how do I use XFN for them?
Simple, you just omit the 'met' value.

If you XFN your hyperlink to someone with rel="acquaintance", you are saying that that person is your acquaintance, and by deliberately omitting the 'met' value, you are saying that you've never physically met. Therefore you have a virtual relationship with that someone.

In the same way, you can make someone your virtual "friend" as well. You may eventually meet them in person, and then you would link to them with rel="friend met".

XFN [GMPG]