(2011)
But when you start talking about building a social graph that transcends any specific implementation, you quickly find yourself in the weeds. Is accepting someone’s invitation on LinkedIn the same kind of connection as mutually following them on Twitter? Can we define some generic connections like ‘fan of’ or ‘follower’ and re-use them for multiple sites? Does it matter that you can see who your followers are on site X but not on site Y?
One way to solve this comparison problem is with standards. Before pooling your data in the social graph, you first map it to a common vocabulary. Google, for example, uses XFN as part of their Social Graph API. This defines a set of about twenty allowed relationships. (Facebook has a much more austere set: close_friends, acquaintances, restricted, and the weaselly user_created).
But these common relationships turn out to be kind of slippery. To use XFN as my example, how do I decide if my cubicle mate is a friend, acquaintance or just a contact? And if I call him my friend, should I interpret that in the northern California sense, or in some kind of universal sense of friendship?
In the old country, for example, we have two kinds of ‘friendship’ (distinguished by whether you address one another with the informal pronoun) and going from one status to the other is a pretty big deal; you have to drink a toast with your arms all in a pretzel and it’s considered a huge faux pas to suggest it before both people feel ready. But at least it’s not ambiguous!
And of course sex complicates things even more. Will it get me in hot water to have a crush on someone but have a different person as my muse? Does spouse imply sweetheart, or do I have to explicilty declare that (perhaps on our 20th anniversary)? And should restrainingOrder be an edge or a node in this data model?
There’s also the matter of things that XFN doesn’t allow you to describe. There’s nonemesis or rival, since the standards writers wanted to exclude negativity. The gender-dependent second e on fiancé(e) panicked the spec writers, so they left that relationship out. Neither will they allow you to declare an ex-spouse or an ex-colleague.
And then there’s the question of how to describe the more complicated relationships that human beings have. Maybe my friend Bill is a little abrasive if he starts drinking, but wonderful with kids – how do I mark that? Dawn and I go out sometimes to kvetch over coffee, but I can’t really tell if she and I would stay friends if we didn’t work together. I’d like to be better friends with Pat. Alex is my AA sponsor. Just how many kinds of edges are in this thing?
And speaking of booze, how come there’s a field for declaring I’m an alcoholic (opensocial.Enum.Drinker.HEAVILY) but no way to tell people I smoke pot? Why are the only genders male and female? Have the people who designed this protocol really never made the twenty mile drive to San Francisco?
What happens to dead people in the social graph? Facebook keeps profiles around for a while in memoriam, so we probably shouldn’t just purge dead contacts from the social graph immediately. But we certainly don’t want them haunting us on LinkedIn – maybe there should be a second, Elysian social graph where we can put those nodes to await us?
You can call this nitpicking, but this stuff matters! This is supposed to be a canonical representation of human relationships. But it only takes five minutes of reading the existing standards to see that they’re completely inadequate.
Here the Ghost of Abstractions Past materializes in a flurry of angle brackets, and says in a sepulchral whisper:
“How about we let people define arbitrary relationships between nodes…”
https://blog.pinboard.in/2011/11/the_social_graph_is_neither/