- From: Tim Bray <tbray@textuality.com>
- Date: Sun, 17 Nov 2002 18:54:11 -0800
- To: WWW-Tag <www-tag@w3.org>
It is long past time that we went to work on nailing down some of the
principles that are going to go into the "Representations" and
"Interactions" section of Webarch. In the interest of moving this
discussion along, I've drawn up a bunch of strawman principles. If we
could get consensus on a few of these, it would really help move Webarch
along. I have deliberately left out a couple where I think we have a
lot more work to get to consensus; I'm optimistic that on at least a few
of these we can achieve quick consensus and generate a bunch of grist
for Ian's mill, and have some more progress to present to the AC on Tuesday.
So here are a bunch of candidate principles, with numbers to facilitate
discussion. I acknowledge that the use of the word "principle" is a bit
dicey since we're arguing about what to call these things. Let's
consider it a placeholder here.
Principles on representations:
CP1. When designing a data format to be used in representing Web
Resources, the use of XML should be considered carefully.
- some issues concerning XML pros and cons
- pointer to IETF doc
CP2. When specifying the use of URIs, designers SHOULD NOT constrain the
use of URI schemes.
CP3. When using XML, designers SHOULD NOT introduce syntax constraints
beyond those involved in the definition of XML.
CP4. XML-based languages MUST be given a namespace name and the elements
of the language MUST be placed in that namespace. Designers SHOULD make
available a representation of the namespace which is human-readable and
SHOULD make available a representation which is a machine-readable
directory of resources which are related to that namesapce.
CP5. For languages whose contents are intended for visual rendering for
presentation to humans, the repertoire of formatting semantics SHOULD be
consistent across the universe of W3C recomnmendations.
CP6. When designing a language that includes linking or hypertext
functionality, designers SHOULD design that functionality so it supports
Web-side rather than merely local linking.
CP7. Designers of languages which will be used in resource
representations MUST arrange for the registration of an Internet Media
Type for that language, and SHOULD consider the recommendations of
RFC3203 in carrying out that registration. This registration MUST
include a specification of the handling of fragment identifiers for
resource representations in the language being designed.
CP8. Designers of languages which are to be interchanged on the Web MUST
include a discussion of error-handling, with specific recommendations on
the correct behavior upon detection of certain classes of errors.
- example classes: XML well-formedness vs. semantic brokenness (eg SVG
circle with negative radius)
----------------------------------------------------------
Examples concerning Interaction
CP9. Designers of protocols should invest time in understanding the REST
paradigm and consider the role to which its principles should guide
their design:
- statelessness
- clear assignment of roles to parties
- flat addrss space
- limited uniform set of verbs
CP10. Agents which receive a resource representation accompanied by an
Internet Media Type MUST interpret the representation according to the
semantics of that Media Type and other header information. Servers
which generate representations MUST not generate Media Types and other
header information (for example charsets) unless there is certainty that
the headers are correct.
CP11. Designers of protocols should give serious consideration to
avoiding such design activities in favor of existing well-established
protocols such as HTTP that fit well into REST.
Received on Monday, 18 November 2002 00:24:14 UTC