There has been a lot of buzz and general “yeah, what he said!” following Pinboard’s Maciej Ceglowski’s post “The Social Graph is Neither” inspiring posts more directly in my particular field, such as Audrey Watters’ “Is there an ‘Education Graph’?“. “The Social Graph is Neither” is a fantastic read and both raise extremely good points, but something was nagging at me the whole time I read Ceglowski’s post and finally struck me when I was reading Watters’.

The problems that they raise do not point to a failure of the graph (be it social or educational), but rather the expectation that the graph they are looking at is supposed to be comprehensive.

When you start digging into RDF (which is related by virtue of being graph based), one of the things you have to learn to accept is the open world assumption. It is an extremely difficult leap for some people to make, this notion that you cannot know everything about a particular resource, that there could always be another fact around the corner, but it’s also a very freeing one. When I model the relationships between resources, I have to limit the number of the edges between the nodes for a variety of reasons: scope, scale, limits of my knowledge, limits of my domain, limits of my requirements, etc. The insistence on modeling all aspects of the graph (take Ceglowski’s XFN example, and its omission of “negative” properties) is bound to fail. There are simply an infinite number of edges to that graph. You supply the edges you need for your case.

But this is exactly why, in RDF (and XFN, and, etc.), we have vocabularies: it gives us the context to narrow the lens to specific problem domains. That your use case (how do I differentiate my ‘teacher’ from the person who actually ‘taught’ me) doesn’t mesh unambiguously with the set of properties you’re trying to use doesn’t mean the original vocabulary is flawed, it means you need to define new properties. The graph still applies, you’re just looking at the wrong edges. If you want to model the relationship to your ex-wife, make a vocabulary that defines these more complicated relationships, but don’t hold up XFN as an example of how the graph doesn’t exist. It’s not a part of XFN (and likely never will be), but its absence doesn’t mean the relationship does not or cannot exist. It just doesn’t exist in the view of the graph that you’re looking at.

Admittedly, new vocabularies aren’t easy (they need to be well thought out, adoption is non-trivial, etc.), but that’s mostly because describing the universe in an interoperable way is mind-boggingly complex and likely biased by particular environments, needs and worldviews.

All this said, I actually completely agree with what both Ceglowski and Watters are saying: relationships are hard to model and extremely contextual, possibly even within the same domain. But just because somebody else’s graph isn’t modeled to your satisfaction, it doesn’t mean that they (or graph-based models in general) are wrong. It just means it’s time for you to start building.