Sorry for the cryptic title, but I think you guys can probably figure it out. Last Monday I had a nice time at the Silicon Valley Semantic Technology (SVST) Group Meetup hosted by Facebook, where I got to learn a little bit about Facebook's Open Graph "protocol". I put "protocol" in quotes because Facebook's spin on this idea isn't so much as a protocol as it is an extended definition of HTML meta tag content in your web pages. Open Graph is simply a web of nodes (people, movies, etc. ) interconnected by predicate edges ("likes", "checked into", etc) that can be defined by this metadata content. Should sound very familiar to those of you familar with RDF graphs.
On the surface, the idea of using this "protocol" to create an interconnected web of things that can be "liked", or "attended" or "checked into" seems reasonable. Unfortunately, I really thing Facebook rushed this product out the door and dropped the ball in a few key areas.
The first deficiency by far was the lack of ability to query the Open Graph. Although this was my first SVST event, my take on things is that the bulk of the attendees are consumers, rather than producers, of semantic content. When we got to the Q&A part of the meeting, my hand shot up, but came back down when the attendee who was picked asked my question: "what about querying?" Facebook had no good answer, however, and it seemed to me that this functionality will be far off into the future. The only current real tangible output of OpenGraph seems to be the enhanced like button that shows how many people and which friends of yours like the web page that you are visiting, and to provide more content for your Facebook news stream. Facebook - please give us the ability to:
- Query for nodes on the graph with specific criteria, e.g. "tell me the movie liked by the most people in the 95124 zip code in the last 24 hours"
- Query for people's interests (for those who opt-in to making those interests public)
- Provide recommendations from within your graph
The second deficiency I noted was the lack of a "same-as" functionality in the same vein as the OWL:sameAs property. So if I "like" the Avatar node defined by IMDB, and you "like" the Avatar node defined by Rotten Tomatoes, there is no relationship between those two edges in the Graph. The guys at Facebook promised that they're working on this problem, but couldn't provide a timeline.
Finally, I don't think that Facebook did a very good job at separating the concept of a web page from a block of content on a web page. Take this blog for example -- the blog as a whole should be a node, and individual posts should be nodes, and comments on posts should be nodes. And I should be able to like (or dislike) any of the above.
I came away from the meeting feeling like Facebook had put a bit too much value in their design goal of making it super-easy to create OpenGraph nodes and, in doing so, both reinvented the wheel and made it less useful. The Semantic community has done lots of great work in defining standards for this kind of thing already -- let's put the brainpower at Facebook to work on using these standards to access the wealth of data and data consumers that exists under the Facebook umbrella!
No comments:
Post a Comment