Johannes Ernst's Blog [XML]  [LID]

How does RSS-FOAF handle 'knows' relationships?

This question is asked so often I better blog about it. On the face of it, the dramatic simplification of FOAF that is RSS-FOAF leaves out one of FOAF's most important features, and that is the ability to say "Person B knows Person C". Yes, that's right, it doesn't do that. But read on, that is not a bug but a feature...

First: RSS-FOAF does support the less general case of Person A making statements about its own relationships to Person B and Person C: simply by listing them in their RSS-FOAF file. That makes sense because unless Person A (whose RSS-FOAF file it is) knows Person B in one way or another, they cannot actually talk about that Person B in any way (because they don't know of the existence of B). How well Person A knows Person B can then be expressed by Person A categorizing Person B in the groups that RSS-FOAF can express (e.g. "friend", "family", "obnoxious guy in the bar" or "read about in newspaper" etc.)

The reduced expressiveness of RSS-FOAF does not leave out any information, however. As an example, consider trying to determine the world's global social network, i.e. all relationships that all people have with each other. To do this within RSS-FOAF, one would start with any Person A's RSS-FOAF file, and determine the people they know according to their RSS-FOAF file. For each of the people listed, one would determine the URL of their RSS-FOAF file, and query that. By keeping this up, all the world's RSS-FOAF files (assuming it is ubiquitous) will represent all the information about social networks there is, so there is no loss of generality because RSS-FOAF does not allow Person A to make statements about the relationship between Person B and Person C.

I consider this "reduced expressiveness" of RSS-FOAF a feature, not a bug, because it removes redundancy and the potential of conflicts, and also increases privacy. It does this because only Person B gets to make statements about their relationship to Person C; Person A does not get to do that. The person best in a position to tell the world about Person B's relationship to Person C is Person B, not Person A. And chances are that if Person B does not want the world to know about their relationship to Person C, they don't want Person A to tell the world either.

So that's why there is no foaf:knows in RSS-FOAF, and why I think that is a good thing, not a bad thing. There is no loss in generality. Additionally, it makes RSS-FOAF much simpler again, which is a good thing from where I come from.

[permanent link]    Add to [del.icio.us