[microformats-discuss] STRUM, REST, and DETH

Dr. Ernie Prabhakar drernie at opendarwin.org
Tue Oct 11 15:15:32 PDT 2005


Hi all,
On Oct 7, 2005, at 3:52 PM, Danny Ayers wrote:
> On 10/7/05, Dr. Ernie Prabhakar <drernie at opendarwin.org> wrote:
>> http://www.opendarwin.org/~drernie/C395201355/E20051006235324/ 
>> index.html
> What would be very helpful with grokking the idea would be examples of
> the kind of messages that go over the wire. Something like the
> descriptions MarkP uses here:
>> http://www.xml.com/lpt/a/2003/10/15/dive.html

Okay, I've been noodling some more about how to clarify the concepts 
behind STRUM, and particularly how it relates to REST.
I've stripped the idea down further to something I call DETH: like 
REST, but more so. :-)
	DETH = Dictionaries Encoding/Transmitting HTML.
I've started mocking it up on the forms-brainstorming page:
http://microformats.org/wiki/forms-brainstorming
DETH is intended to be the microformat (or HTML compound, whatever) 
for XHTML Basic Forms:
http://www.w3.org/TR/xhtml-modularization/ 
abstract_modules.html#s_sformsmodule
That is, it is a stylized convention for how to parse useful 
information out of a human-readable structure. But not just any 
information. The goal, in fact, is to extract REST-compliant web 
services out of XHTML forms. Not only would this allow you to use a 
generic web browser to invoke/test these web services, but it also 
ensures that the API is (at least minimally, and possibly 
significantly) self-documenting.
The idea is that a DETH web service is described by a URI, e.g., 
"http//somesite.com/users". You can either:
	a) do a GET (with no body) against that URI, or
	b) do a POST containing a 'dl' dictionary or an url-encoding key- 
value list.
The reply would contain at least one "class=deth" form or anchor 
which could be parsed to determine which messages could be sent as 
followup. And so on, and so on...
To be sure, this is not a "full" REST solution. It wouldn't support 
PUT or DELETE, or any input more complicated than a dictionary. But 
that's the point -- the goal is to build the simplest possible system 
that does *any* useful work, so we can find out where the real 
pressure points are *in practice*. Hopefully this gets us 80% of the 
benefit with 20% of the effort. Actually, I think it is more like 
51.2% (80x80x80) of the benefit with 0.8% (20x20x20) of the effort, 
but you get the idea.
There's a few questions about the design pattern I'm unsure about. 
Is the Microformat Zen here to conform as closely as possible to 
existing (HTML 4) idioms, even if sometimes ambiguous, or make 
'class=deth' a strong contract a la XOXO? For example:
a) Should we require labels for *all* inputs (except submit/reset)? 
This seems much more descriptive and human readable, but isn't 
strictly necessary.
b) Should we nest inputs inside labels? That keeps things nicely 
grouped, but prevents us from using tables for layout. Is that an 
important degree of freedom to preserve?
c) What are the minimum attributes that must be specified make this 
work?
This is somewhat tricky, since not all entries have 'input' (some use 
'select'), and HTML inputs rarely close their end tags.
Apologies for the rambling, I'm still trying to get my -own- head 
around the idea. Feedback welcome....
-- Ernie P.
P.S. Rendered (but non-working) examples are available at:
http://www.opendarwin.org/~drernie/deth_example.html


More information about the microformats-discuss mailing list

AltStyle によって変換されたページ (->オリジナル) /