Update: An interesting article linked to from “cognitively cognate” sets up stage with the following scenario,

Aniruddh Patel of the Neurosciences Institute in San Diego, California, US, and colleagues wanted to know how people from different cultures group non-identical sounds. They recruited a group of 100 volunteers, half of whom were American and the other half Japanese. The volunteers listened to sequences of alternating long and short or loud and soft tones (audio clips in wav format).

The result? Please click-through to find out, though I will point out the fact that with all of what follows, opinions and results may vary. What I might perceive as one thing, someone else might perceive the “same thing” as something completely different.

Of course, I didn’t even touch on percent encoded UR{I|L}’s, but then again there are no doubt those people who simply do not care or do not agree or do not [something all together different], so for what it’s worth, there ya have it :)

Thanks for the comment/link, cognitively! :)

[Original Post]
NOTE: No red, blue, or any other pill colors will be mentioned from this point forward. In other words, this isn’t that kind of Matrix post. ;)

Last April, Mark Nottingham made a post to the web-http discussion list regarding Matrix URI’s…

It would be great if WADL and other Web description formats could
accommodate Matrix URIs;

http://www.w3.org/DesignIssues/MatrixURIs.html

so that the parameters of the Matrix URI would be handled in a
fashion similar to the way query parameters are handled.

We’re starting to use them pretty extensively.

Until that point I had forgotten about Matrix URI’s, but as soon as I was reminded, I realized…

Why have we not been using Matrix URI’s all along???!!!

Matrix URIs - Ideas about Web Architecture

It is maybe obvious to note that there are many, many hierarchical systems. An interesting analogy with a hierarchical power is, in a programming language, a sequence of parameters supplied to a command or a procedure. For example, in some languages a procedure may take positional parameters which may be optional so that any parameters from a certain point on may be omitted. This syntax can be compared with a hierarchical slash separated URL path. This is an interesting analogy because looking at the alternative representation for procedure parameters which consists of a list of procedure name and value pairs. This leads us naturally to a discussion of the use of the semi-colon in URLs and the matrix syntax. Just as the slash separated set of elements is useful for representing a tree, so a set of names and equally significant parameter can represent a space more like a (possible sparse) matrix. In this case navigation to “close” locations is done by varying one or more parameters which form the dimensions of the matrix. This is the purpose of the a=b; parts of URL syntax which was added later in the URL’s history. The initial need was to put qualifiers onto URLs which were themselves hierarchical.

I wish I had the time to go into greater detail as to why I believe that an “upgrade” to Matrix URI notation really needs to happen in the worst way, but I don’t, so instead, let me use an example which will hopefully speak for itself.

From Tim Berners-Lee’s original paper linked above (”http” added),

http://moremaps.com/map/color;lat=50;long=20;scale=32000

Nice! Simple, clean, and most importantly in my opinion… READABLE by a human!

Now its & counterpart…

http://moremaps.com/map/color&lat=50&long=20&scale=32000

*U* *G* *L* *Y*!!!

And to take it to the XML encoded extreme,

http://moremaps.com/map/color&lat=50&long=20&scale=32000

*U* *U* *G* *G* *L* *L* *Y* *Y*!!!

But who cares, right? I mean, URI’s are not meant to be read by humans, they’re meant to be read by machines, right?

WRONG! The original mentality *MAY* have been that the browser location bar was only there as a necessary interface until such time as somebody came up with a better way, or that URI’s themselves would eventually be replaced by things like “RealNames“, but for better or for worse, it never happened.

The URI has become ingrained into our culture. It’s normal. It’s expected. And for this reason, it makes sense.

Well, sometimes is make sense. And in there lies the problem for one very simple reason.

Pattern recognition.

We as humans recognize patterns. It’s easy enough for us to translate patterns into something meaningful when these same mentioned patterns are designed in a way that doesn’t “break” the mental parsing of these patterns. It may seem like a silly gripe, but there is a distinct and important difference between an & and a ; when it comes to human parsing…

Letter height.

The height of the & blocks the “view” of the next character, and the ; does not. For this one very simple reason, it’s quite easy to read,

http://moremaps.com/map/color;lat=50;long=20;scale=32000

and quite difficult to read,

http://moremaps.com/map/color&lat=50&long=20&scale=32000

On the other hand, of course, you have the path separator. /. Now one could easily argue that the / character breaks the view as well. To a point, this is true. But this is a *GOOD* thing, as this allows the brain to make a clean separation as to what is what. In this manner, we can easily make sense of,

http://www.oreillynet.com/xml/blog/2006/12/the_matrix_revisited.html

and understand that this references a post to the /xml /blog of O’ReillyNet in the /12‘th month of the year /2006 with a title that starts with the_matrix_revisited that is in .html format.

In this sense, the height (as well as the angle) of the / character becomes crucial, as we can logically parse this string without having to mentally decipher where the breaking point is, which brings us to the final point…

Character width.

By design, punctuation is intended to create a mental stop point, without getting in the way of reading the character that comes next. So . ! , ; and ?, by design, portray to the mind something specific, without getting in the way of progressing forward in our reading. While the & character makes logical sense to mean “and then this propery has this value” it doesn’t allow the mind to flow through to the next set of characters, and therefore it breaks the pattern recognition as we attempt to decipher the next character that follows.

Okay, so this has become WAY longer than I had intended, and I need to get back to some work-related items. However, if there is one thing you are to think about over the holidays, and there is one gift you can give to your customers, please consider giving them The Matrix.

Thanks! :D