Re: Let's get some principles nailed down

----- Original Message ----- 
From: "ext Paul Prescod" <paul@prescod.net>
To: "Miles Sabin" <miles@milessabin.com>
Cc: "WWW-Tag" <www-tag@w3.org>
Sent: 18 November, 2002 18:50
Subject: Re: Let's get some principles nailed down


> 
> Miles Sabin wrote:
> 
> > The documentation for a function in a programming language should tell
> > you what it does and what it's for. A namespace doesn't _do_ anything
> > and it's _for_ disambiguating names ... which is documented perfectly
> > adequately in the Namespaces REC
> 
> Every particular namespace is "for" something in particular. XHTML is 
> for hypertext, MathML for mathematics, SVG for scalable graphics, RDF 
> for resource descriptions, etc.

Actually, this is not correct. "XHTML" has one namespace but four
models. "RDF" has two namespaces but one model.

Yes, it is true that, as a convenience, folks tend to use the same
namespace for all terms relevant to a given model, but that is a matter
of coincidence and not a characteristic of the architecture.

See below...

> > I _might_ choose to impose additional semantics on my namespaces, in
> > which case I agree that I SHOULD document those semantics. But if I
> > don't impose additional semantics then there's nothing to be
> > documented.
> 
> Can you point me to a useful, real-world namespace with no additional 
> semantics? If not, then there is nobody who would feel compelled to 
> provide documentation when it isn't appropriate. Anyhow, SHOULD means 
> should. Nobody will be forced to provide referents.

Namespaces do not bear semantics. Terms bear semantics, and it is common
practice, and convenient, to ground related terms in the same namespace.
But it is not the namespace itself that is asserting any semantics whatsoever.
The namespace is just punctuation. It is just a mechanism to ensure that
terms are globally distinct.

One could define a vocabulary where each and every term is grounded it its
own separate namespace and XML and RDF applications *should* work just as
well as if all terms were grounded in a single namespace.

And as has been pointed out, there is no 1:1 correlation between namespace
and model, namespace and schema, namespace and functional vocabulary, etc.
etc. etc.

Forgive me for being direct, but those who believe that the "XHTML namespace"
means something in terms of a single XHTML content model are either mistaken or
in denial. There are three content models defined by XHTML 1.0 and one
by XHTML 1.1 which utilize the same terms grounded in the same namespace 
"http://www.w3.org/1999/xhtml" and those content models disagree about what 
the semantics of some of those terms are. Clearly, the namespace itself is 
not asserting what the terms mean. Eh? It is the content models which
assign the semantics.

An application which has http://www.w3.org/1999/xhtml#html doesn't have 
the first clue what that term means, and a "namespace document" encoded
in RDDL is not going to help it know what to expect as the children
of the element so named.

Namespaces are just punctuation, which partition local names into
sets, and the *only* valid representation of a namespace is a listing of 
that set of names. There is *no* additional semantics inherent in the
namespace and "namespace documents" such as proposed for RDDL, however 
convenient, are breaking the rules of the Web as they are not valid 
representations as they introduce semantics into a representation which
the namespace itself does not have.

I'm sure we are (mostly) all in agreement that any given URI, if
it dereferences at all to some resource, resolves to a representation
of the resource denoted by the URI, right? Well, if a namespace URI
denotes the namespace, then *all* a representation can embody is
that set of names. The representation should not include knowledge
not inherent in the resource itself, such as any semantics attributed
to a name in that namespace by some external model.

The W3C/TAG should work at solving the real problem, which is
the explicit association in the markup of the instance itself 
of specific instances to the models they are intended by the
content creator to conform to, the URIs of those models independent
of namespace URIs, and the relation of those models to resources relevant
to the processing of instances in terms of those models such as
various schemas, style sheets, etc. Yes, RDDL contains most of that, but 
it's being hung off the wrong hook. RDDL instances as "namespace documents" 
is a hack that is contrary to the Web architecture, as those documents are 
not valid representations of the namespaces from which they are retrieved.

XML should be fixed to allow the explicit declaration of content models
to which the instance conforms. As the XHTML example shows, the qname
of the root element doesn't provide that, and it is this fallacy upon
which the RDDL approach is based, and thus is broken from the start.

Regards,

Patrick


[Patrick Stickler, Nokia/Finland, (+358 40) 801 9690, patrick.stickler@nokia.com]

Received on Tuesday, 19 November 2002 05:43:56 UTC