Bryce Benton just posted to rdfweb-dev pointing out the arrival of XFN (XHTML Friends Network) and in particular a document from CSS-guru Eric Meyer constrasting XFN and FOAF. Thought I’d post a few thoughts and (hopefully) constructive comments.
Firstly I’m impressed by it’s elegance: annotate a few links with an extra attribute with values from a controlled vocabulary and there you go. I imagine it’s going to spread pretty quickly through blog-land.
Secondly they’re tackling an issue head-on that FOAF has so far largely skirted by using a very vague sense of “knows”: describing interpersonal relationships. While they’ve set boundaries there are still a lot of different ways to assert relationships; it’ll be interesting to see how that plays out.
It’s on the topic of relationship typing that I’ll make my first correction to Meyer’s article. While strictly speaking he’s correct that FOAF …does not have a defined way to represent any relationship other than “friend”…which could potentially limit its uses in situations where the participants in a FOAF network may not all agree on what it means to be a “friend.”, FOAF doesn’t preclude defining more detailed relationships types. Indeed Eric Vitiello has done just that with the FOAF relationship module. It would be trivial to create an alternate module based on the XFN relationships or extend Eric Vitiello’s schema with the additional relationships. This is one area where FOAF and XFN can clearly benefit from each other.
The very general nature of the FOAF “knows” relationship is an explicit design decision. Defining a machine-processable format that encapsulates the intricacies of inter-personal relationships, however generally, isn’t a problem that the FOAF vocabulary was designed to solve. While foaf:knows allows the creation of social networks it also, and more importantly in my opinion, provides an RDF hyper-linking mechanism making it easier to aggregate metadata. Like XFN, FOAF is designed to be highly decentralised.
The main thing I find unusual about XFN is that there’s no “me” there. I can define my relationships to others but nothing more. A spider aggregating XFN data can only define “me” by the sum of the relationships that others have claimed about me. There’s no way for me to throw additional metadata into the mix. This is where FOAF clearly surpasses XFN, as Meyer acknowledges.
FOAF has potential in more areas than simple blog-rolling and that includes enabling applications to discover much richer forms of relationships. In XFN I’m directly involved in all of the relationships: I’ve met someone, someone is my friend, someone is my colleague, etc. Interesting data to be sure, but limited. Personally I’m interesting in enabling the discovery of “emergent” relationships: people with common interests, people attending the same events, etc. There’s an element of serendipity inherent in that which I think is lacking in XFN; it feels insular to me.
XFN assumes that the destination of the annotation link is a URL that uniquely identifies the person. Assigning URIs to people is still an open source of debate, which I won’t rehash here. Suffice to say that things aren’t that simple: people have multiple accounts and home pages and it can be tricky to disambiguate these. However for XFN’s target audience and applications this may well be a reasonable trade-off.
One source of confusion for me in Meyer’s contrast of XFN and FOAF was this comment: [FOAF] can also be included into a document written in another markup language as comments within that language, although this practice is not universally accepted. That’s certainly true but it’d be an odd way to go about mixing vocabularies. From an HTML page I’d probably use autodiscovery to associate it with a FOAF file. It’s also possible to say that “I Made This” using the foaf:maker element inside a meta tag. But I’d probably just mix FOAF with other vocabularies directly; there’s no need to hide it away in comments except in HTML where the content would be visible. But this is hardly a failing of FOAF.
The final point from Meyer’s article that I feel moved to comment on is the assertion that because one can make statements about another person using FOAF that [t]his opens the possibility of flawed personal information entering FOAF-space, and purging it with better information may be difficult or impossible.. This first assertion here is true and this concern has been previously raised by Shelley Powers. I discussed some of those issues in an earlier posting.
What is not true is that purging the system of flawed data is necessarily difficult or impossible. If FOAF applications store provenance of their data then it will be possible to build a web of trust. If they don’t then the situation is no worse than with XFN which also has no built-in notion of trust or signing.
To summarise: In this posting I’ve tried to provide some comments on XFN suggesting areas where it and FOAF can complement one another, whilst highlighting some minor inaccuracies in Meyer’s constrasting of the two technologies. My ultimate aim being to promote discussion. There’s a lot of interesting issues and challenges in this area, tackling on more than one front seems like a great idea to me.
6 thoughts on “XFN”
XFN vs. FOAF
Social networks are all the rage these days, Friendster has so much VC that they’ve probably got "a solid-gold trash can, burning cash 24/7." The biggest thing going for social networks right now is also the smallest: FOAF. Unlike other…
The Relationship Quagmire
I don’t like bandwagons, because I am a slowcoach and it’s usually pretty crowded by the time I get there….
Thanks for the great feedback on my short XFN/FOAF article. It’s greatly appreciated, and I’ll think over the possibility of an updated article taking your comments regarding the inaccuracies into account.
On more specific points:
We debated a ‘me’ value but eventually left it out for a variety of reasons, not least of which was to see if there was significant demand. In cases where we felt a value might be unused to a large degree, we cut it in order to keep the value set as small as possible. Since we intend to build upon XFN over time, we’re very interested in knowing what people want to see added.
The “people as URIs” dilemma is one we decided to punt on, reasoning that (as you observe) for our target audience it was a reasonable assumption that each person would have a primary blog URI that would be the target of a blogroll link. While XFN certainly has use outside blogrolls, they were a starting point for our thinking.
Your interest in uncovering “emergent relationships” is one I share, but not necessarily one that XFN is designed to solve, as you point out. It’s possible that some secondary emergent relationships could be uncovered; i.e., finding the people who are (or at least claim to be) friends of the writer responsible for ldodds.com, for example. One could then see what else those friends link to and talk about. Still, our design goal was to allow the expression of human-to-human relationships. Future evolution of XFN, or building something similar on top of XFN, could definitely help with the emergent-relationship problem.
Thanks again for your great feedback, and if you have any other insights, we’d love to hear them. Thanks especially for your comment regarding XFN’s elegance– that was something we strove very hard to preserve throughout the whole process, and it’s really satisfying to know that the effort paid off!
The latest on XFN
So XFN is the “In Thing” now, and a pretty cool thing at that. I am admittedly new to these aspects of the Web and blogging and all, but this stuff is pretty slick. The more I read, the more…
XFN : Just for Bad Geeks (french)
What about XFN you say?
Spent about :45 on the phone with Matt Mullenweg today.
Comments are closed.