I just had the next big idea in social-networking sites.
Okay, not really. But I did come up with a further elaboration on something I (and others) have discussed before about such sites.
The problem: the binary and reciprocal label of "friend" is a bad paradigm for modeling real-world relationships. (Scroll down to second half of that entry, under the heading "Social networking theory"; see also various people's comments on that entry.) Someone sends me a friend request, I have to decide whether I want to label them publicly as a friend; that just isn't a good fit for the ways in which people really interact and really see each other.
There are various sites that allow non-binary overlays on the binary system; for example, in Facebook you can specify how you know someone (by specifying any or all of nine possible options), and in LJ you can set up "friend groups" with varying levels of access.
But you still have to start by labeling them as a "friend."
And not only does that not model the real world well, it isn't very Web 2.0. Web 2.0, it seems to me, isn't just Web 1.0 + social; it's Web 1.0 + social + folksonomies (+ a certain style of graphic design + interactivity + a few more things).
So: why not apply the user-developed-classification idea to social networking sites?
Here's the core of my idea: I should be able to apply any labels I choose to any user of such a site, not just to people who I'm willing to label as a "friend."
In other words: Throw out the binary system entirely, and replace it with a del.icio.us-style system in which anyone can apply any set of labels/tags to anyone else.
That way, instead of trying to decide whether someone who once submitted a story to us is my "friend," I could label them as "SH submitter." Someone could use combinations of labels like "high school" and "friendly acquaintance" and "had big crush on them" to give a much clearer picture of how they do and/or don't know someone else.
I came up with this while lying in bed half-awake on Thursday morning. (I should add that it's not all that different in basic concept from some stuff I mentioned in the social-networking-sites entry I linked to up above.) Unfortunately, as I gradually came more awake, I realized that it wouldn't work.
There are a couple of big problems with it:
- It wouldn't produce an easily explored web of friends, the way social-networking sites do. If A labels B as "met at a party" and "don't know them," then it's pretty hard for the software to put together any sort of useful internal representation of the social graph.
- It wouldn't go viral, the way social-networking sites do. When you add a friend on Facebook, all your other friends see that you've added that person; they can go check them out, and if they know the person, they can add them as a friend too. Part of the reason that social-networking sites are so popular is the effect I mentioned in that other entry: people like being told that they're someone else's friend. Makes 'em feel good.
- There are at least three options for how public the labels would be, and none of them work well:
- Labels are completely private. Exacerbates the above issues; if there are no public connections between people, it's no longer really a social networking site.
- Labels are shown only to the person you label. Still not really much of a social networking site, and means you can't use labels that the other person would be unhappy with if you want to stay on friendly terms with them.
- Labels are completely public. Still has the above issues re exploring the graph and going viral, and means everyone knows what you think of everyone else (so there'd be social pressure to leave out labels and/or lie).
- The system is subject to abuse. People could use public labels that don't have anything to do with how they do or don't know each other, including derogatory ones: "annoying," "stupid," racial epithets, etc. A group of people could decide, for fun, to spam a random stranger with a particular label. And so on.
- The system doesn't solve the problem Cory D pointed out: that people will ask you to label them as friends, and will be upset if you decline.
Still, I think there are possibilities here. For example, the how-public-are-labels issue could potentially be resolved by techniques such as letting the labeler indicate which level of publicness each instance of each label has, and providing a set of common labels that people can use if they don't want to create their own. (If the only common label you provide is "friend," and you don't allow custom labels, then you've got today's social-networking sites.)
And you could do interesting things with possibly exposing labels if/when people use complementary labels for each other--for example, one of the publicness levels could be "reveal this to other person only if they apply this other set of labels to me," so if two people both label each other as friend or crush or spouse or whatever, they could see each other's labels. (I think Orkut does something similar to this, but less general, with crushes.)
Anyway, it seems clear that the original idea per se wouldn't work in the real world, and wouldn't resolve my issues with how "friends" systems work. But I'm posting this anyway, in case it sparks any further ideas that would be more practical and more useful.