iTunes Solves the Nested Clause Dillema

So the first time I ever saw a crazy rule builder was in a desktop application at Sabre in 2001. They had been around longer than that obviously, but this was the first time I was ever befuddled by a screen that looked a lot like this:

All I could think was there must be a better way for letting normal people set up conditional rules. So we designed something easier, and when I moved to the world of Apple, I found that they stole my design. Just kidding, but I did feel reaffirmed by my early design attempts since they were really close to the ’smart’ mailbox/album/playlist design and the advanced search feature:

Now, to my delight, Apple has tackled the last remaining frontier of predicate editors- the nested clause. My design partner, Jessica, found this when trying to pull together a playlist for her birthday last week.

She needed something more complex than a simple AND or OR (which Apple eloquently rephrased as “matching all of these conditions” or “matching any of these conditions”). Like only play songs:
- from the ‘World’ genre
- if the album contains the term ‘Salsa’
— that are rated 4 or more stars
— or were added after Jan 1, 2008
— or are longer than 5 minutes

iTunes_Smart_Playlist_nested clause

It turns out that Cocoa has a visual editor for editing predicates, and if you hold the ‘+’ it will turn into an ellipses, which will add a clause- but that is way to sneaky for me. A permanent ellipses button is much easier to find and play with.

And there is an Ajax library out there supporting this too. They call it the Advanced Filter. Very nice interaction design, although it could benefit from a more sophisticated visual design. Demo

If the other major RIA frameworks will add this control, we will never have to see one of these again:

**As a side note- here is another post about the smarter playlist in iTunes with people responding to how they are actually using it. Good user research up for grabs.


  1. Alexander Davis Said,

    October 26, 2009 @ 2:17 pm

    Great post. Thanks for sharing. Only, it looks like the Demo link for the Smart Client Ajax RIA System points to the same URL as the AJAX Library link.

  2. Implementado reglas y excepciones – Cáscaras Said,

    December 28, 2009 @ 11:51 am

    [...] del programa, ojalá alguien nos pueda orientar en este sentido. De momento he encontrado un artículo muy interesante para implementar la interfaz desde la que se definirían las reglas y [...]

  3. Alek Davis Said,

    March 1, 2010 @ 11:37 am

    Great article. Just a note: there seems to be a typo in the title: “dilemma” is spelled with two m’s (unless it’s Spanish).

  4. Bill Scott Said,

    March 1, 2010 @ 4:47 pm

    Thanks for the catch!

  5. 43 Essential Controls for Web Applications | UX Booth Said,

    March 9, 2010 @ 7:44 am

    [...] [...]

  6. 43 ključne kontrole za web aplikacije | Adriatek Said,

    June 22, 2010 @ 1:42 am

    [...] Ovo je za svaku aplikaciju uvek predstavljalo prenatrpanost, medjutim ako dizajnirate naprednu analizu podataka, alate za pretragu i izveštavanje najverovatnije će vam ova opcija biti neophodna. SmartClient Ajax RIA sistem ima upravo tako nešto i očekuje da ostali frejmvorci uključe ovu kontrolu u svoj paket sada kada je iTunes predstavio sličnu opciju. [...]

  7. ClubPenguinCheats Said,

    August 6, 2010 @ 10:43 pm

    I just like this blog and I want to subscribe. So can you tell when your blog gets updated and what is the procedure to subscribe in details.

Trackback URL