<D <M <Y
Y> M> D>

[Comments] (2) Dentist 2.0: Teeth still suck, and my dentist is very young. I'm used to dentists being really old guys and middle-aged women, but this guy is only a couple years older than me. You know there are now people in Congress younger than me? Probably. Anyway, he's got these glasses and this haircut and it's like having Ira Glass as your dentist. "Act One: Novocaine." I'm assuming dentistry is his day job until his indie rock band gets signed.

Pseudo-update: I checked and there's no one in Congress younger than me, but it's getting there. It's almost like I'm getting older as time passes.

[Comments] (4) Human Resources: Scott and I can't comment on each other's weblogs. In the case of my weblog it's because comments are shut down after a week. Anyway, Scott responds to "You're All Resources!":

I guess my struggle with it is that looking at /recent doesn’t make it obvious that’s its recent bookmarks whereas something like /bookmarks/recent or /bookmarks?fromDate=2007-06-01 is more obvious that its a list of bookmarks.

That's a fair point. /bookmarks/recent (or just /bookmarks) would make it more clear to a human what "recent" things exactly are at the other end of the URI. I never considered that because Rails doesn't encourage that kind of thinking, but it's a better URI choice. But we're now in a side issue because what a URI looks like has no formal bearing on what resource it identifies. The URI could be /4350/9885677.4169 and it would still be a resource that gives you recent bookmarks when you GET it.

This is probably not something you were wondering, but I'll address it briefly: how do you make it clear to a computer that there's a list of recent bookmarks at the other end of the URI? There are a number of ways. At one end of the spectrum you can hard-code this information into every client. At the other end you can do some magic Semantic Web thing where terms like "bookmark" and "recent" are given meaning within some ontology that a general client understands. In between you have clients that are programmed to understand certain media types or microformats, and clients that are programmed to understand certain hypermedia formats that contain semantic cues.

In none of these cases does the computer "understand" the resource the way a human does. The goal is to reduce the space between the human's desire "I want to do x to recent bookmarks" and the HTTP request the client ends up making. One one end of the spectrum, the user has to hard-code their desire into the client. On the other, the client can take "x", "recent", and "bookmarks", plug them into the ontology, and figure out which request to make.


Unless otherwise noted, all content licensed by Leonard Richardson
under a Creative Commons License.