W3C home > Mailing lists > Public > public-awwsw@w3.org > March 2011

Roy's definition of a REST resource as a "Curried" form of ftrr:IR

From: David Booth <david@dbooth.org>
Date: Fri, 04 Mar 2011 13:18:28 -0500
To: nathan@webr3.org
Cc: AWWSW TF <public-awwsw@w3.org>
Message-ID: <1299262708.2525.30494.camel@dbooth-laptop>
Nathan,

Have you looked at the definition of IR that I proposed a while back?
http://lists.w3.org/Archives/Public/public-awwsw/2008Apr/0046.html
It is logically equivalent to Roy's definition of a REST resource, but
it pulls the Request parameter out earlier.  Roy's notion of a REST
resource, roy:RR, is basically a "Curried" form of ftrr:IR
http://en.wikipedia.org/wiki/Currying :

  for any Time t and Request req, ftrr:IR(t, req) = roy:RR(t)(req).

If one wishes to nitpick, Roy does not explicitly say that the second
step of selecting a representation (via content negotiation) is
functional, but I think it is implied:
http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm#sec_5_2_1_1
[[
More precisely, a resource R is a temporally varying membership function
MR(t), which for time t maps to a set of entities, or values, which are
equivalent. The values in the set may be resource representations and/or
resource identifiers. [ . . . ]

This abstract definition of a resource . . . allows late binding of the
reference to a representation, enabling content negotiation to take
place based on characteristics of the request.
]]

Furthermore, the discussion of content negotiation in section 12.1 of
RFC 2616 also implies (but does not explicitly say) that it is
functional:
http://www.ietf.org/rfc/rfc2616.txt 
[[
   Selection [of the best representation for a response] is based on
   the available representations of
   the response (the dimensions over which it can vary; e.g. language,
   content-coding, etc.) and the contents of particular header fields in
   the request message or on other information pertaining to the request
   (such as the network address of the client).
]]

I've also left out some details about "Agent-driven content negotiation"
and the 300 (Multiple Choices) response code, because they don't have a
material impact on this, but again if one wishes to nitpick, they would
have to be accounted.


-- 
David Booth, Ph.D.
http://dbooth.org/

Opinions expressed herein are those of the author and do not necessarily
reflect those of his employer.
Received on Friday, 4 March 2011 18:18:56 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Friday, 4 March 2011 18:18:57 GMT