HTTP Roarshach test

2010-01-29 @ 18:54#

I'm fascinated by the use of and the idea behind the Roarshach Inkbot Test. Part of the reason for my interest may be that I underwent the test as a child. At the time I was enthralled by the images themselves and, I was later told, did not behave properly during the test. I asked too many questions about the images and generally made things difficult for the test administrator. Sound like me? !ha!

Some psychologists use this test to examine a person's personality characteristics and emotional functioning. It has been employed to detect an underlying thought disorder, especially in cases where patients are reluctant to describe their thinking processes openly.

Rorschach test, Wikipedia

Contrary to popular understanding, the test is not focused on the things people describe when they look at the images. Instead, the test is designed to make note of the aspects of the image that subjects find interesting - the items they 'call out' for attention.

In particular, information about determinants (the aspects of the inkblots that triggered the response, such as form and color) and location (which details of the inkblots triggered the response) is often considered more important than content, although there is contrasting evidence. "Popularity" and "originality" of responses can also be considered as basic dimensions in the analysis.

Rorschach test : Features or categories, Wikipedia

It's this last aspect of the Roarshach test that brings me to the point of this rambling post.

HTTP Ink Blots

Below I have assembled some HTTP "ink blots" for your review. The items below are snippets of HTML or XML. Please look them over and tell me what you see. What do you think they mean? Are any of them unusual in any way? Are any of them invalid or incorrect? How will these snippets be interpreted by a client application and what would that client expect back in response? What are the underlying assumptions in these snippets? Can they be improved? clarified? fixed?

HTML-ish
[1]
<a href="http://www.example.org/customers/">customers</a>

[2]
<a href="http://www.example.org/customers/123">customer</a>

[3]
<form method="post" action="http://www.example.org/customers/">
   <input type="text" name="customer-name" value="" />
   <input type="submit" />
</form>

[4]
<form method="get" action="http://www.example.org/customers/">
   <input type="text" name="customer-name" value="" />
   <input type="text" name="data-added" value="" />
   <input type="text" name="region" value="" />
   <input type="text" name="status" value="" />
   <input type="submit" />
</form>

What HTTP method should/could be used with each snippet? Are some methods disallowed (or meaningless) based on the construction of the snippet? Are media-types implied/missing?

Can you construct a clear HTTP Request/Response dialog between client and server that goes along with these snippets; including all the typical control data that would accompany the messages? How did you arrive at your answer? HTTP specification details? media-type definition? general convention?

Which of the snippets is idempotent? safe? Which are both? neither?

XML-ish
[5]
<link href="http://www.example.org/customers/" rel="collection"/>

[6]
<link href="http://www.example.org/customers/123" rel="self" />

[7]
<link href="http://www.example.org/customers/123" rel="edit" />

[8]
<link href="http://www.example.org/customers/ rel="http://www.example.org/rels/create">
  <input type="text" name="customer-name" value="" />
</link>

[9]
<link href="http://www.example.org/customers/" rel="http://www.example.org/rels/search-results">
   <input name="customer-name" value="" />
   <input name="data-added" value="" />
   <input name="region" value="" />
   <input name="status" value="" />
</link>

After reviewing these items, share them with a friend and compare notes. Did you all come to the same conclusions?

Finally, does anybody have an idea of what I'm going on about here[grin]?

code