Tuesday, October 10, 2006

If we can not assign a URI to an idea, we must pass over it in silence

Ideas DO Have URIs [via Mark Baker].
With apologies to LVW.

All joking aside, there is an important point here. Analytic philosophy has long had a fascination with the nouns of human languages. Given a noun, it is a very short hop to a URI. But what about all the other things that make up language? Are they not ideas too? Verbs are the obvious next component to look at. In RESTian design, a fixed set of verbs is used. In order to achieve the required outcomes, an infinite universe of nouns in the application is manipulated so that the fixed set of verbs available can achieve the required outcomes.

One thinks of J. J. Austin's "Doing Things with Words".

If I want to "pronounce you man and wife" I can have a URI of the form [person/married_to] and use PUT or I can have an object of the form [person] and invoke the marry() or the set_married() method.

One approach manipulates noun-space to meet a linguistic need, the other manipulates verb-space to meet a linguistic need. As language-wielding entities, the latter feels intuitive when the idea we want to express maps easily onto the verbs we have in our host language. The trouble starts when you step beyond performative ideas that have atomic, verbal representations in your host language.

As a RESTian, I would argue that natural language has a big lesson to teach us. You can do a heck of a lot - without inventing anything new in the language - given a small let of verbs and an open-ended space in which to craft your nouns.

It is how natural languages work after all. If we don't have a verb for something, we can make one up. If we don't have a noun for something, we can make one up.

In computing, the verbs (loosely) map onto algorithms and the nouns map (loosely) on to persistent storage. If you make up new verbs you have to change algorithms - software. If you make up nouns, you just change the persistent storage space.

The latter is a whole lot most cost effective than the former.

So REST wins. QED.

:-)

No comments: