Recovered from the Wayback Machine.
Dan Brickley just came out with a why there’s a foaf:knows but not a foaf:friend. The better explanation occurs in the comments:
Because the concepts of ‘knowing’, ‘knowing well’, ‘friend’ etc. are both slippery and because people vary (personality, use of language etc.) in how they’re comfortable using those concepts, you get into situations such as X’s foaf file says that X has friends Y, and Z whereas Y’s foaf says X is ‘just’ a knows or knowsWell (knowsWell being particularly awkward as it suggests significant familiarity without affection, ie. no “would like to know better” wiggleroom). Z’s foaf might list neither as friends, and risk being taken (despite ommission not implying negation in RDF or FOAF) as suggesting that Z doesn’t consider either X or Y to be friends. Although Z might protest that the absence of a claim from a FOAF file is consistent with it still being true, X and Y could fairly counter-protest that Z could have made the effort to mention them since they made the effort to mention him/her. And so on…
You see similar economies of expected reciprocation in closed-world systems like Friendster or LinkedIn, especially where they offer endorsement and commenting facilities. Not something to blunder into with FOAF without some careful thought, so we retreated to the safer ground of ‘foaf:knows’.
Glad, am I, that Dan came out with this.