Tuesday, December 21, 2010

URI Knot Theory

It is proposed to use language developed in the theory and practice of knots, as a primary metaphor for the architecture of the Universal Resource Identifier.

As remote as mathematicians and topologists can bring Knot theory, the practical application is immensely approachable to most people. At the very least, they understand implicitly how useful and at the same time challengingly complex it can be to arrange loops in strings of tensile material. URIs are strings, and tie together the World Wide Web through a process which involves pulling &emdash; which is to say tension &emdash; as the primary means of establishing connectedness. That is to say, URIs are knots.

The study of knots is at once both a highly developed intellectual pursuit and a supremely pragmatic, almost purely mechanical skill. The architecture of a knot determines its strength, aesthetic beauty, elegance and approachability, and ultimately whether it has any utility in practice. The art and science of knots goes back into prehistory, and thus it evolved a language and sets of patterns that well-describe thousands of years of problem solving, where the problems involve tying things together. Thus, the language of knots should be a rich source of language well-adapted to the problems of designing URI architectures.

Background and Overview of The Language of Knots

From the perspective of analyzing the mechanics of a knot, it is conventionally decomposed into the following parts:
Bitter end
Standing end
Standing part
Working end
Working part
As a hint of the fecundity of this language, consider briefly the idea of the "Working End" of a line: it is the leading portion which allows further extension of, and adaptations to, the knot. Just as some knots can be constructed in the middle of the line, it is predicted based on the metaphor that some URIs can be constructed as fragment taken out of a continuous string, without access to the working end.

At the time of the first draft of this post, August 3rd 2010, a Google search indicated no results on the query ' knots "uri architecture" ', and similar searches failed to produce any results. I have yet to do a formal literature search, but the Google results suggest that it is an idea which is not thoroughly discussed, and is perhaps a novel contribution.

Types of Knots

The common practical (or alternatively, the mathematical) classification of knots can also provide a meaningful working language for URI architectures. The list is from the Wikipedia entry on knots. Considering what each might mean in a Knot Theory of URI architectures leads to interesting possibilities for enriching the language of addressing on the Web.
A knot uniting two lines (for knots joining two ends of the same line, see binding knots or loops).
A knot that restricts object(s) by making multiple winds.
Knots used to tie up lines for storage.
Decorative knot 
A complex knot exhibiting repeating patterns often constructed around and enhancing an object.
A knot tied to a post, cable, ring, or spar.
A knot used to hold (usually) poles together. 
A knot used to create a closed circle in a line.
Plait (or Braid)
A number of lines interwoven in a simple regular pattern.
Slip (or Running) 
A knot tied with a hitch around one of its parts. In contrast, a loop is closed with a bend. While a slip knot can be closed, a loop remains the same size.
A knot used to hold two lines or two parts of the same line together.
A number of lines interwoven in a complex pattern.
A knot formed by interweaving strands of rope rather than whole lines. More time-consuming but usually stronger than simple knots.
A knot tied to hold a line through a hole.
A knot that is used as part of a magic trick, a joke, or a puzzle.
A binding knot used to prevent another line from fraying.
I will discuss more on the applications of this language to problems of URI architectures in follow up.

No comments: