I found Ryan Tomayko's How I Explained REST to My Wife very clever and amusing, but one bit left me begging for more imagination.
Ryan: Actually, representations is one of these things that doesn't get used a lot. In most cases, a resource has only a single representation. But we're hoping that representations will be used more in the future because there's a bunch of new formats popping up all over the place.
Wife: Like what?
Ryan: Hmm. Well, there's this concept that people are calling Web Services. It means a lot of different things to a lot of different people but the basic concept is that machines could use the web just like people do.
Ay-ay-ay. I don't know any non-techie who would be satisfied with such an explanation. And I think the idea of alternative representations is one of the least geeky ideas Ryan is trying to communicate to his wife, so it seems a slam-dunk for a more interesting example.
My wife knows that if she goes to http://tvguide.com
on her computer
she gets a listing of the TV channels in a table on the Web page. What
if our TV suddenly gained Web capabilities? When you went to
http://tvguide.com
on the TV you should probably get the live feed for
the TV Guide preview channel, the one with a scrolling list on what's on
each channel of the boob tube. Of course, since it's a Web-stylie TV,
forget channel numbers. Each item in the list should be a link you can
just actuate with your remote. Click to jump to, say
http://www.vh1.com/channels/vh1_soul/channel.jhtml
when you saw that
the new John Legend video was playing. And you'd get the live channel
there, since it's a Web-stylie TV, rather than the Web page bragging
about the video. So there you go: live TV as an alternative
representation of the resource. And you know that wifey's going to
get any example that includes John Legend (OK, for some wives substitute
Justin Timberlake).
If your phone were a web-stylie phone, you could go to
http://tvguide.com
(better have that on speed dial) and have some
robot voice reciting the "what's on now" for the channels. And so the
audio message is an alternative representation of the resource. Oh, and
going a bit Jetsons with the whole thing, if the TV Guide site started
throwing up 404s on your web-stylie TV or phone, and you wanted to go to
the office to give them a piece of your mind in person, you could hail a
web-stylie taxi cab and tell it http://tvguide.com
and, you guessed
it, you'll be whisked to headquarters. But pay attention, now, the
representation of the resource is probably not the destination building,
in this case, but rather the street address or directions to that
location as retrieved from the URL http://tvguide.com
in the
web-stylie cab. Or something like that.
Now we're talking alternative representations. Rather than
remembering the channel number, hot-line phone number and physical
location for TV Guide, it's all available web-style from the URL
http://tvguide.com
. Of course, as long anyone needs to deal with
"aitch-tee-tee-pee-colon-slash-slashes" ain't no way this scenario is
playing out in real life. But then again neither is Ryan's example--Web
services. Oooooh!