found drama

get oblique

programming serendipity

by Rob Friesel

A comment made by False45th’s Flatlander, in addition to some other recent ruminations had me thinking lately about the coming(?) era of programmatic serendipity in our socially aware apps. This is something I keep hearing about in the context of Web 2.0 esp. w/r/t/ apps like Flickr, del.icio.us, and even /shudder/ things like Friendster and MySpace.

What’s cool here is the way that the participating community marks things up, creating these powerful opportunities for other participants to explore and discover exciting new content and perhaps even make some connections while they’re at it. The possibilities are only a hair shy of limitless in all directions of intriguing, electrifying, and terrifying. Now, mesh this in with commerce (that ol’ familiar dialogue) and we enter into some new facets of this gem, many of which are unexplored.

Taking Amazon as an example, there’s certainly one place to start. Amazon has no tagging system per se but they’ve got some robust customer data with which to make some calculated inferences. If you’ve ever browsed through their recommendations though, it can be pretty hit-or-miss. (On my visit just now, I noted 5 of 30 that I’d be reluctant to examine and another 6 that I’d previously flagged as “I own this” or “not interested.) On the other hand, each item is peppered with user reviews (with varying degrees of coherence), links to (usually) relevant lists of like items, and “In Addition To…” and “Instead of…” recommendations. All of that is useful but unfortunately feels like it lacks the simple elegance of a tagging system a la Flickr.

How do you make it all fit together and work?

How do you draw on a large body of customer data for your calculations and still allow for the kind of elegant serendipity that you see in Flickr-like apps?

Let’s take iTunes as the prototype app:

  • iTunes itself is already gathering tons of data about your music library. As it stands though, it’s a relatively closed system. You’ve got your playcounts and your ratings and all that other find meta-data but it’s not doing much for anyone else.
  • Create a feedback loop. By default of course, feedback is turned off; you’d have to opt in to the system. But why not…? They’re gathering consumer data on you already if you’re purchasing music downloads. Instead of requiring you to log in, write your review, rate the album (the album!?!?), and/or post some weak iMix, their system does the work. But we don’t stop there.
  • Cross reference the crap out of everything. With all that library data, you can build out better relationships between tracks. Who’s rating what tracks on which album what way? What else are they listening to? How have they changed the genre meta-data? How did they group it? What playlists have they dropped it in (and what else is in thay playlist)? Do all that with math.
  • Then enter the human element of the equation. Face it, browsing the iTMS right now is tedious and frustrating. Browse by album or artist or whatever, it’s hard to get a bead on how it fits with what you already like. Why not tag them? With the math done (above) the system ought to be able to make it’s pointed recommendations but the serendipity factor doesn’t enter in without the human intervention. Without clicking through in what are otherwise seemingly random ways.

The idea is half-baked, I’ll be the first to admit that. And it also involves the willingness to surrender some of this information that you might otherwise think of as “yours” or “private”. And it would also involve some serious computing power and narsty statwerks. But hell, it sounded good at the time.

currently playing: Underworld “Juanita/Kiteless/To Dream Of Love”

About Rob Friesel

Software engineer by day. Science fiction writer by night. Weekend homebrewer, beer educator at Black Flannel, and Certified Cicerone. Author of The PhantomJS Cookbook and a short story in Please Do Not Remove. View all posts by Rob Friesel →

3 Responses to programming serendipity

Leave a Reply

Your email address will not be published. Required fields are marked *

*

*