Advanced tag search in Flickr

While helping a friend search for photos the other day, I realized that he was unlikely to discover two of Flickr's most powerful features. One is advanced tag search. You can produce quite useful result sets by combining tags. The other underutilized feature is slideshows. Flickr's Flash-based slideshow widget is a general-purpose viewer of photo sets. From almost everywhere in the Flickr interface, including the advanced tag search page, you can jump into a slideshow to explore a photo set. But in order to search again, you have to leave the slideshow, go back to search, produce a new set, and reenter the slideshow.

I wanted a more interactive way to explore the results of advanced tag search. So I wrote a Greasemonkey script that adds a feature I'm calling tagshow. All it does, really, is combine two existing features -- advanced tag search and the slideshow -- into a single experience. I made a brief silent screencast to show how it works.

For me, anyway, this connection between advanced query and results visualization makes the search experience a lot more productive. Rapid visualization of the photo sets that match combinations of tags could also make tagging itself more productive. But here we run into an obstacle that I can't fix with Greasemonkey, at least not easily or elegantly. The slideshow's detail view links to a photo's page, but doesn't report tags. So, as shown in the screencast, my discovery of the tag beardediris, while refining a flower query, required a context switch.

Surfacing the tags directly in the slideshow would eliminate that context switch. It's interesting to think about how that might be done. In the old days, it'd be a feature request -- as, of course, would the tagshow feature itself.

In the new era of do-it-yourself user-interface composition, we expect to work with interfaces. And of course, like many services, Flickr offers a set of data-oriented programming interfaces. But in this case, what's wanted is more like a behavior-oriented interface. I'd like to be able to control the behavior of the slideshow component and, if it had an option to turn on tag display, I'd like to be able to invoke that option.

I can think of several ways this could happen. There's been a lot of great work recently on two-way communication between JavaScript and Flash. Alternatively, an intermediary like Greasemonkey might be able to alter the parameters fed into a Flash component embedded in a page.

How do we arrange for recomposition of user interfaces to be first possible, and then sanely manageable? Along with recomposition of services, this will be an emerging challenge.

PS: Here are some sample queries:

baby bathtimes, happy and unhappy

andy goldsworthy, stormking and eggs

rock balancing at quabbin reservoir, walpa gorge, yosemite

Note that although you can link directly to these slideshows, the OR'd terms get smashed together when you go to the search page. That means you have to recreate your query from scratch. I'd forgotten about that, but it's probably another reason why I wrote the Greasemonkey script. When enabled, the script preserves the query for editing and reuse.

Former URL: