|
View:
New views
2 Messages
—
Rating Filter:
Alert me
|
|
|
version identifiers(resent to public tag) with regard to ACTION-283 / ISSUE-41 I’ve been distracted with other events, but I managed
to put in some time, should have a new version in TAG space soon. In the meanwhile, here is the Editor’s Draft http://larry.masinter.net/tag-versioning.html the most significant changes were in the sections enclosed below, which you might want to review; it tries to set up a framework that applies to languages like HTML that are widely implemented, even when those implementations don’t always match the specification. Terminology
and Framework This
section lays out a framework for describing communication and the role of
languages in them. The document uses some common terms in ways that are
very specifically defined for this framework, although the definitions attempt
to be consistent with common usage. Terms defined specially here are in bold,
while other terms of interest but assumed to be defined elsewhere are in
italics. xx The
World Wide Web is a communication system; a way of using a
network (and in particular the Internet) to communicate. Communication
usually involves a protocol in which documents are sent from one agent
(the producer) to another agent (the consumer). Agent An agent is software that is
involved in communication; for example, a web browser, an authoring tool, a web
server are all agents (A user-agent is an agent under direct control of
a user.) Producer A producer is an agent that
generates documents for transmission to one or more consumers. In fact, the
production of a document and its communication may involve several steps, where
the document is initially generated by one agent (for example, an editor agent
controlled by a user), and then subsequently transmitted via a protocol
to another agent. Consumer
A consumer is an agent that
performs some action when presented with a document sent via a protocol -- the
consumer interprets the document. Note that a viewer, brower, or player
are kinds of consumers, but so are search engines, translation
gateways, summarizers, and other agents that receive and interpret
documents.
Document A document is (in this framework)
a string of characters or bytes that might be transmitted from a producer to a
consumer; a document is generally a instance of a language (or, in the case of
compound documents, a combination of instances of the language). Note that this
definition of document is, in some ways, intentionally broad, and
includes any communication that might be sent in a HTTP response or an email
message. Language
In this framework, a language is
an agreement of syntax and meaning between agents in a community,
such that the agents in the community are interoperable when interpreting
documents in the language (or, in the case of compound documents, part of the
document). Note that the use of language here refers to "language as
spoken"--what is actually implemented and understood -- as opposed to a
specification. Community A community is a set of agents
(producers and consumers) that wish to communicate interoperably. Note
that there may be several overlapping communities.
Specification A specification is written (human
interpretable) documentation of an agreement of a community that describes and
defines a version (or several versions) of a language. Generally a
specification describes syntax and meaning associated with
constructs of the syntax. Often a specification will describe (mandate etc)
both a conservative language -- a definition and set of tests for
whether a particular document is conforming, and which a conforming producer
might produce, as well as advice or normative behavior for conforming
consumers to exhibit when presented with documents, even when they are not valid
-- in this case, it is defining error behavior. The introduction of
error behavior is not only important for consumers for graceful use, but is an
important element of language extensibility (as described below.) Version
A specification version is a
particular specification belonging to a series or family
of closely related specifications. A language version is a language (as
implemented) which generally corresponds to a specification version. Note that
specifications can be updated to correct mistakes, which might create a new
specification edition but not a new version. Note that this definition
of version actually encompasses any change from one language or
specification, not ones that are associated with major versions. Feature A language is often extended by
adding features: new capabilities that consumers exhibit and that
producers can put into documents.
Interoperable When a producer sends a document to a
consumer, and the consumer's behavior or interpretation of
documents matches -- to some degree of satisfaction -- the producer's expectation,
the agents are said to be interoperable. (Note that there may be degrees
of interoperability.) In addition, if two consumers interpretation of documents
match satisfactorily, the two consumers are said to be interoperable.
Two implementations of a specification are interoperable implementations if
they are both interoperable (in either sense) but are also interoperable in a
way that conforms to the specification. Valid A document is valid according to
a specification if it matches the allowed syntax of the specification.
(This is sometimes also called conforming) Conform Many specifications contain normative
requirements for different classes or roles of agents, as well as
requirements for valid documents. An agent is a conforming implementation
if it meets those requirements.
Language- or Version-indicator A language-indicator or version-indicator
is either (a) a syntactic component of a language for inclusion within a
document, or (b) a protocol element, transmitted outside of a document;
the indicator identifies a specification (or family of specifications or
version within that family). A producer supplies an indicator for use by the
consumer of the document. Note that things like MIME types, DOCTYPE, XML
namespaces and the like are all examples of indicators. This definition and the
use of version indicators is expanded below. Standards,
Specifications, and Language Versions The
standards process is way of evolving specifications to allow common and interoperable
changes to implementations of agents. The standards process involves bringing
together a community (of document producers and of implementors of producer and
consumer agents) to produce a specification that they all
("consensus") agree to implement and use. Insofar as a specification
represents that agreement and it is followed, a good specification will improve
interoperability, and thus increase the satisfaction of its users. Larry -- http://larry.masinter.net |
|
|
Re: version identifiersOn Wed, 2009-08-26 at 15:29 -0700, Larry Masinter wrote:
> (resent to public tag) with regard to ACTION-283 / ISSUE-41 > > In the meanwhile, here is the Editor’s Draft > > http://larry.masinter.net/tag-versioning.html I'm having a hard time getting engaged in this document; it uses an editorial style that I find off-putting; it starts with "This document...", which is too self-conscious for my tastes. It also presents a list of terms and definitions without motivating the complexity. At the risk of beating a dead horse, if we're to work on versioning, I strongly suggest we approach it as a collection of patterns, i.e. known problems and solutions e.g. - when HTML was started, we didn't know which tags we'd ultimately need - therefore: ignore unknown tags - but: it doesn't always work; see forms, tables (perhaps another pattern is the <noscript> alternative pattern) - likewise in HTTP - but there the solution is to ignore not just the header name but the content of the header too - the XSLT versioning strategy - the COM uuid strategy (mostly for contrast with web techniques) oops... time for the telcon... -- Dan Connolly, W3C http://www.w3.org/People/Connolly/ gpg D3C2 887B 0F92 6005 C541 0875 0F91 96DE 6E52 C29E |
| Free embeddable forum powered by Nabble | Forum Help |