KBD

Keith Devens .com

Friday, March 12, 2010 Flag waving
Battle not with monsters lest ye become a monster and if you gaze into the abyss the abyss gazes into... – Friedrich Nietzsche
← Filters that fight backClass is over →

Daily link icon Tuesday, August 12, 2003

Namespaces don't "make a damn bit of difference"

This is awesome. Tim Bray echoes exactly what I've been saying about Namespaces.

Right now, in the context of the Pie/Echo/Atom/whatever project, people assert that crystallizing the meaning of embedded namespaces is the key to interoperability, the central problem, and so on. Huh? When someone proposes markup from another namespace for inclusion in a syndication feed, there are three possible outcomes:

1. Nobody pays attention and it isn't much adopted.
2. It gets widely adopted, with semantics along the lines originally proposed.
3. It gets widely adopted, with some semantic drift away from the original proposal becoming evident in the implementations. (Note that this has already happened with some RSS 2.0 markup).

Oddly enough, this is exactly what will happen with proposed tags and attributes that aren't in a different namespace.

Earlier he makes the point that I've made repeatedly, that the meaning of something is only present in someone's mind, not in some text labels inside angle brackets. And it's great to see him make exactly the same point I've made, that the evolution of markup proceeds the same regardless of whether tags are segmented into different namespaces.

At the end of the day, markup is just a bunch of labels. We should be grateful that XML makes them (somewhat) human-readable and internationalized, and try to write down what we want them to mean as clearly as and cleanly as we can, with a view to the needs of the downstream implementors and users.

But we shouldn't try to kid ourselves that meaning is inherent in those pointy brackets, and we really shouldn't pretend that namespaces make a damn bit of difference.

Software has to be written to deal with the markup, and putting something in a namespace doesn't do anything to make writing the software easier or more automatic, or encapsulate any more meaning in the document than is present in the community understanding of a given tag and codified in source code meant to deal with those tags. In addition, besides being useless "semantic bloat", they just plain make XML harder to use.

What it comes down to is that if you normalize every tag, say, in the Dublin Core namespace and change how it appears in a document from "dc:tagname" to "http://purl.org/dc/elements/1.1/:tagname", the "namespace" goes away. It's all just strings that you're trying to keep unique.

Dave: "Namespaces create elements with names with colons in them." - exactly!

← Filters that fight backClass is over →

Comments XML gif


Feel free to post a comment below. Please see my comment policy.

Formatting Rules (No HTML):

  • **bold**, *italic*, _underlined_, --strikeout--
  • "text"="url" creates a link, and URLs are auto-highlighted
  • Blockquote: Like e-mail, begin paragraph with > (greater-than sign)
  • Lists: begin paragraph with *,-, or + (unordered), or # (ordered)
  • Code block: ?!code:language=perl|php|sql|javascript|etc.{\n}...{\n}?!/code

:
(will be your IP address if blank)
: (optional)
(Will not be shown on site)

: (optional)
:

March 2010
SunMonTueWedThuFriSat
 123456
78910111213
14151617181920
21222324252627
28293031 



RSS feed RSS feed for Keith's Weblog
Atom feed Atom feed for Keith's Weblog
Weblog archive

Generated in about 0.496s.

(Used 8 db queries)