I started writing last night about the Facebook solution and wanted to follow up on it in a more technical way. Most geeks will take a look at this and say, "Yeah, I know that", but there might be one or two surprises in here.
On the left, I decided to put my artistic skills1 to work. Behold a small part of the Social Media Mob. There are some things missing from their heads such as videos, checking into places and what-have-you, but the general stuff is in there. These particular stick figures were captured in the wild and released without being harmed - the point being that they do not roam in formation like this.
What glues these stick figures together are social networks. Things like Facebook, Twitter, Flickr, YouTube, JoeMama, etc. And all of these 'social networks' are services - they manage specific data that the user chooses to have managed. For sharing information, back in the days before these social networks (and a little after Orkut as I recall), RSS feeds sprang into being. Trackbacks were around for blogs and blogs were becoming simple enough that even people with nothing to write had blogs.
Atomizing Facebook Into Blogs
Social networks came along and aggregated a lot of this content under singular sites and pulled data in from other sites as well. Facebook did it so well that it went public for more than it was worth. Everyone but the investors were happy so Facebook decided to share the investor unhappiness with everyone else.
It is something that has bugged me for some time. When you look at Facebook, it's not all that complicated - at least on the surface. There's a lot of data involved which makes even simple database operations time and processor intensive - and intensive is an understatement. Still, in the broad strokes it isn't difficult to see that it's all streaming data that, depending on settings, can be seen or shared - hopefully in the way that the member of the social media mob wants. On Facebook, everyone basically gets their own site that feeds a datastream to those that they are connected to. The equivalent of multiple RSS feeds stream together to form a river. That, in and of itself, is not hard to do with blog software and content management systems. So that part is easy.
Deciding whose streams are shown is also easy. It's a matter of subscribing to RSS feeds. A 'friendship' on Facebook is basically a two-way RSS subscription. Facebook later allowed people to subscribe to such a feed without requiring one to show one's own RSS feed.
Sharing content is not hard. The tough part comes with privacy and what I call the matrix of intimacy.
Matrix of Intimacy
Some people say that there are degrees or levels of intimacy. This implies that there is some form of hierarchy- yet what people are intimate about varies. A matrix doesn't have that hierarchy. In fact, if we consider the matrix to have truth values for various things we share (Fuzzy logic) it becomes a lot easier to understand. For example, I might want everyone to read this blog entry but I might only want certain friends to read another. In the Real World, people might gather a group of specific friends for the latter. In business, they call a meeting that only involves the 'right' people. It's a matrix, not a hierarchy. To their credit, Google did do better at that with Google+ but the result was unwieldy.
There are some interesting ways a matrix of intimacy could be implemented. It could be according to tags as used on blog posts - where you might only want certain people to read things you write with the politics tag, as an example. Or the guysonly or girlsonly tags that may exist somewhere. Or even age ratings. Once you associate people with those tags, they get to subscribe to what you'll allow - and they may choose not to subscribe to all that you make available, so they would be able to choose from those tags as well. Suddenly, there's a better control over who sees what.
If you subscribe to someone who constantly posts about politics but every now and then posts something cool and interesting about technology, you can omit their posts about politics without losing their good posts on technology. This even gives someone better feedback on what their connections are interested in: if someone's blathering about politics and no one is reading it, they might consider refocusing their energies.
Of course, this implementation would need to be refined and it could very well be.
The Problem With Implementing The Matrix of Intimacy
Such implementations would require a handshake between multiple sites. With open source, it means that someone out there could break it and do bad things.
Months ago I had the idea for the Hedgehog Project, and the basis for that was privacy and the issue of intimacy, where there are varying levels of privacy dependent on the relationship. The idea was to use PGP and allow different sites to swap keys so that only the people intended to read something could. Unfortunately, beyond the obvious processing issues (encoding and decoding content on the fly at the server), there are a whole slew of legal issues related to PGP. Therefore, despite the increased ability of processors and cloud computing, the legalities make this dangerous ground.
Another way to handle this would be verifying the validity of the receiving software - but this would have to be done every time and would be problematic as well because it wouldn't be difficult to either hack some code around that or to simply intercept the communication.
Because of these issues related to privacy and the matrix of intimacy, it's not yet worthwhile to consider atomizing social networks in this way because, simply put, the systems can't be trusted. Yet. Maybe someone has some other solutions to the Matrix of Intimacy Implementation. Until then, social networks will be dependent on the companies that run them.
1Now you know why I prefer using a camera. My stick figures are awesome, of course, but I've learned that stick figures only get you so far. I failed Art in High School.