Tuesday, April 27, 2010

The Facebook social graph is just the tip of the iceberg

There has been a lot of well deserved talk recently about the Facebook social graph. The social graph is very important because it helps establish the relationships between people and now between people and the world around them.

But the concept of the graph is much more important that the framework that Facebook has established. The concept of the graph is important because of what I call context. What we, as humans, really want is to be able to contextualize everything in our world. We define people by who they know, what they do, what they like, etc. But this concept of contexualizing goes much further. Every fact and every piece of information has a context.

Context is really nothing more than everything we know or can know about any given “thing” in the world. And any “thing” in the world can have a relationship to anything else. If you have a glass sitting on a table then the relationship between the glass and the table is “sitting on”. But they might also be related to a common person with the relationship “purchased by”.

If you think about our world, every object has an almost infinite amount of context, so if we went overboard with this it could quickly become uselessly broad. But there is an important middle ground here. It is critically important that we as individuals be able to capture the context that *we think* is important, and it is critically important that we be able to browse the context that those close to us think is important.

For example I may want to capture that a given person has a “married to” relationship to someone. For others that may or not be important. But I should be able to capture that. Its also important that I be able to explore all of the relationship that can be captured through the everyday software I use. Obviously lots of interesting relationships can be captured from email, calendars, documents, and I want to see *all* of those relationships when I need to.

The key to having useful context is being able to access it when you need it. For example, shouldnt you be able to see, whenever you look at a contact in your address book, all the emails you have received from that person, and when you have them in your calendar. For context, user interface is clearly is as important as storage and protocols.

Now its true that there are products that do small pieces of this for you like perhaps Xobni, or Gist. But my point is a larger one. What we really want is a system that provides context for *all* of the information objects that matter to us. This is not a niche problem. Existing tools are purpose built. They are finished recipes when what we really need are ingredients. I don't want any guard rails preventing me from capturing information and creating relationship between objects.

The point in all of this is that what we are constantly looking for is context. The social graph is just one relatively narrow facility for providing us that context. Part of the reason I am excited about this discussion around graphs and the emergence of graph databases is that I think we really need a universal platform for storing context. Facebook is but one use case of what is clearly a *much* larger opportunity.


  1. Hank --

    There are many things to be said about the Facebook announcements last week. If they pull it off I think it's difficult to overestimate the impact it will have on the web.

    But purely from the particular bias that I believe you and I share (that of a fondness of graph databases), two things stand out:

    1) Facebook is popularizing the notion of graphs amongst the wider tech community. To this day, I frequently have to explain to people that the word *graph* in graph databases does not refer to Excel charts or video game graphics. It's a mathematical graph of nodes and relationships. Now, Zuck & crew probably said the word "graph" one *hundred* times in that keynote, and never even offered an explanation. For them, it's a natural part of the modern developer's vocabulary. That's awesome for a graph database evangelist like /me.

    2) They're expanding the scope of the social graph from people<->people to pretty much *anything of value on the web*. That's a very enlightening evolution and it emphasizes how powerful the concept of a generic graph really is. I know that when I talk about graph databases, a lot of people assume that they're only good for the social graph. Well, nothing could be further from the truth! Recently I've started mixing up my examples a lot (for example I used social graph + geo in my interview with Scoble). The jury is still out on whether that drives the point home. But either way, Facebook's Open Graph vision is an important milestone in bringing a broader awareness of the power and wide applicability of graphs.

    Emil Eifrem

  2. Emil,

    Thanks for your comment. As I see it, the big challenge around a generic graph is the user experience. There is currently no compelling user experience around the idea of a more broadly defined graph. For more on this subject, stay tuned!


  3. What?

    http://api.neo4j.org is not "user experience" enough for you?

    Oh, I see what you mean.


  4. Hank - Great post dude! I think it's going to end up being different tools, for different fools man. The relationships one individual, or group individuals has with people, things, companies, etc. can be different (or more or less important) than another's.

    As we dig deeper down the iceberg and it gets fatter, there will be more opportunities. In the meantime, there is incredible power in the social graph if one understands it!

    It's all about data!

  5. Really interesting your comments on the context and the relationship between objects. I think the graphs are an interesting concept to be studied and discussed. I agre with Emil that not everybody knows what a Graph is but I think understanding this concept will help a lot of people to really take advantage of their social networks. The real purpose of social networking sites would be easier to understand by most of their users.

  6. Sorry if I plug my own shit too much, but since Blogger doesn't support trackbacks: I elaborated on my thinking around Facebook, the age of graphs and databases over on my blog (even including a small link back to this post :).


  7. Great post.

    Graph is the way we gather information/context about objects. Our brain is a specialized graph. That's why it's such a close metaphor when though about on a low level.

    I think it will turn out that somewhere in our brain (our IQ/language/consciousness) there is a small graph database engine.

    Maybe Emil is an alien and has modified our ancestors' brains with this thing inside and now tries to put it in our computers under the name neo4j :)

  8. That is sooooo elegant the way you put this problem. Thank you!


Note: Only a member of this blog may post a comment.