Year: 2005

XFN Grandeur

Jennifer Goldbeck has written an post over on an Oreillynet weblog called XFN Delusions of Grandeur.

She seems to be a fan of the ideas behind XFN, but has some criticisms of the microformat. Unfortunately, I think her criticisms come from misunderstandings of XFN. These misconceptions come up often, so I’ll try to give a thorough treatment of them here.

First, she says

The problem with this is that we are annotating URLs of webpages, not people.[…]

Indeed, XFN uses URLs as a way to talk about social relationships. However, in the case of XFN, URLs are used as a proxy for people, which is a practice in common use on the web. When I talk about a friend on my blog, I will commonly link to their homepage or blog. I use their URL, then, as a proxy reference for them.

Jennifer goes on to ask:

How do we actually know who the person is that is described on the webpage? Short answer: we don’t.

We don’t. At least, XFN doesn’t tell us. This lack is intentional- the XFN background document says:

The third design principle is that XFN values should describe the nature of a link between two people, rather than the people themselves. It is our feeling that the content of one person’s site (such as a weblog) will say far more about them than any set of values could ever capture.

So, in essence, the creators of XFN (Tantek, Eric and Matt) didn’t even try to solve the problem of identifying and describing people. For them, it was more worthwhile to create a simple, useful microformat (though they weren’t called microformats yet) which solves a specific problem, rather than trying to solve several problems at once.

More from Jennifer:

This format is only allowing us to annotate links between web pages, not links between people. It may be a socially knowledgeable network of webpages, but it is not a social network.

Says who? People already treat blogrolls (around which XFN was modeled) as a social network- people link to their friends and even treat certain relationships differently (it is common to put a “*” after people whom the author has met). XFN is merely a formalization of this emergent behavior.

More from Jennifer:

Perhaps that is ok – if the end consumer of this information is human, he or she can figure out that the person who owns one page knows/is friends with/has met the person who owns the linked page. If that were the intent, I may look more favorably on XFN. However, their website claims it as something that can be machine processed and aggregated. The site talks extensively about the potential for extracting social networks from XFN, but contains no details about how we actually identify who the people are.

I have several responses to this bit. First, this analysis reflects one of the design principles of microformats, they they’re designed for “humans first, machines second”.

Second, why can’t URLs be used to identify people? Homepage URLs are as meaningful as email addresses (or hashes of email addresses, as I believe FOAF uses), so why can’t they be used to identify people?

Third, at the time XFN was created, there was no useful, machine-parseable, web-friendly way to encode personally identifiable information in webpages. Today, we have a useful option- hCard. An <address> with an hCard is more than enough to identify details about a webpage’s author. Of course, for people more interested in encoding things in RDF could use XFN‘s rel=”me” property to link to their FOAF file.

So, I can link to my coworker, Tantek, with rel="co-worker" and any user agent can traverse that link and use the <address class="vcard"> to contact info, which is personally identifiable.

So, yes there are illusions of grandeur, but even though XFN isn’t taking over the world, it provides a very simple, understandable way to annotate social networks. We’ll use other formats to solve other problems.

Technorati Tags:

Class attributes are about more than styling

When people talk about microformats, they often have the same bit of confusion about the class attribute; it is often referred to as a “css class.”

I’m not criticizing anyone here, I just want to point out that there’s some confusing regarding the class attribute.

In the HTML 4 spec (from which XHTML is derived), classes are defined to have these purposes:

The class attribute, on the other hand, assigns one or more class names to an element; the element may be said to belong to these classes. A class name may be shared by several element instances. The class attribute has several roles in HTML:

  • As a style sheet selector (when an author wishes to assign style information to a set of elements).
  • For general purpose processing by user agents.

There’s a couple of points I’d like to highlight here:

First, notice that classes are multivalued, meaning that elements can have one or more, space-sepearted values.

Next, notice that class values are not just for styling. While this is certainly the most common and well-known use for class values, they are open “for general purpose processing by user agents,” which could easily include non-intrusive scipting and semantics. In fact, classes actually work best when treated as a mechanism for applying semantics, rather than just hooks for styling (see Tantek’s Class for Meaning, not for show).

For a more thorough primer on the use of class values, and how they relate to document structure, see Tantek‘s post, A Touch of Class, which though its 3 years old, is just as relevant today.

Technorati Tags:

Wiki Attack

We had a bit of trouble with our wiki this weekend- on Saturday, we recieved a spam attack from 164 different IP addresses, which deleted pretty much every page on our wiki.

We’ve restored the wiki and locked it down a bit (must be logged in to edit, only admins can create new accounts), but there may still be some inconsistencies or weirdness.

If anyone is working to combat said spammers, email me and I’ll send you the IP list.

Technorati Tags: