One of my ongoing frustrations with modern, consumer-facing information organization and retrieval systems is the way in which functionality is often sacrificed in the name of simplicity.
Full functionality under the rubric of simplicity is a laudable goal, and I would agree that this is where we all eventually want to end up in the information systems, interfaces and algorithms that we are designing. Simplicity without full functionality, but with alternative complex interfaces for an advanced user to specify greater functionality is a satisfactory stepping stone along the path to this goal. But simplicity with obstructed or stunted functionality, with no possibility for the user to improve that functionality, is too often what we end up with.
Case in point: Apple’s iTunes/iPod. I use my iPod not only to listen to music, but to listen to a series of podcasts: Coverville, KQED’s Forum, IT Conversations, This American Life, NPR’s Planet Money, et cetera. Most of the time I listen to these podcasts while commuting to work. Therefore, for my normal work commute I set up a Smart Playlist. Because I don’ t like to flick through menus while I am driving, I combine all the podcasts into a single Smart Playlist instead of having a half-dozen different playlists. I set it to match any new episodes from the aforementioned podcasts. This is easily accomplished using the iTunes’ “Match Any” interface, essentially Boolean-OR:
- PodcastA OR PodcastB OR … OR PodcastN #contains all the episodes from Podcasts A through N
However, once a week my wife drive together for an hour to visit family. In that time, we listen to some episodes from these podcasts together. Specifically, the episodes that my wife enjoys are about gardening, renewable energy, sustainable agriculture, and so forth. These episodes are not limited to any one podcast series; they are scattered across multiple series. I often have to make sure, during the week, that I set those episodes aside so that my wife and I can listen to them together. So the Smart Playlist above doesn’t actually work right; I do not want every single episode from all podcasts to fit into this Smart Playlist. I want to be able to set some episodes aside, so that I don’t accidentally cycle through them (and mark them as “viewed” and thus removable from the iPod upon next iTunes sync) during the week. iTunes does not allow me to manually drag/remove single episodes from the Smart Playlist. But I’ve found another way around it: I can use Ratings as a discriminator. All the episodes that I want to listen to with my wife I mark with 5 stars. All the episodes that I will listen to on my own I mark with no stars. Then, I can set up a set of smart playlists of the following form, using iTunes “Match All” interface (Boolean AND):
- PodcastA AND Rating=0 #contains all the episodes from Podcast A that I will listen to alone
- PodcastA AND Rating=5 #contains all the episodes from Podcast A that I will listen to with my wife
- PodcastB AND Rating=0 #contains all the episodes from Podcast B that I will listen to alone
- PodcastB AND Rating=5 #contains all the episodes from Podcast B that I will listen to with my wife
- …
- PodcastN AND Rating=0 #contains all the episodes from Podcast N that I will listen to alone
- PodcastN AND Rating=5 #contains all the episodes from Podcast N that I will listen to with my wife
While better, this workaround is still not exactly what I would like to have happen. See, now I have separate smart playlists for each podcast A, B, C, etc. There is a combinatorial explosion, with too many menus to flick through while driving. What I would rather do is something like this:
- ((PodcastA OR PodcastB OR … OR PodcastN) AND Rating=0) #contains all the episodes from Podcasts A through N, that I will listen to alone
- ((PodcastA OR PodcastB OR … OR PodcastN) AND Rating=5) #contains all the episodes from Podcasts A through N, that I will listen to with my wife
iTunes does not allow this functionality. There is absolutely no way of specifying a nested Boolean expression so that I can match a rating conjunction of podcast disjunctions. iTunes only lets me either “Match All” (flat conjunction) or “Match Any” (flat disjunction).
It is clear why iTunes does not expose this functionality in the naive interface: Most average users are confused by Boolean expressions, especially those involving nested parentheses or any sort of operator precedence. So I fully appreciate not wanting to overwhelm the user. But where iTunes falls short is that there is also no way of switching to “advanced” options, or “Smarter” Playlists. There is no attempt whatsoever to help the user formulate more complex playlist options, via for example graphical Boolean operator interfaces (see Chapter 10.5.4 of Marti Hearst’s Modern Information Retrieval book).
In short, the iTunes user is left with crippled functionality, with no way of specifying the desired Smart Playlist. By valuing Simplicity more than Functionality, Apple has crippled the information consumer’s ability to manage his or her digital life.
you can achieve boolean nesting by pointing to a smart playlist from another smart playlist:
make 1 smart playlist for your podcasts: “Podcasts” (PodcastA or PodcastB or … )
then make two other smart playlists:
“for my wife”: (Playlist=Podcasts AND Rating=5)
“for me” : (Playlist=Podcasts AND Rating=0)
I completely agree that this should be facilitated in the interface, but this is a workaround.
Excellent, thanks for the pointer, Jon! I half suspected that someone was going blow a hole in my rant, by showing me how I could actually do this in iTunes. But that’s a good thing 🙂
Ok, I tried your suggestion of creating an intermediate playlist, and then Boolean-ANDing my way into two separate forks (Rating=5, Rating=0). Really does work, thanks again! But now in order for this to work, the intermediate playlist has to remain on my iPod, rather than only on my iTunes library. So it ends up cluttering my playlist scrolling process. Inelegant.
I’ll have to name the dummy/placeholder list “zzz” or something like that, to get it mostly out of the way.
Still, I think iTunes should make it much easier for me to organize my information than this kludge.
Completely agree that its inelegant, but their current interface is understandable, and nested boolean operators usually aren’t. At least with this cascaded playlist solution you can see intermediate results & debug each stage.
I like the “filter/flow” interface from the chapter you linked to. Using Apple as an example again, Automator seems to do this a little, but without the branching & merging (last I checked anyway… been a while since I played around with it).
You certainly throw words like “tyranny” and “crippled” around quite loosely. You start out acting like you understand that capability and simplicity are trade-offs, but then you can’t do what you want so the iTunes programmers are apparently monsters. Have you ever written an application used by tens or hundreds of millions of people, including grandpas, kids, etc.? It’s a lot easier to write a blog post than actually find that balance.
It’s also possible for a motivated individual to simply write a program (in AppleScript, Python, or Javascript using OSA) that generates a playlist, so even if there wasn’t the workaround mentioned above, you could still do exactly what you want.
But I suspect such a program would be of limited interest since your problem is surely more complex than the needs of the VAST majority of iTunes users.
Nope, I’ve never written an application used by any number of millions of people. So calling me to task on that is completely fair. But let me say, that’s the point I am speaking to. I have a real problem with the belief that we should be trying our darndest to write curtailed-functionality applications that work for hundreds of millions of people. Why? Because that leads to a lowest-common-denominator solution that, in the end, lowers the quality for everyone.
I apologize if it sounds like I am only picking on Apple; I have the same problem with other information interaction interfaces that try to be everything to everyone, and therefore choose simplicity over the needs of their users. See, for example, my discussion of Google a month ago (here and here). And for that matter, I have a problem with any information provider that tries too hard to appeal to too many users, and lets simplicity dominate in order to do so. Let’s say, for example, Fox News. Fox paints a very simple picture with the way that it reports the news, and it therefore appeals to a great number of people (from grandpas to kids), and is wildly successful. It garners lots of “pageviews”. However, by reducing the real complexity of the world to such simplistic terms, it ends up under-informing all those same hundreds of millions of people. And an uninformed citizenry devalues our democracy as a whole. Now, I’m not so hyperbolistic to say that Fox News and iTunes playlisting are at the same level of social importance. Of course not. I am only saying that there is a fundamental abstract similarity in the attitudes that inform the design process.
I never said iTunes programmers were monsters, nor even (I believe) implied it. I did say: I fully appreciate not wanting to overwhelm the user. But where iTunes falls short is that there is also no way of switching to “advanced” options, or “Smarter” Playlists. And yes, only providing the user with flat Boolean ANDs or ORs, with no ability to nest, is a “crippling” of the general expressive capability of the Boolean logical formalism. I also used the words “obstructed” and “stunted” earlier in the post. Should I have stuck with those, instead? That is, I would like to ask if what has put you off is my terminology, or the underlying ideas?
And as far as writing an Applescript program that OR-ed all my podcasts together, and then AND-ed them out again into two separate, ratings-based partitions.. yes I agree that particular script would have very limited appeal.
However, I completely disagree with you that the masses (grandpas, parents, kids) don’t want to be able to create more advanced playlists, in general. For example, imagine a kid that wants to hear all the upbeat kids songs in his/her collection. That kid would want to create a playlist of the form ((artist=”sesame street” OR artist=”schoolhouse rock” OR artist=”electric company”) AND beatsPerMinute > 150). Or a husband creating a romantic playlist for his wife of the form ((artist=”al green” OR artist=”barry white” OR artist=”marvin gaye”) AND beatsPerMinute < 110) So whether or not the kid or whoever could easily create such a playlist, there is definitely a need and desire to be able to create more expressive playlists than iTunes gives one the capability to do. So this is why I am completely baffled as to why there isn't even at attempt in iTunes to provide an advanced option, perhaps by doing something graphical as Marti Hearst suggests. There are for sure more people that just myself that need the more expressive capabilities of a richer Boolean formalism.
Matt, you’re probably not still reading this, but check out the following interface used by Copernic desktop search:
http://www.copernic.com/images/mediakit/screenshots/agent-big/x-ad-find-in-results-eng.gif
As you can see, it has the basic “match all” and “match any” functionality, similar to iTunes. But then it also has an advanced option that says “match the following boolean query”. That option does not clutter the interface, but does allow an advanced user to formulate something more sophisticated.
That’s all I’m asking for. An additional 1-line input box in iTunes, that will allow me to craft something more useful.
Pingback: Information Retrieval Gupf » Semantic Technology Search Panel
Pingback: Information Retrieval Gupf » Music Search: Exploration or Lookup?
Pingback: Information Retrieval Gupf » The Tyranny of Simplicity, Redux
Pingback: Information Retrieval Gupf » Simplicity: Sparsity or Storytelling?